2010年3月17日水曜日

xsi:スクリプト

★notepadで開くと長い文が勝手に改行扱いにされてしまうのでエディターで開く

★大量に複製する場合は必ず、複製元をフリーズしておく。余計な履歴やゴミごと複製すると重い・遅い。

★変な改行が入ると構文エラーがでる

'エラーが起きても続行
On Error Resume Next

'クラスタ選択(HEAD_***とうシーンの任意のクラスタの名前を付け替え)
SelectObj "HEAD*"
SetValue "HEAD_SAMU_BASE_1-0.Name", "THIS_SCENE"

SetValue "THIS_SCENE.obj1.polymsh.cls.ClsREF_TOP*.Name", "REF_TOP_RFL38_SHN5_"
SetValue "THIS_SCENE.obj1.polymsh.cls.ClsREF_HEAD*.Name", "REF_HEAD_RFL38_SHN106_"

'"指定のオブジェクト種"で全選択'
SelectAllUsingFilter "object",

'後ろにobj1という名前がついているモデル→"HEAD_BASE"に変更を変更'
SetValue "*obj1.Name", "HEAD_BASE"

'スケールのフリーズ'
ResetTransform "*_KOSHI,*_ATAMA", siCtr, siScl, siXYZ

'オブジェクトのフリーズ'
FreezeObj

'選択の反転
InvertSelection "object", siCheckComponentVisibility


'ビューとシェーダーの指定
SetDisplayMode "Views.ViewB.UserCamera", "texturedecal"

'フレームオール
FrameAll


FilterConstant
説明
すべてのフィルタ文字列定数
定数 値 説明
siBoundaryFilter boundary アクティブなNURBSオブジェクトのバウンダリを抽出
siCameraFilter camera カメラを抽出
siChainElementFilter chainelement チェインエレメントを抽出
siClusterFilter cluster クラスタを抽出
siConstraintFilter constraint コンストレイントを抽出
siControlFilter controlobject コントロールオブジェクトを抽出
siCurveFilter curve カーブを抽出
siEdgeFilter edge アクティブな3Dオブジェクトのエッジを抽出
siEffectorFilter effector チェインエフェクタを抽出
siGenericObjectFilter object 任意のオブジェクトを抽出
siGeometryFilter geometry 任意のジオメトリック3Dオブジェクトを抽出
siGroupFilter group グループを抽出
siImplicitFilter implicit インプリシットプリミティブを抽出
siIsopointFilter isopoint アクティブな3Dオブジェクトのアイソポイントを抽出
siKnotFilter knot アクティブな3Dオブジェクトのノットを抽出
siLatticeFilter Lattice インプリシットラティスを抽出
siLayerFilter layer レイヤを抽出
siLightFilter light ライトを抽出
siLightPartitionFilter lightpartition ライトパーティションを抽出
siModelFilter model モデルを抽出
siNullFilter null ヌルを抽出
siObjectFilter sceneobject 3Dオブジェクトを抽出
siObjectPartitionFilter objectpartition オブジェクトパーティションを抽出
siOperatorFilter operator オペレータを抽出
siPointFilter point ポイントを抽出
siPolygonFilter polygon ポリゴンを抽出
siPolyMeshFilter PolygonMesh ポリゴンメッシュを抽出
siPrimitiveFilter primitive プリミティブを抽出
siPropertyFilter property プロパティを抽出
siSceneFilter scene シーンを抽出
siShaderFilter shader シェーダを抽出
siSkeletonJointFilter joint スケルトンのジョイントプロパティを抽出
siSubComponentFilter subcomponent サブコンポーネントを抽出
siSubSurfaceFilter subsurface アクティブな3Dオブジェクトのサブサーフェイスを抽出
siSurfaceCurveFilter surfacecurve アクティブな3Dオブジェクトのサーフェイスカーブを抽出
siSurfaceMeshFilter surfacemesh サーフェイスメッシュを抽出
siTextureControlFilter texturecontrol テクスチャコントロールを抽出
siTrimCurveFilter trimcurve アクティブな3Dオブジェクトのトリムカーブを抽出
siUIsolineFilter uisoline アクティブな3DオブジェクトのUアイソラインを抽出
siVIsolineFilter visoline アクティブな3DオブジェクトのVアイソラインを抽出
siUKnotCurveFilter uknotcurve アクティブな3DオブジェクトのUノットカーブを抽出
siVKnotCurveFilter vknotcurve アクティブな3DオブジェクトのVノットカーブを抽出
siWaveFilter Wave ウェイブコントロールを抽出


■例:コンストレイン
SelectObj("*_L_KATA", null, null)
ApplyCns("Position", "*_L_KATA", "*_L_KATA_NULL", null);
DeselectAll();
SelectObj("*_R_KATA", null, null)
ApplyCns("Position", "*_R_KATA", "*_R_KATA_NULL", null);
SaveScene();


■例:SIシーンとカメラのシーンをそれぞれ読み込んでレンダリング
NewScene(null, null);
'開いたSIシーンのライトを削除'
DeleteObj("*light*");

'ライトとカメラのシーンをマージ'
MergeScene("C:\\save1\\CV4\\3D\\xsi\\RENDER\\Scenes\\head_light.scn", null, null, null, null);

'そのままレンダリング'
RenderManager();
SetValue("Passes.Default_Pass.Name", "FRAME_SOCC_CHARA", null);
SetValue("Passes.FRAME_SOCC_CHARA.FrameRangeSource", 0, null);
SetValue("Passes.FRAME_SOCC_CHARA.FrameEnd", 1, null);
SetValue("Passes.FRAME_SOCC_CHARA.Camera", "FRAME_BAN_4-0.BLADE_R_ARM_MDL_Camera", null);
SetValue("Passes.FRAME_SOCC_CHARA.Renderer", "mental ray", null);
SetCurrentPass("Passes.FRAME_SOCC_CHARA");
RenderPasses(null);


'顔無しレンダリング'
RenderManager();
SetValue("Passes.FRAME_SOCC_CHARA.Name", "FRAME_SOCC_HEAD", null);
SelectObj("*FACE", null, null);
ToggleVisibility(null, null, null);
SetCurrentPass("Passes.FRAME_SOCC_HEAD");
RenderPasses(null);

'FACEを非表示にしてレンダリング'
RenderManager();
SetValue("Passes.FRAME_SOCC_HEAD.Name", "FRAME_SOCC_NO_ETC", null);
SelectObj("*ETC0*");
ToggleVisibility(null, null, null);
SetCurrentPass("Passes.FRAME_SOCC_NO_ETC");
RenderPasses(null);


'ETCだけレンダリング'
RenderManager();
SetValue("Passes.FRAME_SOCC_NO_ETC.Name", "FRAME_SOCC_ETC", null);
SelectAllUsingFilter("object", siCheckComponentVisibility, null, null);
ToggleVisibility(null, null, null);
DeselectAll();
SelectObj("*FACE", null, true);
ToggleVisibility(null, null, null);
SetCurrentPass("Passes.FRAME_SOCC_ETC");
RenderPasses(null);


'つぎのシーンを開く'
NewScene(null, null);
ImportFromSI3D(null, null, null);

0 件のコメント:

コメントを投稿