UnityのBoltでなにか作ってみる(2)玉転がしチュートリアル・カメラ編

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

夏期休暇中に着手したUnityのBoltTを使っての『玉転がしチュートリアル』をスキマ時間に進めています。今回は、「カメラの設定」をやっていきます。

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

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

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

前回はキャラクターに『物理演算機能』を追加するところまでやりました。

玉転がしチュートリアルでは、カメラはTPS的な見た目を目標としているので、プレイヤーが画面に映り込む必要があります。また、プレイヤーのXYZ軸への動きには対応させますが、回転に追随させると画面も一緒に回ってしまうので、回転の動きには追随させないようにします。
 

▼Main CameraをただPlayerの子オブジェクトにした場合の見た目


UnityはHierarchy上でオブジェクトの親子関係を簡単に設定することができますが、そのやり方だと、プレイヤーの回転にカメラが付いてきてしまうので、今回は『プレイヤーを追跡する』処理をBoltに書くことで、その問題を解決するようです。

まずは準備。Hierarchy上で「Main Camera」を選択して、Boltで作業できるように Inspector に「Flow Machine」を追加します。また、追従するターゲットを「プレイヤー」としたいので、Variablesに「Target」を追加して、参照先を「Player」に設定します。

Player の位置を参照してそれを「Main Camera」にセットします。

グラフにするとこんな感じ。

次にTPS的な見た目にしたいので、Main Cameraの方にオフセット値を足してやります。オフセット値を取得するのは1回でいいので、「Stat Event」ユニットを使います。

グラフにするとこんな感じ。

グラフだと、変数に何が格納されているのかが視覚的に理解できるのでいいですね。

これでオフセット値が取得できるようになりましたので、こちらをUpdate Eventにも利用します。

これでカメラの設定は終わりです。

Player の位置を取得して、それにオフセット値を毎フレーム足してやれば、意図するカメラが設定できることは理解できるのですが、それをスクリプトで書こうとすると文法やらなにやらで途端にハードルが上がります。

これをBoltを使ってノード形式で整えると、処理の順番や必要な要素が視覚的に理解できるので、プランナーの自分でもプログラムの内容がすっと入ってきて気持ちがいいです。

▼Player の位置を追跡するようになった見た目

次回は「アイテムの設定」を行っていきます!