DoWorks【Unity】簡易AnimationViewerコメントをどうぞ簡易アニメーションビューワを作成してみたのでサンプルコードとその解説を残す。新しいシーンを作成する。シーンビューにはカメラしか写ってない。モーション付きのモデルをインスタンシングアセットストア等からデータを入手できるので入手しておく。これをプロジェクトビューからシーンビューかHierarchyにD&Dでインスタンシングする。インスタンシングされたオブジェクトを選択し、Inspectorに表示されたTransformの座標を全てゼロにしておく。この時点でモノによってはカメラに納まっている。Controllerを選択し、先にインスタンシングしたオブジェクトにコンポーネントを追加する。AnimationsにあるElementを見てアニメーションがちゃんと存在するを確認しておく。下記のスクリプトをコピペして追加する。tmpArray;}これを先のインスタンスしたオブジェクトにD&Dするとコンポーネントとして追加される。再生ボタンで実行を行うと保持しているモーション一覧がボタン化されて列記される。それらをクリックするとモーションが変更される。ループ指定がOffだとモーションは一度再生された後に最終フレームで停止する。スライダは再生速度を変動させる。ループ再生しているモーションを確認する際は便利。スクリプトの解説Startメソッドで各種初期化。GetAnimationList();}自身の保持するClip(アニメーション1個の単位)の数を取得。同時に自作の関数でClipの名前を配列で取得。UpdateメソッドではキャラのY軸上の回転を行わせている。side;}OnGUIメソッドではUI表示。}}スライダはアニメーションの再生速度の変更を担う。変更時に保持するアニメーション全ての再生速度を同時に変更する。その後、自動でアニメーション数に応じてボタンを生成。ボタン押下時の効果はクロスフェードさせてアニメーションをスイッチする、という内容。アニメーションの名前が分からなくてもElement#で拾えてたと思ってサンプル探したけど出て来ず。仕方なくAnswersで検索したら発見。inで、gameObjectが保持するAnimationState形式のデータを全て取得する。取得したAnimationState各種のClipのnameプロパティ(任意で指定可能な文字列)を取得して配列に格納している。ループが完了したら配列は返される。コメントをキャンセルメールアドレスが公開されることはありません。