Unity研究所<Unityによるゲーム開発、映像開発>

Unity初心者おやじが綴るゲームで小遣い稼ぎできるようになるまでのブログ

➄扉の開閉、SE発声 その1 扉のアニメーションの作成

今回は迷路内の扉の開閉動作、その時の効果音の出力の制御について紹介する

f:id:Harukichi:20190816144506g:plain

 

〇大まかな流れ

1 扉のアニメーションの作成

2 扉にプレイヤーが近づいたかどうかの検出を行うコライダーを設定

3 スクリプトでコライダにプレーヤーが入ったら扉を開ける

4 扉を開けてから一定秒数足ったら閉じる

5 扉の開閉のSEを鳴らす

 

  

 1 扉のアニメーションを作成

 以下では開くアニメーションの作成方法を紹介する 

  

f:id:Harukichi:20190816195753p:plain

 扉のモデルを選択し、上記のようにしてAnimationウインドウを開く

 

f:id:Harukichi:20190816195850p:plain

 Animationウインドウが開いたら、真ん中のCreateボタンを押す

 するとアニメーションのファイルを保存するウインドウが開くので、適当な名前を付けて保存する

 

f:id:Harukichi:20190816200009p:plain

 Animationウインドウにて、変化させたいプロパティを追加。今回はY軸を中心として回転させたいので、TransformのRotationのプロパティを追加

 

f:id:Harukichi:20190816200300p:plain

 プロパティを追加するとはじめと適当なもう一か所にキーフレームが挿入される

 今回は0フレームの箇所は閉じた状態で、60フレームの箇所では120度開いた状態にしたいので、プロパティに120を入力

 こうしてキーフレームの作成ができたので、再生ボタンを押すと、扉が開くアニメーションが再生される

 

 なお、今回は使用しているモデル自体の原点が扉の軸(アンカーポイント)に最初から設定されていたため、パラメーターを入力するのみで行けたが、原点がモデルの中心だったりする場合は、下記のような調整が必要となる

モデリングのソフト等で原点を調整

②Unity上で親オブジェクトとする空のゲームオブジェクトを作成し、原点を調整したいモデルをこの空のゲームオブジェクトの子オブジェクトにして、親オブジェクトの位置をモデルの原点としたい位置に調整して、アニメーションでは親オブジェクトのプロパティを操作してアニメーションをさせる

 

 なお、さらに閉じるアニメーションを作るには、下図のように、現在のアニメーションクリップの下にあるCreate New Cripをクリックして、先ほど作成したアニメーションのプロパティの設定を最初を120、最後を0として作成する

f:id:Harukichi:20190816200603p:plain

 

〇Animatiorの設定

 上記では、扉の開く、閉じるのアニメーションは作成した

 ここでは、これらの切り替え方法について解説していく

 

f:id:Harukichi:20190816215134p:plain

 アニメーションを作成し、ゲームオブジェクトに割り当てた時点で、自動的にAnimatorのファイルが作成されている

 

f:id:Harukichi:20190816215346p:plain

 おそらく最初は上記のようになっていると思われるので、いったん先に割り付けられているモーションを削除する

 

f:id:Harukichi:20190816215412p:plain

 いきなり扉が開くモーションからスタートすると都合が悪いので、最初の状態用に空のStateを作成する

 

f:id:Harukichi:20190816215529p:plain

名前はHomePositionとしておく

 

f:id:Harukichi:20190816215602p:plain

次に作成したアニメーションを選択して配置する

 

f:id:Harukichi:20190816215705p:plain

上記のように配置を整理して、さらにアニメーションの遷移の設定を行う

 

f:id:Harukichi:20190816215826p:plain

一通りつないだのが上図

 

f:id:Harukichi:20190816220237p:plain

最後にアニメーションの遷移の切り替え用にパラメーターを設定しておく

今回はBool型のDoorOpenを作成した

各遷移時の設定については

HomePosition⇒Door_Open_Anim   true

その他はfalseに設定

 

※注意事項

 作成したアニメーションについては、アニメーションのファイルを選択してInspectorのLoop Timeのチェックを外しておく

 外しておかないとアニメーションをループして再生してしまうため

f:id:Harukichi:20190816220043p:plain



今回はここまで