STYLY Magazineにて掲載しているPlayMaker関連の記事をまとめています。
PlayMakerで実現可能なアイデアを用途別にまとめているので、初心者でも作りたいものが見つけやすいようになっています。
PlayMakerとは?
PlayMakerはUnity用のビジュアルスクリプティングツールです。
コードを書かずに様々なロジックを組み立てることができ、プログラムの知識がなくても様々なギミックを作ることができます。
(例:カメラの移動、触るとインタラクションが発生するオブジェクトの作成、プレイヤーを移動させるボタン)
PlayMakerはUnity Asset Storeで販売される有料アセットで、価格は$65 です。
セール時には大きく価格が下がるので、そのタイミングで購入するのも良いでしょう。
STYLYとPlayMakerの連携
STYLYはPlayMakerを利用して作成したオブジェクトのインポートに対応しています。
これにより、STYLY上で簡単なゲームすら作成可能です。
現在STYLYはUnityの基本機能とPlayMakerの基本アクションの(ほぼ)全てに対応しており、これらを組み合わせてシーンを作成することができます。
PlayMakerを使って作れるSTYLYシーンの例
代表的な例は以下のようなものです。
体験者を移動させる
PlayMaker のインストール方法
PlayMakerはUnity Asset Storeで販売されている有料ツールです。
PlayMakerの購入方法とインストール方法は、以下の記事で詳しく紹介しています。
PlayMaker リファレンス
PlayMakerを使って、STYLYでできること
ここではSTYLY Magazineに掲載されている記事を元に、PlayMakerで実現可能なアイデアを一覧にしました。
種類 | 実現可能なアイデア、要望 | 記事URL |
体験者の視点位置(カメラ) | 体験者が特定のエリアに来たことを判定したい | PlayMakerを使って近づくと点灯するライトを作る |
体験者をスムーズ移動させたい | Unity上でカメラが移動するアニメーションをPlayMakerで実装する | |
体験者をワープ移動させたい | STYLY Editorで使用できるワープシステムの作り方 | |
コントローラー | コントローラーにアクセスしたい | この記事内 |
コントローラーのボタンの押し込みを検出したい | Unityでライトを使って懐中電灯を作る | |
コントローラーがオブジェクトに衝突した際に何か起こしたい |
||
コントローラーがオブジェクトに触れた際に何か起こしたい |
||
手(コントローラー位置)に物を持たせたい | Unityでライトを使って懐中電灯を作る | |
Raycastで離れたオブジェクトにアクセスさせたい | ||
Post-Processing (カメラフィルタのようなもの) |
Post-Processingを設定したい | STYLYでPost-Processing Stackを使う |
その他 | オブジェクトをランダムな位置に出現させたい | Unity+PlayMakerでスーパーボールを大量に発生させる |
スローモーションのシーンを作りたい | UnityのPlayMakerでスローモーションのシーンを作る方法_vol.2 |
体験者の視点位置(カメラ)
体験者の位置(視点の位置)は主にSTYLY上に存在するカメラと紐付いています。STYLY Studioではカメラの初期位置は「Start Position」として表示されますね。
このカメラに相当するオブジェクトをPlayMakerで取得したり、設定したりすることで色んなことが実現可能です。
体験者が特定のエリアに来た際のインタラクション
「Get Distance」というアクションを利用すると、二つのオブジェクトの間の距離を取得することができます。このアクションを使用し、カメラと特定のオブジェクトとの距離を取得することで、インタラクションを作成することができます。たとえば、「自動ドア」「センサーライト」「近づくと飛んでいく鳥」などの作成に役立ちます。
詳しい使い方はこちらの記事で紹介しています。
スムーズ移動
PlayMakerとiTweenという無料アセットを組み合わせると、カメラの動きを簡単にコントロールすることができます。A点とB点を決め、その間をどんな速さで動かすか決める、というイメージです。
カメラを移動させる方法についてはこちらの記事で詳しく紹介しています。
ワープ移動
PlayMakerを使うと、特定の位置に一瞬でワープするアセットを作成することもできます。ワープする元の位置とワープ先をSTYLY Editor内で自由に決めることができるように作成することもできます。
体験者をワープさせる方法はこちらの記事で詳しく紹介しています。
→2020.1.6現在、こちらの記事内容では不具合あり、動作しません。記事アップデート予定です。
コントローラー
コントローラーへのアクセス
コントローラーにアクセスするには、下記表で示すとおり「Find Game Object」でコントローラーに相当するオブジェクトを取得し、変数に保存する必要があります。
これを他のアクションで使い回すことでコントローラーを使ったインタラクションを実現可能です。
アクセス先 | アクセス方法 |
右コントローラーにアクセス | 「Find Game Object」でObject Nameに「Controller (right)」と入力し、変数として保存 |
左コントローラーにアクセス | 「Find Game Object」でObject Nameに「Controller (left)」と入力し、変数として保存 |
コントローラーのボタンの押し込みを検出する
以下のグローバルイベントを使用することにより、コントローラーのボタン操作を検出することができるようになります。
PlayMaker EditorのEventsリストにてこれらの名前のイベントを作成し、遷移の中に配置することで機能します。イベント名が一字でも違うと正しく動作しないので注意しましょう。
コントローラーの操作 | 左コントローラー | 右コントローラー |
トリガーを引く | Global_TriggerPressDown_L | Global_TriggerPressDown_R |
トリガーを離す | Global_TriggerPressUp_L | Global_TriggerPressUp_R |
コントローラーのボタンの検出は、こちらの記事で紹介しています。
手に物を持たせる
体験者の手に物を持たせる方法をマスターすれば、懐中電灯や銃など様々なアイテムを作品に組み込むことができるようになります。個性的な作品を作成する際に有効です。
体験者の手に物を持たせる方法はこちらの記事で紹介しています。
Raycastで離れたオブジェクトにアクセスする
Raycastというアクションを使うことで、「遠くのオブジェクトを選択する」ギミックを作成することができます。応用次第で様々な物を制作できるアクションです。
Raycastを使用して離れたオブジェクトを引き寄せるギミックの作り方はこちらの記事で解説しています。
その他
オブジェクトをランダムな位置に出現させる
ランダムな位置にオブジェクトを発生させる仕組みは、様々なシーンの作成において役に立ちます。たとえば、上記画像のようにスーパーボールが飛び散るシーンであったり、ランダムな位置から敵が迫ってくるゲームの作成などに役立ちます。
ランダムな位置にオブジェクトを発生させる方法は、こちらの記事で紹介しています。
スローモーションのシーンを作る
Scale Timeというアクションを使うことで、シーン内の時間の進み方を速くしたり遅くしたり、自由にコントロールすることができます。演出に使ったり、インタラクティブなコンテンツの作成に役立つでしょう。
Scale Timeの使い方はこちらの記事で紹介しています。
Post-Processingの設定
STYLYでは、Filter機能により画面の雰囲気を変えることができます。しかし、こだわり始めると自分でPost-Processingの設定を細かく調整したい場合も出てくると思います。自作のPostProcessing Profileを使用したい場合はPlayMakerを使えば可能です。
自作のPostProcessing Profileを使用する方法はこちらの記事で詳しく紹介しています。
ゲームのような複雑なシーンの作成
STYLY Magazineでは、PlayMakerを使用してゲームのような複雑なシーンを作成する方法も紹介しています。
コントローラーからオブジェクトを投げる
STYLYでアーチェリーを体験
STYLYでシューティングゲームを作る
STYLYで無双ゲームを作る
STYLYへのアップロード
PlayMakerを利用して作成したオブジェクトは、アップロードしてSTYLYで使用できます。
UnityからSTYLYにアセットをアップロードする方法は以下の記事で詳しく紹介しています。
まとめ
いかがだったでしょうか。
PlayMakerを使用するとSTYLYでのVR体験をより変化に富んだものにすることができます。
ぜひこの記事を参考に、インタラクションを組み込んだVR作品を作ってみてください。