STYLY for Vision Pro:マイクで録音&再生する方法、Unity Visual Scriptingで簡単実装

今回はSTYLY for Vision Pro内で録音してそれを再生する方法について紹介します。

マイクを配置

1.Hierarchyにマイク用のCubeを配置します。

2.Cubeに以下のコンポーネントを追加します。

  • AudioSource(Add Componentから追加)
  • ScriptMachine(Add Componentから追加)
Image5

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

Image6

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

Image2

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

Image14

Microphoneを追加します。

Image8

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

Image7

録音の準備

1.ScriptMachineで新しいScriptGraphを作成します。

  • 例: 「Voice Recorder」

2.ObjectVariableに以下の変数を追加します。

  • 名前: AudioSource
  • Type: 「AudioSource」型
Image3

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

Image1

4.Cubeに以下のコンポーネントを追加します。

  • XR Grab Interactable
  • XR Poke Filter
  • 「XR Grab Interactable」のInteractable FilterのHoverに設定を追加します。
    • 詳細は STYLY for Vision Pro: Poke機能でボタン操作を簡単に実装する方法 を参考にしてください。
Image4

ScriptGraphの構築

以下のノードを追加して接続します。

Vision Proのマイクを取得

  1. GetDevicesFirstItemを使用してVision Proのマイクを取得します。
  2. マイク名をStartノードのDevice Nameに代入します。
  3. Startノードの設定:
    • Length Sec: 録音秒数(例: 5秒)
    • Frequency: サンプリングレート(例: 44100Hz)
Image15

録音条件の設定

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

録音中のビジュアル設定

  1. 新しいMaterialを作成し、Cubeにアタッチします。
  2. SetColorノードを使用して録音中・再生中の色を設定します。
    • 録音中: 赤
    • 再生中: 青
Image12

録音と再生の実装

以下のノードを追加して接続します。

  1. Timerノードを使用して録音時間(5秒)を管理します。
  2. Endノードで録音を停止します。
  3. Playノードで録音した音声を再生します。
Image9

ノード1:一部


Image11

ノード2:全体


実行

実際に録音し再生することができました。

音ありはこちらです。

https://youtu.be/-TdT8xdYyP0