====== VCIでアニメーションを再生する ====== **アニメーション(Animation)**を組み込むことで、動きのあるVCIを作成できます。\\ [[https://developer.virtualcast.jp/vci-docs/api/classes/ExportAnimation/PlayFromName.html|PlayFromName]]を使用します。\\ Unityでの操作や、アニメーションとスクリプトの作成について詳しく説明します。 他のサンプル:[[vci/sample/ongrab/no1]] ==== 必要なもの ==== {{ :vci:sample:animation:animation_image01.png?640&direct }} UnityのHierarchyビューで、次のようなオブジェクトの並びになります。 **①VCI Object(root)**\\ ⇒VCIの情報を記入します。 **②SubItem**\\ ⇒個別にVCIのオブジェクトとしての機能を付けます。\\ 今回はAmimationを追加して、③に動かしたい3Dモデルを配置します。 **③動かしたいGameObject**\\ 3Dモデルを配置します。 ==== 手順 ==== **1. VCI Objectの作成** 空のGameObjectを作成します。 作成したGameObjectを分かりやすい名前に変更して、[AddComponent]から[VCI Object]を追加します。\\ ここでは**AnimationVci**とします。 {{:vci:sample:animation:animation_image02.png?400&direct}} **2. SubItemを作成** 空のGameObjectを作成します。 作成したGameObjectを分かりやすい名前に変更して、[AddComponent]から[Animation]を追加します。\\ ここでは**AnimationObjects**とします。 また、[AddComponent]から[SubItem]を追加し、[Rigidbody]のUseGravityのチェックを外し、IsKinematicにチェックを入れます。 この時、VCI Objectの子になるように配置してください。 {{:vci:sample:animation:animation_image03.png?400&direct|}} **3. 動かしたいGameObjectを作成** 空のGameObjectを作成します。\\ ここでは**Cube**を使用しています。 この時、手順2で作成したGameObjectの子になるように配置してください。 {{:vci:sample:animation:animation_image12.png?400&direct|}} **4. Animationウィンドウを開く** 手順2で作成したGameObjectを選択した状態で、メニューから[ Window > Animation > Animation ]を選択して、Animationウィンドウを開きます。 ショートカットキー[ Ctrl + 6 ]でもAnimationウィンドウを開くことが出来ます。 {{:vci:sample:animation:animation_image05.png?400&direct|}} **5. アニメーションクリップを作成** Animationウィンドウ中央の、[Create]ボタンでアニメーションクリップを作成します。 分かりやすい名前で保存してください。\\ ここでは**CubeAnimation**とします。 手順2で作成したGameObjectが選択されているか確認してください。 GameObjectを選択していない場合、[Create]ボタンを押せません。 {{:vci:sample:animation:animation_image06.png?400&direct|}} **6. keyframe recording modeをOnにする** Animationウィンドウの左上の◎ボタンをおして、keyframe recording modeをOnにします。 keyframe recording modeをOnにすると簡単なアニメーションが手軽に作成できます。\\ 詳しく使い方を知りたい場合は[[https://docs.unity3d.com/ja/2018.4/Manual/animeditor-AnimatingAGameObject.html|こちら]]を参照してください。 {{:vci:sample:animation:animation_image09.png?400&direct|}} **7. 上昇するキーフレームを作成** ①フレームを30に指定。今回は1秒間に1回上下するアニメーションを作成したいので、30で上昇、60で元に戻るように設定します。 ②Cubeの[Transform]の[Position]のYを2に変更します。 {{ :vci:sample:animation:animation_image10.png?direct |}} **8. 元の位置に戻るキーフレームを作成** ①フレームを60に指定。 ②Cubeの[Transform]の[Position]のYを0に変更します。 Animationウィンドウを選択した状態でspaceを押すと、現時点でのアニメーションの動きの確認が出来ます。 {{ :vci:sample:animation:animation_image11.png?direct |}} **9. 元に戻るキーフレームを作成** ①フレームを60に指定。 ②Cubeの[Transform]の[Position]のYを0に変更します。 Animationウィンドウを選択した状態でspaceを押すと、現時点でのアニメーションの動きの確認が出来ます。 {{ :vci:sample:animation:animation_image11.png?direct |}} ===== スクリプト ===== **VCI Object**のコンポーネントから、[[vci/script/tutorial| スクリプト]]を入力します。\\ 作成したアニメーション名を指定して、アニメーションを再生することができます。\\ VCIを取り出すと、自動的にアニメーションが再生されます。 local Anime = vci.assets.GetTransform("AnimationObjects") local SubitemAnime = Anime.GetAnimation() SubitemAnime.PlayFromName("CubeAnimation", true)