v4.0
ボーンの長さ全体にわたって回転のヌルを作成します。エンベロープのデフォーマとして使用すると、ボーンの長さ全体に均等にツイストを分散し、より自然なスキンのデフォーメーションを実現できます。
上腕の分割と前腕の分割では、開始と終端の回転は別々の方法で決定されます(「MakeForearmRoll」を参照)。 上腕の回転分割では、スピンなしの上腕のローカル回転が開始の回転となり、スピンありの回転が終了の回転となります。 回転分割は、開始と終端の間で補完されます。 前腕の回転の場合には、前腕の回転からスピンを除いたもの(上腕の回転から計算されます)が回転の開始の回転として使用され、終了の回転はスピンありの次のボーン(手首)の回転となります。
oBicepRoll = MakeBicepRoll( Bicep, [Prefix], [NbDivisions] ); |
BicepRoll JScript オブジェクトを戻します。
パラメータ | タイプ | 説明 |
---|---|---|
Bicep | 文字列 | 回転分割の開始および終了の回転に使用されるチェイン エレメント。 |
Prefix | 文字列 | 回転分割の名前に付加されるプリフィックス。 |
NbDivisions | Integer |
回転分割の数。 値がゼロの場合には、回転は作成されません。 デフォルト値: 3 |
/* This script creates 3 roll divisions on a bone */ var lPosStart = XSIMath.CreateVector3(); var lPosEnd = XSIMath.CreateVector3(); lPosStart.Set(0,0,0); lPosEnd.Set(-5,0,0); var Chain = ActiveSceneRoot.Add2DChain(lPosStart, lPosEnd); var BicepRoll = MakeBicepRoll(Chain.Bones(0), "L"); DumpBicepRoll (BicepRoll ); function DumpBicepRoll (inBicepRoll) { logmessage ("Data in the returned bicep roll object:"); logmessage ("---------------------------------------"); logmessage ("#Divisions: " + inBicepRoll.Nb); if(inBicepRoll.Nb > 0) { for(var b=0;b<inBicepRoll.Divisions.count;b++) {logmessage (" RollDiv" + b + ": " + inBicepRoll.Divisions(b));} } } //results from running this script //INFO : "Data in the returned bicep roll object:" //INFO : "---------------------------------------" //INFO : "#Divisions: 3" //INFO : " RollDiv0: LBicepRoll1" //INFO : " RollDiv1: LBicepRoll2" //INFO : " RollDiv2: LBicepRoll3" //INFO : " RollDiv3: LBicepRoll_4" |