あまり、つっこんだリサーチを行っていなかったBip周り
すこし、つっこんで調べてみよう。
そうだな、たとえば・・・・
Bipedをボーンなどで作ったJoint構造にアタッチするなど。
通常のコントローラーと違うので、
基本相容れないだろう、この2種を混同できたらどうだろうかな
単刀直入に、
Biped → Joints、もしくは、Joints → Biped。
などなど。
それでは、ちょいとばかり
適当に、プロパティ周りを叩いた様子をメモメモ
/*
$は現在選択しているオブジェクト
bip全てのnodeの場合s最後の引数は1~22までは大丈夫だった
*/
biped.getNode $ 22;/*ノードの情報を書き出し*/
for i=1 to 22 do
(
print(biped.getNode $ i););–for end
/*
トランスフォームのテスト
Bip全てのNode意外は回転のみが張り付く
スケールは完全無視
*/
$Bip01.transform = $Box01.transform;
$’Bip01 L UpperArm’.transform = $Box01.transform;/*
これが基本のTransform操作みたい、割り当ては絶対値かな?
最後のfalseは、アニメーションキーを作成するかの部分
*/
biped.setTransform $ #pos [0,0,0] false;
biped.setTransform $ #rotation (quat 0 0 0 1) false;
–スケールは相変わらずフィギュアモードでしか反応しない
biped.setTransform $ #scale [2,2,2] false;
–コレでもあり
rotValue = $Box01.rotation;
biped.setTransform $ #rotation rotValue false;/*
フィギュアモード下でbip間接のTransformをオブジェクトに対象の値を入れてみる
*/
tagObj = $Box01.transform;biped.setTransform $ #pos (tagObj.translationpart) false;
biped.setTransform $ #rotation (tagObj.rotationpart) false;
biped.setTransform $ #scale (tagObj.scalepart) false;
このなかで、一番注目するのは最後の
biped.setTransform $ #XXXXX YYYY false;などの
トランスフォームを操作するやつ。
MELで言うところの、xformにや、move、rotate、scaleに該当する機能だね。
絶対値で扱われているみたいだから、扱いやすいかも。
MELみたいに相対(Relative)とか簡単に引数で設定できればいいのになぁ・・・。
ただし、matrix行列をそのまま与えたところ、
45度ずつずれていたようで。
このあたりは、matrixの行列をちょいとイジッてやる必要があるみたいかな。
ちなみに。。。
matrix行列から、各値をとりだすのには
<matrix行列>.translationpart
<matrix行列>.rotationpart
<matrix行列>.scalepart
こんな感じ。
至れり尽くせり。
ひとまず、Bipのトランスフォームは扱えるようになったので
自前ツールにでも早速盛り込んでみよう。
実験したときのゴミスクリプト