Unityでアニメーションのやり方

Unityで人間とかの有機的な3Dデータのアニメーションのやり方。
3DデータはBlenderでボーンを入れてモーションをつけ、FBX形式で書き出しています。Blenderからはモデル、ポーズ、ボーン(Armature)のデータを選択してから書き出しする必要があります。

FBX形式のデータが正常に書き出せたら、FBXのビューワー等で確認してみます。
Autodeskから「FBX Converter」というソフトが出ていますので(なんとWin・OSX対応)、このソフトのモデルビューワータブからモデルを読込んで確認してみます。
このソフト、ライセンスに関してどこにも明示されていないので使ってますが、もしフリーソフトでなかったらすいません。

FBX Converter

モデルをUnityにドラッグで読込んで、「Project」の方でモデルを選択して「FBXImporter」のアニメーションの項目を設定します。すると「Project」のモデルの階層にもアニメーションの名前が追加されます。

Unityでアニメーションの追加

後はScriptを設定してやればアニメーションされます。

[javascript]
//モデルにscriptを追加する場合
animation.Play(“アニメーションの名前”);

//外部スクリプトから動かす場合
モデル.animation.Play(“アニメーションの名前”);
[/javascript]

サンプル

オプション的な

アニメーションのスピードをscript側から変えることができます。
[javascript]
animation[“アニメーションの名前”].speed =2.0;
[/javascript]

アニメーションをブレンドして、アニメーションごとのつなぎを滑らかにします。
[javascript]
animation.CrossFade(“アニメーションの名前”);
[/javascript]

アニメーションをブレンドして、アニメーションごとのつなぎを滑らかにします。
アニメーションをループさせます。(2011.12.12修正)
[javascript]
animation[“アニメーションの名前”]. wrapMode = WrapMode.Loop;
[/javascript]

このサイトが非常に参考になったというか、後半はままだったりしますが。

2 Comments

  1. >アニメーションをブレンドして、アニメーションごとのつなぎを滑らかにします。 animation[“アニメーションの名前”]. wrapMode = WrapMode.Loop;

    間違ってしまったと思うのですが、これループじゃないですか?

  2. uxic

    2011年12月12日 at 11:22 PM

    間違えてました!ご指摘ありがとうございます。
    修正しておきました。

コメントを残す

Your email address will not be published.

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 UXIC.net

Theme by Anders NorenUp ↑