2008年10月27日月曜日

blender - 同じAction一掃(3)

今期は、個人的に、アニメが非常に良いと思うので、何か1体作ろうと思っています。

が、既に、大河さん@とらドラ!3Dをpixivで発見しましたし、
なぎ3Dは既に2体確認してます。
その上、神だと思ってる方が、ざんげちゃん3D作ってました…!萌え死ぬ!
CLANNADは、ドワンゴがゲーム作っちゃってますし。

ここは、盛るしか…

-------------------------

python 同じAction一掃(2)
http://blendermoe.blogspot.com/2008/10/blender-python-action.html


さて、↑の続きです。

リアルタイム用途で使う場合(GameEngineも多分含まれる?未調査)、
IK有りで作っている場合、上記スクリプトで減量すると、IKのあるタイミングで、IKの関連するボーンにキーを打っておかないといけません。(実行時にIK計算するんだったら別ですが…)

これは、多分pythonスクリプトでは不可能に近いので、内部のソースに組み込むことにします。
といっても、これが意外にややこしくて、今日ずっとハマってました。

IKある無い/ Use Tailしてるしてない/ Targetある無い/ PoleTargetある無い/ NLAの場合の時間

くらいに気をつけて、書いてみると超遅くなりました。まぁ今回は最後に1回これ通せば良いので、遅くてもOK…。


結果


と言う感じに。

…が、PoleTargetのことすっかり忘れてて、viewerで実行したら、手足が微妙におかしい!
なんてこったい!続く。


ちなみに簡単そうに書いてるけど、落とし穴がめちゃくちゃ多いです…。疲れた。。

-----------------

気を取り直して、PoleTarget対応。
が、やはりおかしい。
っていうか、スクリプトで無駄なキーを消去した時点でおかしい。

IPOの数値で、同じのが3つ続いたら、真ん中の1つを消すという、実に単純明快な方法だから、間違えるはずないんだけど…

と思って、IPOエディタ見たら、、あれっ!?



黄色の区間、確かに足が動いているし、TransformPropertiesのLoc値も変わっているのに、IPOは全然変わってない!!!!1

これは、ひょっとして、またしてもPythonじゃあ出来ませんフラグか!?
(IPOで駄目ってことはPoseの行列取り出して比較するわけだけど、NLAなしの1Actionなら、キー打ってるところに、フレーム設定して、Pose適用すれば、行けるが、NLA有りの複数Actionなら、フレーム設定したところでBlendされるので、強制的にNLAをActionモードに変えないといけないけど、それがPythonからでは出来ない。)

0 件のコメント: