新規トピックを開始
回答済み

インタラクションSDKについて

 先日UnityのTimelineについて質問させて頂いたのですが、それをSTYLY インタラクションSDKで制御出来ると伺ったのでそちらについて質問させてください
(内容がインタラクションSDKに移ったので別のトピックにさせて頂きました)

現在インタラクションSDKでUnityのTimelineを制御する方法を探しています
やりたいことは
1、STYLYのScene上でSwitch(Cube等)をインタラクトした時にTimelineを動く状態にしたいので、どれをどの様に使用して設定すればいいでしょうか?
(理想を言えばプレイヤーが扉などのObjectを通過した時にTimelineが動き出すのが理想ですがそれは可能でしょうか?)

2、可能ならばTimelineを停止{別のSwitchで構わない}、リセット{これも別Switchで構わない)、再度StartのSwitchで動かすをやりたいのですが、これはインタラクションSDKで可能でしょうか?
可能な場合はどれをどの様に使用して設定をすればいいのでしょうか?

現在インタラクションSDKを理解すべく簡単なTimelineを用意して色々試していますが、元々のUnityの知識が足りないのもあり見つけることがかないません

最低1の何かをインタラクトしてTimelineを動かすだけでも構わないので教えていただけたらと思います
(それで最低限やりたいことは実現できます)
よろしくお願いします!


最も良い回答

ご質問ありがとうございます。

幾つか実装方法についてお答えさせて頂きます。


1について

新しく作った機構から、オブジェクトを掴める必要はなさそうですので、スイッチのようにTimelineを起動する方法をお伝えします。


・スイッチとするオブジェクトにAdd ComponentからEvent Triggerコンポーネントを追加する

・Add New Event TypeからPointer Clickイベントを追加する

・+ボタンからリスト項目を追加し、Playableを持つオブジェクトを指定する

・Functionの欄からPlayable Director > Play()を選択する


こうすることで、スイッチとするオブジェクトがクリックされた時にTimelineを再生することができます。

(あくまで実装の一例ですが、参考にしていただければと思います。)

image



理想とされている「一定の範囲内に入ったら」の実装ですが、こちらの実装はPlayMakerが必要になるかと思われます。


2について

こちらは上にもある「Functionの欄からPlayable Director > Play()を選択する」のPlay()の部分を変更すれば可能です。

・Pause() → アニメーションを一時停止する

・Resume() → アニメーションを再開する


もしわかりづらい点などありましたら、引き続きご質問ください。

image


コメント数: 4Sorted by 古い順

こちらの件ですが、ひとまず自己解決したので報告させて貰います

以前にこちらで教えて頂いたSTYLY_Attr_Equipmentを利用する方法を主体にしてみました

1、起動するために設定したゲームオブジェクトを掴める状態にしてその後消えるように設定
STYLY_Attr_EquipmentにゲームオブジェクトをaddしてSet Active boolで非アクティブにセットする)
2、動かしたいTimelineを空のゲームオブジェクトの子にして、ゲームオブジェクトは非アクティブに
Timelineはアクティブの状態にする
3、2の親ゲームオブジェクトを
STYLY_Attr_EquipmentにてSet Active boolのアクティブでセットする

これで気になっていた起動するためにゲームオブジェクトを掴んだ後に、起動用のゲームオブジェクトが装備されたままなのを消してTimelineを起動出来る様に出来ました

使い方として正しいのか判断は出来ないので、もし「こうやった方がスマートである」とか「こうやらないとエラーが起こる」などありましたら教えて頂ければと思います

回答

ご質問ありがとうございます。

幾つか実装方法についてお答えさせて頂きます。


1について

新しく作った機構から、オブジェクトを掴める必要はなさそうですので、スイッチのようにTimelineを起動する方法をお伝えします。


・スイッチとするオブジェクトにAdd ComponentからEvent Triggerコンポーネントを追加する

・Add New Event TypeからPointer Clickイベントを追加する

・+ボタンからリスト項目を追加し、Playableを持つオブジェクトを指定する

・Functionの欄からPlayable Director > Play()を選択する


こうすることで、スイッチとするオブジェクトがクリックされた時にTimelineを再生することができます。

(あくまで実装の一例ですが、参考にしていただければと思います。)

image



理想とされている「一定の範囲内に入ったら」の実装ですが、こちらの実装はPlayMakerが必要になるかと思われます。


2について

こちらは上にもある「Functionの欄からPlayable Director > Play()を選択する」のPlay()の部分を変更すれば可能です。

・Pause() → アニメーションを一時停止する

・Resume() → アニメーションを再開する


もしわかりづらい点などありましたら、引き続きご質問ください。

image


回答ありがとうございます!

回答いただいた内容ですが作成していたsceneの完成が締め切り間近だったので、試用せず別の方法(上記)でとりあえず解決しました
ただこの方法だと設定したTimelineを流しっぱなしにして終わったらそのままの状態になっています
可能ならば停止、再度開始などをしたかったので上記に回答頂いた方法を試してみました

ですが、Event Triggerをアタッチして説明通り設定してもTimelineが動きません
(Cubeにアタッチしたのですがビーム?に反応している感じもありません)

こちらに書かれている分以外に設定しなくてはならないものがあるのでしょうか?
何分Unityを全く理解していないのに近いので常識に近いものでも設定してない可能性はあります
よろしくお願いします

ご質問ありがとうございます。

EventTriggerはCollider(当たり判定)がオブジェクトに存在しないと動かないため、オブジェクトにコライダーが設定されていない場合は動かないかもしれません。
コライダーがもし設定されていない場合、Add Componentからbox colliderを追加して、オブジェクトの形状に合わせて当たり判定を設定していただければと思います。
もしわからなければまたご質問ください

image

image






また、他にも幾つか可能性は考えられるため、お手数ですがUnityの画面をスクリーンショットなどで送って頂けると解決に協力できるかと思います。お待ちしております。

ログイン または 登録 コメント投稿のため