この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
vci:sample:onuse:no3 [2021/07/07 16:30] t-daihisa |
vci:sample:onuse:no3 [2023/10/11 17:48] pastatto 概要を編集 |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
====== アイテムを使ったときにアニメーションを再生する ====== | ====== アイテムを使ったときにアニメーションを再生する ====== | ||
- | \\ | + | [[https://developer.virtualcast.jp/vci-docs/api/events/onUse.html | onUse]]と[[https://developer.virtualcast.jp/vci-docs/api/classes/ExportAnimation/Play.html|Play]]を使用して、アニメーションを再生するサンプルです。\\ |
- | > ※この記事は「UniVCI-0.15」時点のものです。\\ | + | 参考:[[vci/sample/animation/tutorial2]] |
- | サンプルデータ:[[https://seed.online/items/ca131804509ecf7f848d85d4711e91f2ad30c4caa4e6144e5d83be2a37af840a]]\\ | + | |
- | \\ | + | === サンプルデータ === |
+ | https://virtualcast.jp/products/9bd2f446cc30815fd18fa7e66b7cd62e0b8dc43cb666d435e5474ab224888bfe | ||
+ | |||
+ | {{ :vci:sample:animation:useanimation_vci.zip |}} | ||
+ | |||
+ | ===== 手順 ===== | ||
アイテムを使ったときに処理を実行するには「**onUse**」を使用します。 | アイテムを使ったときに処理を実行するには「**onUse**」を使用します。 | ||
- | ここでは指定の「VCI SubItem」を使うと\\ | + | ここでは指定の「VCI SubItem」を使うとアニメーションを再生する処理を作成します。 |
- | アニメーションを再生する処理を作成します。 | + | |
1. 新しくGameObjectを作成し、その中にCubeを入れ子にします。\\ | 1. 新しくGameObjectを作成し、その中にCubeを入れ子にします。\\ | ||
\\ | \\ | ||
GameObjectの名前は「UseAnimation_VCI」としていますが、任意の名前でも可です。\\ | GameObjectの名前は「UseAnimation_VCI」としていますが、任意の名前でも可です。\\ | ||
- | Cubeの名前は「**Cube**」と指定します。\\ | + | 「**VCI Object**」コンポーネントをアタッチします。 |
- | Cubeは地面に貫通しないようY座標を1.0に指定します。 | + | |
+ | Cubeの名前はここでは「**Cube**」と指定します。\\ | ||
+ | 地面に貫通しないようY座標を1.0に指定します。\\ | ||
+ | 「**VCI SubItem**」コンポーネントをアタッチします。\\ | ||
+ | この時、「Rigitbody」コンポーネントもアタッチされます。\\ | ||
+ | 今回は重力を使用しないため、**「Use Gravity」をOFF、「Is Kinematic」をON**にします。 | ||
+ | |||
+ | 2. Cubeに再生用の「**Animation**」コンポーネントをアタッチし、\\ | ||
+ | アニメーションを1つ作成します。\\ | ||
+ | 詳細:[[vci/sample/animation/tutorial2]] | ||
- | 2. Cubeに再生用の「**Animator**」コンポーネントをアタッチし、\\ | ||
- | 「**Animation**」を作成し、Animatorのstateへ関連付けます。\\ | ||
- | Animationのファイル名は「**UseAnimationAction**」とします。\\ | ||
※Animationの操作はUnityのマニュアルを参照してください。\\ | ※Animationの操作はUnityのマニュアルを参照してください。\\ | ||
[[https://docs.unity3d.com/ja/2018.1/Manual/animeditor-CreatingANewAnimationClip.html]] | [[https://docs.unity3d.com/ja/2018.1/Manual/animeditor-CreatingANewAnimationClip.html]] | ||
- | 3. GameObjectに「**VCI Object**」コンポーネントをアタッチし、\\ | + | 3. 「VCI Object」コンポーネントのScriptsのSizeを**1**に指定し、\\ |
- | Cubeに「**VCI SubItem**」コンポーネントをアタッチします。\\ | + | |
- | この時、「Rigitbody」コンポーネントもアタッチされます。\\ | + | |
- | Cubeは重力を使用しないため、**「Use Gravity」をOFF、「Is Kinematic」をON**にします。 | + | |
- | + | ||
- | 4. GameObjectの「VCI Object」コンポーネントのScriptsのSizeを**1**に指定し、\\ | + | |
Nameに「main.lua」を記入、Sourceに以下スクリプトを記入します。 | Nameに「main.lua」を記入、Sourceに以下スクリプトを記入します。 | ||
+ | ===== VCIスクリプト ===== | ||
<file lua main.lua> | <file lua main.lua> | ||
+ | local Anime = vci.assets.GetTransform("Cube") | ||
+ | local SubitemAnime = Anime.GetAnimation() | ||
function onUse(use) | function onUse(use) | ||
if use == "Cube" then | if use == "Cube" then | ||
- | vci.assets._ALL_PlayAnimationFromName("UseAnimationAction", false) | + | SubitemAnime.Play(false) |
end | end | ||
end | end | ||
</file> | </file> |