zoukankan      html  css  js  c++  java
  • Hiero_FnNukeShotExporter的解析与修改

    研究对象:Hiero中的FnNukeShotExporter脚本
    研究目的:修改FnNukeShotExporter使得可以将多个TrackItem导入到一个.nk中
     
    FnNukeShotExporter这个script控制了Exporter中的Nuke Project File输出选项,关于TrackItem输出到.nk工程中的方法都存放在这个script里。
    NukeShotExporter类继承自FnShotExporter中的ShotTask类,输出.nk工程的核心代码都在self.step()方法中。
    仔细阅读这段代码又会发现该方法调用了来源于hiero.core.nuke.Script.py中的ScriptWriter类,该对象调用了hiero.core.nuke.Node.py中的多个Node类。
    了解了内部逻辑关系后对该功能的修改就变得很容易了。
    我们发现,self.step()方法的最后一部分有这样一行:
    script.writeToDisk_vhq(scriptFilename)
    显然这是将script对象写入具体.nk文件的一个方法。
    找到该方法代码块如下:
     
    def writeToDisk(self, scriptFilename): 

        dstdir = os.path.dirname(scriptFilename)
        if not os.path.exists(dstdir):
        os.makedirs(dstdir)

        if os.path.lexists(scriptFilename):
        os.remove(scriptFilename)

        fileContents = str(self)

        f = open(scriptFilename, 'w')
        f.write (fileContents)
        f.close()
     
    我们发现第五六行代码会判断同名.nk工程是否存在,如果存在就会删掉,然后创建新的.nk工程进行写入,这与我们将好几个TrackItem 写入同一个.nk工程的想法是背道而驰的,所以只要对这个方法进行修改,使其能对同一个工程重复追加写入即可。具体修改方法很简单,就不说了。
  • 相关阅读:
    2017ccpc全国邀请赛(湖南湘潭) E. Partial Sum
    Codeforces Round #412 C. Success Rate (rated, Div. 2, base on VK Cup 2017 Round 3)
    2017 中国大学生程序设计竞赛 女生专场 Building Shops (hdu6024)
    51nod 1084 矩阵取数问题 V2
    Power收集
    红色的幻想乡
    Koishi Loves Segments
    Wood Processing
    整数对
    Room and Moor
  • 原文地址:https://www.cnblogs.com/hksac/p/4868023.html
Copyright © 2011-2022 走看看