

現在UnityにてTPS（サードパーソンシューティング）を作っています。

武器を構えた時に指定したキーフレームを表示したいのですがやり方が分かりません。マウスカーソルを動かすと顔がそこを追いかけてくれる…みたいな感じです。

分かりづらくて申し訳ございません。  
![画像の説明をここに入力](https://i.stack.imgur.com/HTPAY.jpg)  
Unityのバージョンは５です。


CC BY-SA 3.0
2015-04-27T12:44:16.670
9610
2016-07-29T18:07:18.937
2015-04-27T16:01:56.933
76
9514
question
unity3d
アニメーションをキーフレーム指定で表示することはできますか？


アニメーションのキーフレームの取得は難しいですが、アニメーションを指定したフレームで表示するにはAnimationClipのframeRateから計算できます。

[code]

    public class TestAnimation : MonoBehaviour
    {
        private Animator    m_animator;
    
        void Awake()
        {
            m_animator  = GetComponent< Animator >();
        }
    
        public void SetAnimationFrame( int i_frame )
        {
            var clipInfoList    = m_animator.GetCurrentAnimatorClipInfo( 0 );
            var clip            = clipInfoList[ 0 ].clip;
    
            float time  = (float)i_frame / clip.frameRate;
    
            var stateInfo       = m_animator.GetCurrentAnimatorStateInfo( 0 );
            var animationHash   = stateInfo.shortNameHash;
    
            m_animator.Play( animationHash, 0, time );
        }
    }
    
[/code]

[![](https://i.stack.imgur.com/3iFJ6.gif)](https://i.stack.imgur.com/3iFJ6.gif)

ただ、マウスカーソルの位置の方向に顔や銃が向くということをするのでしたら、アニメーションではなくスクリプト上で向きを計算してtransformのrotationなどを設定したほうがいいと思われます。


CC BY-SA 3.0
2015-09-29T22:38:09.383
17078
2015-09-29T22:38:09.383
12383
9610
answer