今回は、モーションの合成について教えてください。
仮に、ですが「棒立ちで剣を振り回すモーション(A)」と「走る(B)」というモーションがあったとします。
単純に「A」と「B」のブレンド比率を変えただけでは足は「棒立ち」と「走る」が混在し、腕は「剣を振り回す」と「走るときの腕振り」が混在してしまいます。
足は走り、腕は剣を振り回すようにするにはどうしたらいいでしょうか?
「走りながら剣を振り回す」というモーションは極力作りたくありません。
追記:3Dゲームを作ろうとしてるので3Dでお願いします
DXLibのモーションに関して~その2~
DXLibのモーションに関して~その2~
最後に編集したユーザー 史上最悪のデスペナ on 2011年10月12日(水) 08:22 [ 編集 1 回目 ]
Re: DXLibのモーションに関して~その2~
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=2423
でも同じスレッドを立てさせていただきました。
でも同じスレッドを立てさせていただきました。
Re: DXLibのモーションに関して~その2~
ひよこさんの回答とかぶりますけど。
上半身と下半身のモーションに分けて状況に応じて組み合わせを変える必要があります。
要は混在させたくないモーションをブレンド対象から取り除くということです。
「剣を振り回す」モーションの下半身は要らないので、「走る」モーションを二つに分ければ良いです。
「剣を振り回す」モーションは走っているときにも立ち止まっているときにも使い回せます。
フリーソフトでモーションデータを分けるのが難しい場合があるかもしれませんが、どうしようもないので、モデルデータから分割するなど工夫してください。
上半身と下半身のモーションに分けて状況に応じて組み合わせを変える必要があります。
要は混在させたくないモーションをブレンド対象から取り除くということです。
「剣を振り回す」モーションの下半身は要らないので、「走る」モーションを二つに分ければ良いです。
「剣を振り回す」モーションは走っているときにも立ち止まっているときにも使い回せます。
フリーソフトでモーションデータを分けるのが難しい場合があるかもしれませんが、どうしようもないので、モデルデータから分割するなど工夫してください。
Re: DXLibのモーションに関して~その2~
要するに、走る(上半身)、走る(下半身)、剣を振り回す(上半身)というモーションを作成して
ただ単に走るときは「走る(上半身)、走る(下半身)」を同時に描画し、剣を振り回しながら走るときは「走る(下半身)、剣を振り回す(上半身)」
と描画すればいいのですね?
ただ単に走るときは「走る(上半身)、走る(下半身)」を同時に描画し、剣を振り回しながら走るときは「走る(下半身)、剣を振り回す(上半身)」
と描画すればいいのですね?
Re: DXLibのモーションに関して~その2~
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=2423
で同じスレッドを立ててありましたが、そちらにこんな内容の書き込みがあったのでお知らせします。
記事No.4(maruoさんの回答)
MV1SetAttachAnimBlendRateToFrame関数がありますよ
http://hpcgi2.nifty.com/natupaji/bbs/pa ... st&no=1586
ここのNo.6
だそうです
で同じスレッドを立ててありましたが、そちらにこんな内容の書き込みがあったのでお知らせします。
記事No.4(maruoさんの回答)
MV1SetAttachAnimBlendRateToFrame関数がありますよ
http://hpcgi2.nifty.com/natupaji/bbs/pa ... st&no=1586
ここのNo.6
だそうです
Re: DXLibのモーションに関して~その2~
質問者さんもモデルを複製して描画すると思われていたのでしょうか?
ふつうにひとつのモデルに複数のアニメーションをアタッチして合成するのですよ。
合成時にいびつな部分ができるかどうかはアニメーションデータの作り方次第ですね。
デザイナさんの腕の見せ所でしょう。
あくまで個人的な意見ですが、わたしはモデラやアニメーション制作ツールなどの外部ツールで作業が完結する方が効率が良いと思います。
例えば、人体モデルに尻尾や羽根が付いたとしても、同じコードで動かせますから、モデルデータもアニメーションデータも好きなだけ調整できますし簡単に差し替えられます。
ふつうにひとつのモデルに複数のアニメーションをアタッチして合成するのですよ。
合成時にいびつな部分ができるかどうかはアニメーションデータの作り方次第ですね。
デザイナさんの腕の見せ所でしょう。
あくまで個人的な意見ですが、わたしはモデラやアニメーション制作ツールなどの外部ツールで作業が完結する方が効率が良いと思います。
例えば、人体モデルに尻尾や羽根が付いたとしても、同じコードで動かせますから、モデルデータもアニメーションデータも好きなだけ調整できますし簡単に差し替えられます。
Re: DXLibのモーションに関して~その2~
先の回答にも書きましたけど、アニメーションデータを作るときにすべてのフレームを含めないといけないとかいう制限は、(フリーの)アニメーション制作ツールの仕様であって、高価なツールではふつうに一部のフレーム(パーツ)のみを対象としたアニメーションデータを作れます。
アニメーション対象ではないフレーム(パーツ)はブレンド対象にならないので、腕のアニメと脚のアニメのブレンド率がそれぞれ100%でも、腕のアニメと脚のアニメは合成されます。
と思ったのですが、もしかしてDXライブラリではそうならないのでしょうかね。
アニメーション対象ではないフレーム(パーツ)はブレンド対象にならないので、腕のアニメと脚のアニメのブレンド率がそれぞれ100%でも、腕のアニメと脚のアニメは合成されます。
と思ったのですが、もしかしてDXライブラリではそうならないのでしょうかね。
Re: DXLibのモーションに関して~その2~
なるほど。RokDeBone2というフリーソフトを使っているのですが
全部のボーンを入れてアニメーションを作るもんだと思っていました。
そうすると手だけ動かすモーションと足だけ動かすモーションを作って合成すると、手だけ動かすモーションでは足のボーン情報が「動いていない」と認識されているので「動いていない」と「動いている」の合成によって変なことになったのですね。
なら、上半身だけにボーンを入れたもので上半身のモーション、下半身だけにボーンを入れたもので下半身のモーションを作ればいいということですかね?
RokDeBone2には一部のフレームのみを対象としたアニメーションデータを作るという機能は無いように思えるので(すべての機能を把握してるわけではないので不明)。
結果が分かりましたらまたお知らせします。
全部のボーンを入れてアニメーションを作るもんだと思っていました。
そうすると手だけ動かすモーションと足だけ動かすモーションを作って合成すると、手だけ動かすモーションでは足のボーン情報が「動いていない」と認識されているので「動いていない」と「動いている」の合成によって変なことになったのですね。
なら、上半身だけにボーンを入れたもので上半身のモーション、下半身だけにボーンを入れたもので下半身のモーションを作ればいいということですかね?
RokDeBone2には一部のフレームのみを対象としたアニメーションデータを作るという機能は無いように思えるので(すべての機能を把握してるわけではないので不明)。
結果が分かりましたらまたお知らせします。