UnityのBoltでなにか作ってみる(3)玉転がしチュートリアル・オブジェクトの追加編

こんにちは。スタジオ長介です。

UnityのBoltを使っての『玉転がしチュートリアル』をスキマ時間に進めています。今回は、「オブジェクトの追加」をやっていきます。

https://cri-synapse.com/notes-20200814/
https://cri-synapse.com/notes-20200821/

BoltはUnityで使えるビジュアルスクリプティングツールです。UE4の「ブループリント」のようなものですね。以前は、UnityのAssetStoreで有料アセットとして販売されていましたが、Unityが製品を買収し、7月22日に無償化が発表されました。

・Unity入門チュートリアル 「玉転がし」(Roll-a-Ball) ビジュアルスクリプティング版

前回はキャラクターの動きを追跡するタイプのカメラを設定しました。

今回はよりゲームらしい「遊び」を実現するために、プレイヤーである玉に接触すると消えるアイテムを設置していきます。

「Item」オブジェクトをプレハブ化して、それをシーンの方にバラバラに配置していきます。

PlayerとItemの接触判定を作るために、ItemオブジェクトにFlow Maschine(Bolt)を追加します。今回は、接触したときに物理的な反動は必要ないので、スルッと抜けられるように接触の判定をみるためだけの「OnTriggerEnter」ユニットを使用するそうです。

Playerとの接触判定は特定のタグだけに処理を通すようにするために、Component.CompareTagユニットを使うそうです。

Playerタグを検索するので、ユニットの値に「Player」と入力します。タグ検索の結果を受けて、処理を分岐させるためのBranchユニットを追加して線で結んだものが下の図となります。

次にヒエラルキービューのPlayerのタグを変更します。長年Unityを使った開発をしてきましたが、プランナーがこのタグの部分を設定することはまずないので、なんだか新鮮です。

接触したアイテムは画面から消えてほしいので、オブジェクトを削除する処理を追加していきます。プログラムに疎いので常識的なことかもしれませんが、削除する対象を指定するためにselfユニットを設定するたびに、頭の中で『俺やで〜』という謎の声が聞こえます。

最後に、今のままだとFlow Maschineを追加したItemオブジェクトしか接触しても削除されませんので、他のオブジェクトにも同じ処理が通るようにします。ここからはUnityの作法というか、よくある対応となります。

ItemのインスペクタービューでOverridesボタンを押したあとに、Apply Allを押します。(このとき、心の中で「アプライっ!」と叫びます)

そして、完成したのが下の動画となります。

▼プレイヤーがアイテムに接触すると削除されるように

Itemオブジェクトが小さくてテストプレイに四苦八苦しましたが、処理自体は問題なく実装できていました。

使ったユニットはたったの5つだけ。コードで書いてもあっさり終わるのかもしれませんが、この手軽さは素晴らしいですね。