|
原文地址: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:[tatmos]将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脚本开发。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|