XGundam05 发表于 2023-2-10 10:32

使用ADX2 Robot功能将构建文件复制到Unity

原文地址:https://qiita.com/tatmos/items/32ee12efa4a7a85bb9ac
作者介绍

田中孝,作编曲家,VR声音技术设计师,个人主页:http://park18.wakwak.com/~cha/index.html
简介

在Unity中使用ADX2时,需要将ACF、ACB和AWB复制到适当的地方,手动操作的话可能会出错,所以我写了一份用python复制文件的脚本,之后我将它移植到了ADX2 Robot(CRI AtomCraft Robot功能)中。
这个简单的脚本可以用作初期测试ADX2 Robot功能的一个示例。
关于如何导入ADX2 Robot的更多信息,请参考这篇文章。
脚本

运行时,它会检查文件是否存在,如果存在则复制文件。


如果复制失败,将显示NG信息。
关于“Path”,请各位读者根据自己项目进行修改。
# --Description:将ACF,ACB,AWB文件复制到Unity中。
import sysimport cri.atomcraft.project
import cri.atomcraft.project as acproject
import cri.atomcraft.debug as acdebug
import os
import shutil

srcPath = "C:/MyDearest/github/CraftData/Megalith/PC/"
dstAcfPath = "C:/MyDearest/github/Megalith/Assets/StreamingAssets/adx2/"
dstAcbPath = "C:/MyDearest/github/Megalith/Assets/StreamingAssets/adx2/"

if(os.path.exists(srcPath)):
    acdebug.log("srcPath OK");
if(os.path.exists(dstAcfPath)):
    acdebug.log("dstAcfPath OK");
if(os.path.exists(dstAcbPath)):
    acdebug.log("dstAcbPath OK");

acfAcbAwbNameList = [
"BGM.acb","BGM.awb",
"SE.acb","SE.awb",
"VOICE_ja.acb","VOICE_ja.awb",
"VOICE_en.acb","VOICE_en.awb",]

# 复制ACF文件
shutil.copyfile(srcPath + "Megalith.acf", dstAcfPath + "Megalith.acf")

# 复制ACB文件
for acfAcbAwbName in acfAcbAwbNameList:
    shutil.copyfile(srcPath + acfAcbAwbName, dstAcbPath + acfAcbAwbName)
if(not os.path.exists(srcPath + acfAcbAwbName)):
      acdebug.warning(srcPath + acfAcbAwbName + " NG");
if(not os.path.exists(dstAcbPath + acfAcbAwbName)):
      acdebug.warning(dstAcbPath + acfAcbAwbName + " NG");注意点


[*]文件路径是直接写入的,所以需要为每个环境重写相应的路径;
[*]我把复制ACF文件的代码分开放,这只是因为我有时只会改变ACF的配置,这两段代码就算放在一起的话也没有问题; (变量的名称看上去有点乱,读者在使用的时候可以自由的改变它们的名称)
[*]由于每次复制都是在没有比较内容的情况下进行的,所以在安全方面需要版本管理等手段来检查是否有错误。(注意不要错误地合并计划之外的二进制文件)
尾声

在什么地方使用Robot功能比较好:
最大的好处是可以将那些步骤有点麻烦的东西通过Robot处理。

复制,搜索和选择文件。
为这类频繁的操作编写脚本有很大的好处。

我想看看大家创造的更多的便利功能,希望越来越多的人能够沉迷于ADX2 Robot脚本开发。
页: [1]
查看完整版本: 使用ADX2 Robot功能将构建文件复制到Unity