Unity Visual Scripting 入門第10回:STYLY For Vision Proとの連携

この記事はVisual Scripting 入門の第10回です。

本記事ではVisual ScriptingとSTYLY For Vision Proの連携方法を解説します。

STYLY for Vision Proで使える機能がまとめられたサンプルシーンがあるのでダウンロードしてください。

Unityのバージョンは2022.3.27fです。

今回はオブジェクトをつかみ、そのオブジェクトに何か作用させる方法を紹介します。

Visual Scriptingで物をつかむ

ダウンロードしたProjectをUnity Hubで開きます。

Addボタンをおします。

ダウンロードしたProjectをUnity Hubで開く

ダウンロードしたProjectをUnity Hubで開く

ダウンロードしたフォルダを選択してOpenを押して、プロジェクトを開きます。

プロジェクトを開く

プロジェクトを開く

Projectの下の+ボタンを押してSceneボタンを押し、新しいシーンを作ります。

新しいシーンを作る

新しいシーンを作る

今回は[GrabScene]という名前でシーンを作成します。

GrabScene

GrabScene

つかむオブジェクトを作ります。Hierarchyの+ボタンを押し、3DObject→Cubeを選択し生成します。

3DObject→Cubeを選択し生成

3DObject→Cubeを選択し生成

名前を[GrabCube]とし、XR Grab Interactable を追加します。

XR Grab Interactable を追加

XR Grab Interactable を追加

XR Grab InteractableとはXR空間内でつかむことを可能にするコンポーネントです。

このC#のコードはSTYLY For Vision Proに組みこまれているため使うことができます。

Visual Scriptingで掴んだ物の色を変える

XR Grab Interactableには様々な機能があります。

詳しい機能を知りたい場合はUnityのマニュアルをご覧ください。

XR Grab InteractableのInteracrable Eventを開きます。

XR Grab Interactableのくnteracrable Eventを開く

XR Grab Interactableのくnteracrable Eventを開く

SelectとSelect Exitedの+ボタンを押し、以下のようにドラッグ&ドロップで追加します。

ドラッグ&ドロップで追加

ドラッグ&ドロップで追加

No Functionを押して、Script Machine→TriggerUnityEventを押します。

Script Machine→TriggerUnityEvent

Script Machine→TriggerUnityEvent

以下のようにSelectには[StartGrab]と入力します。

StartGrab

StartGrab

SelectExitにはExitGrabを入力します。

Selectはつかんだ時に処理をします。

Select Exitedは放した時に処理をします。

[GrabCube]にScript Machineをアタッチします。

SourceをEmbedに変更します。

SourceをEmbedに変更

SourceをEmbedに変更

Edit Graphを押して、Script Graphを表示します。

以下のノードをGraph Editorに追加します。

 

  • UnityEvent
  • Renderer Get Material
  • Color Literal
  • Set Color

※ノードの画像はわかりにくいもののみ載せています。

Renderer Get Material

Renderer Get Material


Set Color

Set Color

以下のようにノードを接続します。

UnityEventにはXR Grab InteractableのSelectで設定した

[StartSelect]を入力します。Colorにはつかんだ時の色を設定します。今回は赤色にしました。

StartSelect

StartSelect

接続したノードをすべて選択し、Ctrl+D(cmd+D)で複製します。

同様にUnityEventに[ExitSelect]を入力し、Colorには放したときの色を設定します。

今回は白色にしました。

色を設定

色を設定

STYLY For Vision Proにアップロードする

UnityでのTransformの単位はメートルなので、現在のままだと[GrabCube]は少し大きすぎるので一辺30センチのCubeにします。

一辺30センチのCubeにする

一辺30センチのCubeにする

[GrabCube]にはRigidBodyがアタッチされているので重力が働き、そのままだと下に落下していきます。落

下しないよう、置く台座を配置します。

Cubeをシーン上に生成し、[GrabCube]の下になるように移動させます。大きさは変更しません。

台座を配置

台座を配置

複数のオブジェクトをアップロードする時は一つにまとめPrefab化します。

Create Emptyで空のGameObjectを作成し、[GrabPrefab]に名前を変更します。

その配下に[GrabCube]と台座を移動させます。

Prefab

Prefab

[GrabPrefab]をProject内にドラッグ&ドロップすると、アイコンが青くなり、Prefab化します。

GrabPrefabをProject内にドラッグ&ドロップ

GrabPrefabをProject内にドラッグ&ドロップ

Prefab化した[GrabPrefab]の上で右クリックをしてSTYLY→Build prefabを押します。

STYLY→Build prefab

STYLY→Build prefab

自動的にブラウザが開きます。

アカウントを作りログインすると以下のような画面が開くので、[+New content]を押します。

+New content

+New content

タイトルを決めます。今回は[GrabColor]としました。

次にプロジェクトフォルダの中にある[_Output]フォルダの中にある生成したフォルダをドラッグ&ドロップでSelect fileに追加し、Uploadを押せば完了です。

ほかの項目はデフォルトのままです。

Upload

Upload

今回はSTYLY For Vision Proとの連携について紹介しました。