バッチファイルの書き方
xsi.exe -r -scene "\\Ibm02\HD-PU2
(D)\BS\XSI\Scenes\gun1\c01_c02_gunzei1_08.scn" -pass "chara" -sample_max 2 -sample_min 0 -filter "gauss" -jitter true -contrast "0.05,0.05,0.05,0.05" -continue
バッチファイルの書き方
xsi.exe -r -scene "\\Ibm02\HD-PU2
(D)\BS\XSI\Scenes\gun1\c01_c02_gunzei1_08.scn" -pass "chara" -sample_max 2 -sample_min 0 -filter "gauss" -jitter true -contrast "0.05,0.05,0.05,0.05" -continue
1.スケルトンを描く。
名前をこれにする
"root_leg"
"up_leg"
"low_leg"
"eff_leg"
2.インプリシットキューブを出す。
名前を"ctrl_foot"
eff_legのとこに持ってきてeffを選んでposicons。普通にセットアップする感じで。
3.ctrl_footを選んでカスタムパラメータを作る。
名前を”ctrl_foot_set”
ブールのパラメーターを作る。名前を"stretchy"
4.ボーンのlengthにエクスプレッションをかける
cond( ctrl_foot.ctrl_foot_set.stretchy && ctr_dist( root_leg., ctrl_foot. ) > 6, ctr_dist( root_leg., ctrl_foot. ) / 6 * 3, 3 )
二つのボーンにこれをかける。
作ったパラメーターでオンオフできる。
初めの6は二つのボーンを足した長さ。rootとeffの距離が6以上になると伸びる。
最後に6で割って3をかける意味は分からない。
選んでる全ての名前とタイプを表示する。
---------------------------------------------------------------------
set oReturn = GetValue("SelectionList")
For Each r In oReturn
logmessage r & "is an" & r.Name
logmessage r & "is an" & r.Type
Next
at_frame( Fc - 1, cube.kine.local.roty )
反対にしたい時はこう↓
これはキューブのrotyの値に-1フレーム遅れて付いてくる。
Fcは現在のフレーム数を表す。
※cube.kine.local.roty の部分がキーフレームが打たれている上体でないとダメ
ヘビとかのワシャワシャ系にいいかも?
ワシャワシャ系の動き。ムカデの足などはsinを使うと出来る。
カスタムパラメーターをつくりその値を使えば変更が楽。
a * sin ( b * x + c * 1 ) + d
a=ふり幅
b=スピード
c=オフセット。オブジャクト間のずれ
d=オフセット。ディフォルトの位置
x=はコントロールオブジェクトのrotの値。パラメーターでも可。cube.rotxなど。
数字の位置は全部の骨に同じ式を入れると同じ動きをする為、誤差を作るために1といれる。次の骨は2、その次は3。
--------------------------------------------------------------------------
例
CustomPSet.furihaba * sin( CustomPSet.speed * cube1.kine.local.rotz + CustomPSet.offset * 1 ) + CustomPSet.off_defolto
---------------------------------------------------------------
set aSel = Application.selection
set oSel = aSel.Item(0)
logmessage oSel.type
logmessage oSel.posx
logmessage oSel.posx.Value
----------------------------------------------------------------------
'INFO : polymsh
'INFO : cone.kine.local.posx
'INFO : 4.5308357433676
これは二つとも選択したリストを取得しその詳細をログに出すというもの。
上はosel に代入してるが下はsetを使いoSelobjを変数にしている。
上のログ
'INFO : _0ss
'INFO : String
下のログ
'INFO : XSICollection
'INFO : _0ss
'INFO : Object
TypeName に注目する。これは変数に格納されている値の型を調べる際に使う。
上はString(文字列)下はObjectと出た。
dim osel
osel = GetValue("selectionList")
logmessage osel
logmessage TypeName (osel)
----------------------------------------------------------------
set oSelobj = GetValue("selectionList")
logmessage oSelobj.type
logmessage oSelobj
logmessage TypeName (oSelobj)
Option Explicit
変数を強制的に宣言するもの。
スクリプトの先頭に書く。
変数を強制的に宣言することで、変数名の入力ミスを防げる。
Option Explicitで変数宣言を強制してるのでDimを消すと
'ERROR : この変数は宣言されていません。: 'oRoot' - [line 8]
と出る。
---------------------------------------------------------------------------------------------
'VBScriptの例
Option Explicit
Main()
sub Main()
dim oModel, oRoot, oGroup, oGroups
set oRoot = ActiveProject.ActiveScene.Root
oRoot.AddGroup
oRoot.AddModel( oRoot.Children )
set oModel = oRoot.FindChild("_3D_Model")
set oGroups = oModel.Groups
LogMessage "Number of Groups : " & oGroups.Count
for each oGroup in oGroups
LogMessage oGroup.Name
next
end sub