Maya中輸出alembic文件的方法


      Maya中輸出alembic文件是有現成api調用的,與maya中大部分api一樣,這個功能參數的傳入是非常類似mel的,本質上講都是kwargs類型的參數,所以我們傳入的參數就需要整理成類似於mel的命令行形式。

      首先我們來看mel中如何導出ablembic文件,mel命令格式為:

AbcExport -j "-frameRange 1001 1148 -uvWrite -worldSpace -root |trk_track|trk_mesh|trk_ground -file D:/abc.abc“

      "-frameRange 1001 1148 -uvWrite -worldSpace -root |trk_track|trk_mesh|trk_ground -file D:/abc.abc“等同於"-j"的參數,這一部分就是我們要傳入到AlembicExporter的python api的參數。

      所以我們首先需要構建一個函數來生成這段參數字符串,然后再將這個字符串傳入maya.AbcExport(jobArg="")中。

      甩個項目中的代碼吧,僅供參考。

def getjobArg():
  selectedGeos = maya.ls(sl=1)
  selectedGeos_str = ""
  path_abc_content = maya.textField(path_abc,q = 1,tx = 1)
  if maya.ls(sl=1) != []:
    if len(selectedGeos) == 1:
      for i in selectedGeos:
        selectedGeos_str = str(i)
    else:
      for i in selectedGeos:
        selectedGeos_str += ("|" + str(i))
 
    jobArgs = "-frameRange " \
    + maya.textField(first_abc,q = 1,tx = 1) \
    + " " \
    + maya.textField(last_abc,q = 1,tx = 1) \
    + " -uvWrite -worldSpace -root " \
    + selectedGeos_str \
    + " " + "-file" + " " + str(path_abc_content)
  else:
    jobArgs = "-frameRange " \
    + maya.textField(first_abc,q = 1,tx = 1) \
    + " " \
    + maya.textField(last_abc,q = 1,tx = 1) \
    + " -uvWrite -worldSpace " \
    + " " + "-file" + " " + str(path_abc_content)
    print 'Please select objects before click export button'
  return jobArgs



maya.button(label="Create Alembic File!",w = 100,align = "center",command = "Argsstr = getjobArg();\
  maya.AbcExport(jobArg = Argsstr)")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM