実現したいこと声を発するとUnity#Cスクリプトを実行したいhttps://baba-s.hatenablog.com/entry/2018/10/04/130000↑のサイトのカスタムシェーダを#Cスクリプトを書き
クリックでシェーダを実行するようにしているところを
声を発するとシェーダを実行するようにしたいです。
STYLYでは実装可能でしょうか…?
現在使っている#Cスクリプト
#Cスクリプト コントローラー
#Cスクリプト クリックで実行
使用ツールなど
Oculus Quest 2unityバージョン2019.3.6fiMacOS BigSur バージョン11.2.3
初心者で拙い質問で申し訳ないのですが、
回答お待ちしております…
返信ありがとうございます。
状況としては、スクリプトからシェーダーを動かすことはできるが、デバイスの位置がわからないため中心の座標がわからない、という状態でしょうか。
デバイスの位置を取得するだけであれば、Main Cameraがそのままデバイスの位置になっているため、MaicCameraの座標を取得すればデバイスの位置も取得できるはずです。
添付の画像はMainCameraの子オブジェクトにCubeを置いて顔を動かしたものです。MainCameraとデバイスの位置が同期されていることがわかるかと思います。
もし、わからないことがあればまた質問ください。
ご質問ありがとうございます。
STYLYでは一部のアセットを除き、標準以外のC#スクリプトを利用することはできません。ですので、ロジックを追加するには、PlayMakerというアセットもしくはSTYLY Intaraction SDK をご利用ください。
以下の画像は、PlayMakerを使ってEcholocationシェーダーを動かす場合の一例です。
音声による入力については、PlayMakerが対応しているか現在調査中ですので、もうしばらくお待ちください。STYLYが対応している機能については、STYLY Documentに載っていますので合わせてご確認ください。
ご回答ありがとうございます…!音声認識は難しいとのこと、確認いたしました。具体的に実現したいことは
1.ヘッドセットを付けた状態で声を発する
2.声を発した位置(ヘッドセットの位置など)からShaderが実行される
です。
現段階ではこのようなスクリプトを書いてみております…
using UnityEngine; using System.Linq; [RequireComponent(typeof(EcholocationController))] public class EcholocationTest : MonoBehaviour { private EcholocationController controller; private Camera mainCamera; private AudioSource aud; private void Start() { this.mainCamera = Camera.main; this.controller = this.GetComponent<EcholocationController>(); aud = GetComponent<AudioSource>(); aud.clip = Microphone.Start(null, true, 999, 44100); // マイクからのAudio-InをAudioSourceに流す aud.loop = true; // ループ再生にしておく while (!(Microphone.GetPosition("") > 0)){} // マイクが取れるまで待つ。空文字でデフォルトのマイクを探してくれる aud.Play(); // 再生する } private void Update() { float vol = GetAveragedVolume(aud); // Camera cam; // cam = Camera.main; var cameraForward = Camera.main.transform.rotation; Debug.Log(cameraForward); if ( vol > 0.03 ) { Debug. Log(cameraForward); this.controller.EmitCall(cameraForward); } // if (volume >= 0.1f && Physics.Raycast(this.mainCamera.ScreenPointToRay(Input.mousePosition), out var hitInfo)) // { // this.controller.EmitCall(hitInfo.point); // } } float GetAveragedVolume(AudioSource audio) { float[] data = new float[256]; float a = 0; audio.GetOutputData( data, 0 ); foreach (float s in data) { a += Mathf.Abs(s); } return a/256.0f; } }
Unityから直接Oculusにビルドしてみているのですが(STYLY質問フォームなのに、すいません…)しかしながら、ヘッドセット=カメラの位置に追従して実行させる方法がわからず
結局詰まっております…
なにかいい方法がありましたら、アドバイスいただけると幸いです。
浦田朋佳
実現したいこと
声を発するとUnity#Cスクリプトを実行したい
https://baba-s.hatenablog.com/entry/2018/10/04/130000
↑のサイトのカスタムシェーダを#Cスクリプトを書き
クリックでシェーダを実行するようにしているところを
声を発するとシェーダを実行するようにしたいです。
STYLYでは実装可能でしょうか…?
現在使っている#Cスクリプト
#Cスクリプト コントローラー
#Cスクリプト クリックで実行
使用ツールなど
Oculus Quest 2
unityバージョン2019.3.6fi
MacOS BigSur バージョン11.2.3
初心者で拙い質問で申し訳ないのですが、
回答お待ちしております…
返信ありがとうございます。
状況としては、スクリプトからシェーダーを動かすことはできるが、デバイスの位置がわからないため中心の座標がわからない、という状態でしょうか。
デバイスの位置を取得するだけであれば、Main Cameraがそのままデバイスの位置になっているため、MaicCameraの座標を取得すればデバイスの位置も取得できるはずです。
添付の画像はMainCameraの子オブジェクトにCubeを置いて顔を動かしたものです。MainCameraとデバイスの位置が同期されていることがわかるかと思います。
もし、わからないことがあればまた質問ください。
- 古い順
- 人気
- 新しい順
Sorted by 古い順Saku
ご質問ありがとうございます。
STYLYでは一部のアセットを除き、標準以外のC#スクリプトを利用することはできません。ですので、ロジックを追加するには、PlayMakerというアセットもしくはSTYLY Intaraction SDK をご利用ください。
以下の画像は、PlayMakerを使ってEcholocationシェーダーを動かす場合の一例です。
音声による入力については、PlayMakerが対応しているか現在調査中ですので、もうしばらくお待ちください。
STYLYが対応している機能については、STYLY Documentに載っていますので合わせてご確認ください。
浦田朋佳
ご回答ありがとうございます…!
音声認識は難しいとのこと、確認いたしました。
具体的に実現したいことは
1.ヘッドセットを付けた状態で声を発する
2.声を発した位置(ヘッドセットの位置など)からShaderが実行される
です。
現段階ではこのようなスクリプトを書いてみております…
Unityから直接Oculusにビルドしてみているのですが
(STYLY質問フォームなのに、すいません…)
しかしながら、ヘッドセット=カメラの位置に追従して実行させる方法がわからず
結局詰まっております…
なにかいい方法がありましたら、アドバイスいただけると幸いです。
Saku
返信ありがとうございます。
状況としては、スクリプトからシェーダーを動かすことはできるが、デバイスの位置がわからないため中心の座標がわからない、という状態でしょうか。
デバイスの位置を取得するだけであれば、Main Cameraがそのままデバイスの位置になっているため、MaicCameraの座標を取得すればデバイスの位置も取得できるはずです。
添付の画像はMainCameraの子オブジェクトにCubeを置いて顔を動かしたものです。MainCameraとデバイスの位置が同期されていることがわかるかと思います。
もし、わからないことがあればまた質問ください。
-
STYLYにアップロードするときにエラーメッセージが表示され、モデルのアップロードができない
-
STYLY Studio上で正しくライトが表示されない
-
STYLY上でオブジェクトが視界に入ったか確認したい
-
STYLY Mobile(AR)上でイベントを発生させる方法について
-
STYLY Sceneから他のWebサイトに移動したい
-
TimeLineをプレハブとしてアップロードしたいのですが、エラーが表示されてアップロードできないです
-
Blenderで作ったモデルがSTYLY内で正しく表示されない
-
PlayMakerで衝突が正しく検知されない。
-
InteractionSDKのEquipmentについて
-
子オブジェクトのワールド座標を取得したい
225個のトピックをすべて見る