myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

SI | mSI2Maya (SoftimageデータをMaya ASCII に)

ある案件でSoftimageの大量のデータをMayaに変換する必要がありまして、
まずは出来るだけ問題なくデータを持っていけるようなワークフローを作りました。

・SI下準備:仕様を確認して修正
・FBXでエクスポート
・FBXの設定を確認して、特にFBXバージョン
・Mayaを立ち上げて
・Mayaのプロジェクトフォルダ作成
・SIで使用されているテクスチャファイルをMayaプロジェクトフォルダにコピー
・MayaでFBXをインポート
・UVマージ、ネームスペースなどのクリーンアップ
・.maとして保存

全く難しくはないですが、これを何十体でやると結構面倒くさいですね。
手間が掛かるし、ヒューマンエラーで何か忘れたりします。

ミスを避けるようにとりあえずFBXの決まった設定と決まったバージョンで書き出せるようにFBXエクスポートスクリプトを作りました。
こんな感じです:


//JScript
//-------------------------------
var fbxVersion = "2011"
//-------------------------------

var r = ActiveSceneRoot
var AP = ActiveProject
var fbxPath = AP.fullname + "\\" + AP.ActiveScene.name + ".fbx"
var fbxProp = r.properties("ExportFBXOptions")

if (!fbxProp ) fbxProp = r.AddProperty( "ExportFBXOptions" )
fbxProp.ExportSelection = 1
fbxProp.ExportHardEdges = 1
fbxProp.ExportSkins = 1
fbxProp.FBXSDKVersion = "FBX"+ fbxVersion + "00"
FBXExport( fbxPath )

var oClips = ActiveProject.ActiveScene.ImageClips
for ( var i=0; i < oClips.Count; i++ ) {
oClips(i).Xmax=1; oClips(i).Ymin=0;
}


が、もっと自動的にしたい!
もっと速くて楽に仕事したい!

と思い、以上のワークフローを全部1クリックで出来るように色々書いてみました。
ポイントは:MayaBatchです。

これを使ってMayaを立ち上げずにmaに保存する事が出来ました。

ツール名は単純に mSI2Maya にしました。

次は mMaya2SI ですね・・・。


mSI2Maya

DOWNLOAD

mSI2Maya from myara on Vimeo.



■インストール方法

xsiaddon
SI のビューポート上に xsiaddon をドラッグ&ドロップ。もしくは File > Add-on > Install。

ワークグループ使用されている場合はFile > Plug-in Manager > Tree でワークグループを選んで右クリック Install .xsiaddon...

■使い方

File > Export > mSI2Maya

Selection Only
選択のみ

Script(.vbs, .js, .py)
Softimage上でエクスポートする前に実行したいスクリプトのパスをここに設定が出来ます。

FBX Export Folder
FBX ファイル、Mayaのログファイル と mSI2Mayaが使うファイルが書き出されるフォルダ

FBX Version
Maya フォルダから自動的に取得されますが、チェックを入れるとFBXのバージョンは指定できます。
FBX201600
FBX201500
FBX201400
FBX201300
FBX201200
FBX201100
FBX201000
FBX200900

Open in Maya
チェックを入れるとMayaを開いて、変換されます。
チェックを入れないとMayaBatchを使ってma保存されるだけです。

Maya Folder
Maya がインストールされたフォルダ
例:C:\Program Files\Autodesk\Maya2014

Maya Project Folder
新しく作成されるMayaのプロジェクトフォルダのパス。
デフォルトの設定ではSIプロジェクトの中になります。

Mel Script
FBXはMayaで読み込まれてから実行したいmelです。
デフォルトのmSI2Mayaではネームスペースとテクスチャパスだけを直してくれるmelが入っています。

■注意:
・プロジェクト内のPictures フォルダだけを使用されていることを前提として動きますので、
それ以外のフォルダを使っている場合はテクスチャファイルのコピーは機能しません。

・FBXの設定が出来ません。こちらで使っている設定になります。
FBX設定を変更したければ、コードの FBX Settings のところを編集して下さい。

・melファイルを作成する時に、MayaBatchは自動的にプラグインを実行しないので、
プラグインを使う場合は読み込むコマンドを入れてください。(例:loadPlugin "fbxmaya")

・melファイルでエラーが起こった場合はMayaBatchは強制終了になります。ログを確認して下さい。

・シンプルなキャラデータだけを想定されています。リグなどは持っていけません。
リグやもっと複雑なデータの場合はSI スクリプトとmelスクリプトを追加する必要があります。

・バグがまだ残っているかもしれません。弊社のプロジェクトでしか試していない為、違う環境でエラーが発生する可能性もあります。その時に連絡下さい。



■何をするプラグイン(少しテクニカルな説明):
・Softimageでスクリプトを実行します。(オプショナル)

・FBXプロパティを作成して設定します。
FBXのバージョンは指定されていない場合は、指定されたMayaフォルダのパスから"20"から始まるストリングを探して、
FBXのバージョンの形式に変えて設定されます。

・選択されているオブジェクトをFBXとして書き出します。
※デフォルトではmSI2Mayaフォルダに出力されます。

・FSO.CreateFolder などを使って、Mayaのプロジェクトフォルダを作成します。
Mayaのプロジェクトフォルダとして認識されるように
「C:\[ユーザー名]\Documents\maya\projects\default\workspace.mel」
をこのフォルダにコピーします。

・SIプロジェクトのPicturesフォルダ内で使用されているテクスチャをMayaプロジェクトのsourceimagesにコピーします。

・Mayaで実行するFBXインポート用のmelをmSI2MayaフォルダにFSO.CreateTextFileで自動に作ります。
melファイルは指定された場合は、このFBXインポート用のmelで呼びます。

・WScript.Shell を使って MayaBatch.exe もしくは Maya.exe を開いてFBXインポート用のmelを実行します。
MayaのログファイルはmSI2Mayaフォルダに残ります。何かエラーが出た場合はここをご確認下さい。

・指定されたmelファイル(オプショナル)を実行して、Maya ASCII ファイルは保存されます。

・今回使用された設定をプリゼットファイルとしてSIプロジェクトないのmSI2Mayaフォルダに保存されます。
次回はこのプリゼットファイルは自動に読み込まれます。


それでは・・・

Comments

Post a comment


Only the blog author may view the comment.

Trackbacks

Trackbacks URL
http://myara.blog.fc2.com/tb.php/197-ef4374e4
Use trackback on this entry.