今回はSTYLY for Vision Pro内で録音してそれを再生する方法について紹介します。
マイクを配置
1.Hierarchyにマイク用のCubeを配置します。
2.Cubeに以下のコンポーネントを追加します。
- AudioSource(Add Componentから追加)
- ScriptMachine(Add Componentから追加)

今回使うVisual Scriptingのノードを有効化するためにEdit→Project Settingを開きます。

Visual Scriptingのタグの中のTypeOptionsを開きます。

一番下までスクロールし、+ボタンを押して新しいオプションを追加します。

Microphoneを追加します。

Regenerate Nodesを押し、オプションを再構築します。

録音の準備
1.ScriptMachineで新しいScriptGraphを作成します。
- 例: 「Voice Recorder」
2.ObjectVariableに以下の変数を追加します。
- 名前: AudioSource
- Type: 「AudioSource」型

3.AudioSourceのValueに、HierarchyからCubeをドラッグアンドドロップしてCubeにアタッチされているAudio Sourceのコンポーネントを割り当てます。

4.Cubeに以下のコンポーネントを追加します。
- XR Grab Interactable
- XR Poke Filter
- 「XR Grab Interactable」のInteractable FilterのHoverに設定を追加します。
- 詳細は STYLY for Vision Pro: Poke機能でボタン操作を簡単に実装する方法 を参考にしてください。

ScriptGraphの構築
以下のノードを追加して接続します。
Vision Proのマイクを取得
- GetDevicesとFirstItemを使用してVision Proのマイクを取得します。
- マイク名をStartノードのDevice Nameに代入します。
- Startノードの設定:
- Length Sec: 録音秒数(例: 5秒)
- Frequency: サンプリングレート(例: 44100Hz)

録音条件の設定
- GetPositionノードで音量を取得します。
- 音量が0以下の場合(音が拾えていない場合)は録音をスキップする条件を追加します。

録音中のビジュアル設定
- 新しいMaterialを作成し、Cubeにアタッチします。
- SetColorノードを使用して録音中・再生中の色を設定します。
- 録音中: 赤
- 再生中: 青

録音と再生の実装
以下のノードを追加して接続します。
- Timerノードを使用して録音時間(5秒)を管理します。
- Endノードで録音を停止します。
- Playノードで録音した音声を再生します。

ノード1:一部

ノード2:全体
実行
実際に録音し再生することができました。

音ありはこちらです。