【Unity / PlayMaker】カメラの取得とカメラを使ったインタラクションの実装方法

この記事では、PlayMakerを利用して、メインカメラの動きに応じて、3Dモデルがアクションを引き起こすなどのインタラクションを実装する方法を説明します。

この方法を学ぶことで、以下のようなトリッキーな空間を作ることができます。

カメラ情報を取得して機能を実装する

完成イメージ

事前準備

UnityのプラグインであるPlayMakerをあらかじめインストールしておきましょう。

はじめてPlayMakerを使用するひとは、あらかじめ以下の記事を一読することで、理解を深めることができます。

全体の流れと設計図

【ポイント】
①「Find Game Object」を使用する
②「Find Game Object」内のObject Nameに「[VRTK]_VIVE」を入力し、変数に格納する

PlayMakerには「Find Game Object」というアクションがあります。
このアクションを3Dモデルに搭載し、アクション内のObject Nameという項目内に[VRTK]_VIVEを入力。
得られた情報を変数に格納することで、3Dモデルは常時、メインカメラの情報を取得できます。
3Dモデルがメインカメラの情報を取得した状態で、他のアクションを追加すると、メインカメラの動きに応じたアクションを発生できます。

Find Game Object

Storeに格納する変数は任意で大丈夫です(今回は「MainCamera」を格納しています)。

実際に以下で、情報を取得する手順を説明します。

メインカメラの情報を取得する

最初にカメラとインタラティブな状態にする3Dモデルをつくりましょう。
今回はCubeを使用します。
Hierarcy上でCubeを作りましょう。

Cubeをつくる

PlayMakerを操作するために、PlayMaker Editorのウィンドウを表示させます。
上部メニューバーの「PlayMaker」の中の「PlayMaker Editor」を選択します。

PlayMaker > PlayMaker Editor

PlayMaker Editorを表示させたら、先ほどつくったCubeにFSMを追加します。

Cubeを選択した状態で、PlayMaker Editor上で右クリックし、「Add FSM」を選びます。

Add FSMを選択

すると、Gameウィンドウ上のCubeに「玩」のロゴが表示され、PlayMakerウィンドウには「State 1」が表示されます。

State1が表示される

これでCubeにPlayMakerが適用された状態になります。

次にState1に「Find Game Object」のアクションを追加しましょう。

状態の画面から、右下の「アクションブラウザ」を選択します。

Action Browserを選択

アクションブラウザが表示されます。

Action Browser

アクションブラウザの検索欄で「Find Game Object」と検索すると、「Find Game Object」のアクションが表示されます。
「Find Game Object」を選択したら、右下の「Add Action To State」を選択します。

Find Game Objectを検索

State1に「Find Game Object」のアクションが追加されました。

追加される

これでMain Cameraのゲームオブジェクトを取得することができました。

次に、Find Game Objectの項目のObject Nameに「[VRTK]_VIVE」を入力します。

[VRTK]_VIVE を入力

入力ができたら、Storeの項目に変数を入力します。

今回は「MainCamera」を入力します。
メニューバーの「None」から「New Variable…」に変更し「MainCamera」と入力します。

「MainCamera」と入力

これにより、「MainCamera」という変数に、ゲームオブジェクトの「Main Camera」を格納できました。

以上の手順によって、3Dモデル(今回はCube)にメインカメラの情報が取得される状態にできました。

インタラクションを引き起こすには

この変数「MainCamera」を他のオブジェクト、他のアクションに利用することで、インタラクションを実装できます。

実際にインタラクションを実装している記事を紹介します。

カメラの移動

カメラを自動で動かす

この記事では、カメラを自動で動かす方法について説明しています。

カメラのワープ

ワープ移動完成イメージ

カメラのワープ

この記事では、アクションを発動させることで、カメラがワープする方法について説明してます。

3Dモデルがつねにカメラを向く(Look At)

2D画像がメインカメラの方向を追従している。

Look At

この記事では、3Dモデルがカメラの位置に応じて動き、つねにカメラの方向を向くインタラクションの説明をしてます

実際にこの方法でインタラクションを実装した例が以下のようになります。

カメラ情報を取得して機能を実装する

完成イメージ

カメラの位置に反応して、アクションが発動する

カメラの位置に反応してアクションが発動

この記事では、カメラの位置に反応してアクションが発動する(今回はライトが光る)を解説してます

STYLYへアップロード

STYLYアカウントを作成する

アカウント作成方法

STYLYにアップロードする方法

UnityからSTYLYにprefabをアップロードする方法

さまざまなアクションを試してみて、オリジナリティ溢れる作品を制作してみましょう!