UnityのBolt:コーディングなしでゲームを作るためのアセットのチュートリアルを徹底解析してみた(セットアップからキューブを動かす練習まで)
概要
こんにちは!Qitz平田です。
こちら、今回はBoltというプログラミングのコーディングなしでゲームなどを作っていける仕組みの解説などを行って行きたいと思います!
基本的には、公式チュートリアルに沿って解説を進めていきます。

導入編
まずは、アセットストアからダウンロードを行います。
信頼のUnity公式アセットです。
https://assetstore.unity.com/packages/tools/visual-scripting/bolt-163802?locale=ja-JP
Unityプロジェクト中にダウンロードをしたら、
Assets/InstallBolt/Bolt_1_4_12_NET4.unitypackage
をダブルクリックしてパッケージをさらにインストールします。


Importを選択します。
インポートするとBoltのSetUpWizardが起動します

Nextを選択

表示されるオブジェクトの名前が「一般向きの名前」が良いか「プログラマー向きの名前」が良いか聞かれるので好きな方を選択!
(Qitz平田はプログラマー向きの名前の方が馴染んでいるのでProgramerNamingを選択しました。)
次に、Bolt中で使用するライブラリ・名前空間を聞いてきますので

特に初期の設定で問題ないので一番下までスクロールしてNextを選択します。
また、その次にBolt中で使用するクラスモジュールなどについて聞いてきますのでまた、下までスクロールして「Generate」を選択します。

「Generate」を押下するとBoltのモジュールが生成されます。

最後にCloseを押下して設定完了です!
(Manualなども見れるみたいです。)
グラフウィンドウを表示させる
グラフウィンドウというBoltでゲームを作っていく上で必要なウィンドウを表示します。
Window/Graph
を選択します。

Graphウィンドウが出てきました!

グラフインスペクタを表示させる
Boltのグラフの詳細情報を表示するためのウィンドウを表示します。
Window/GraphInspecter
を選択します。

グラフインスペクタが表示されました!

最後にVariables ウィンドウを表示します!

Window/Variables を選択

VariablesのWindowが表示されました!
こんな感じでBoltの準備がいよいよできましたので次からガンガンチュートリアルに沿ってゲームを作って行きたいと思います!
公式チュートリアルのイントロダクション
では、ここからは公式チュートリアルをざっくりと見て行ってBoltの基本操作を覚えて行こうかなと思います。
Bolt Tutorial – Introduction
ざっくり概要になりますが、Boltを使うとこんなことができるよ!
ということの紹介になっています。

MouseInputとRigidbodyを繋ぐと・・・

クリックするとゲーム中のオブジェクトにAddForceで力が加えられて
オブジェクトが飛びちる!みたいなものを簡単に作れる!みたいな紹介がされています。
Unity公式のBoltチュートリアル
はい!出ました!ここではUnity公式のBoltチュートリアルを見ていきつつ解説を入れて行きたいとおもいます!
こちらがUnityのBolt公式チュートリアルになります。
https://learn.unity.com/tutorial/bolt-videos-archived#5ee0b1feedbc2a002072770c
今回はこちらの一番最初のチュートリアル!
Introduction to Bolt | Beginners
を解説していこうと思います!

このイントロダクションをクリアすると!なんとサッカーゲームが作れちゃいます!

プレイヤー達がボールを奪いあうサッカーゲームです!
では、早速作り方を見ていきます!
まずは、背景の色を変えます!
背景の色!だいじですよねー今回は、青空っぽい色に変えます。

Scene中のMainCameraを選択し、BackGroundをSkyboxからSolidColorに変更します!
次に色を選択して青空っぽい色に変えます。

次にHierarchyで右クリックして出てくるCreateメニューから3DObject/Cube
を選択し、画面中に四角のゲームオブジェクトを生成します。

↓

画面中にCubeができました!
次にまた、Hierarchyを右クリックして
3DObject/Plane
を選択し、ゲーム画面中に平面を生成します。


ゲーム中にPlaneが生成されました!
次にカメラの位置を調整してちょうど良い感じにオブジェクトが映り込むようにします。

MainCameraのYの値に3を入れて少し高い位置に持ってきました。
次にCubeがPlane中にめり込んでいるので少し高い場所に持っていきます。

Yに0.5を入れて少し浮かせました。
次にPlaneが真っ白いままだと味気ないので色を付けます。
色はMaterialという材質を設定するためのオブジェクトを作り
その作成したMaterialをPlaneに適用することで色をPlaneに付けることができます!

ProjectウィンドウのAssetsを選択して右クリック
CreateメニューからMaterialを選択します。

今回はFloorという名前を付けました。

Materialを選択しInspector中でAlbedoをクリック
カラーピッカー中で好きな色を選択します。(今回はライトブラウンにしました)
次に作成したMaterialをゲームシーン上のPlaneにドラッグアンドドロップします!

あとは、Planeが現在は狭いのでInspectoreでXとZの値を操作して広げたりします。

PlaneのXとZの値を3にして面積を広げました!
ここまでで、一旦Boltの練習用の配置が一通りできました!
(練習)Boltのマクロを作成してCubeを動かしてみる
ここまでで、一通り動かすためのゲームオブジェクトが配置できたのでいよいよBoltを使ってまずは、練習をしていきたいと思います!
CubeにFlowMachineを設定する
Hierarchy上でCubeを選択しInspectorからAddComponentを行いFlowMachineを選択します。

↓FlowMachineがCubeにアタッチされました

次にFlowMachineのMacroの部分からNewボタンを押下します。

FlipCubeと入力しSaveボタンを押下します

すると、FlipCubeのMacroがProject中に生成されてFlowGraphウィンドウにも「Start」や「Update」といったノードが表示されました。

この緑色の「Start」と「Update」について
Startは、ゲーム開始時に1回、Updateはゲーム中に1フレームごとに毎回呼ばれる処理になります。
取り急ぎ、詳しくはチュートリアルを進めながら説明していきます!
サンプル:ゲーム開始時に1回だけCubeに力を加える!
こちらは、ゲーム開始時に1回だけ「AddForce」(力を加える)処理です。

FlowGraphウィンドウ中で右クリック -> 検索欄にAddForceと入力するとRigitBody系の処理がたくさん出てくるのでこの中のRigitbody AddForceを選択します。

RigidbodyのAddForceのUnitがFlowGraohウィンドウ中に作成されました。
次にStartからRigidBodyのUnitのInputのところまで、矢印をつなげます。

つなげると、AddForceのUnitの表示が黄色くなります。

これは、今つけているCube中にRigidBodyがアタッチされていないためです。
(AddForceするにはRigidBodyというコンポーネントがアタッチされている必要があったりします。)

CubeをHierarchy中で選択しAddComponentからRigidbodyを選択します(Rigidbody2Dではないので注意!)

RigidbodyがアタッチされるとUnitの表示がグレー色になります。
次にAddForceのUnitのforceを0,8,0に
modeをimpulse(衝撃モード)に変えます。

それでは、ゲームを再生してどんな風に動くか試してみます!

はい!この通り、ゲーム開始時に1回だけAddForceが0,8,0の方向にImpulseモードで加えられました!Cubeが跳ねてますね!
ここでは、AddForceのUnit中で 0,8,0の値を加えていますが、
外部から値を取り込むこともできます!
試しにForceの横のマルポチからコネクタを外に向かって出してみます。

こんな感じに外部からVector3の値で0,8,0を指定してやることもできます!

次に今度は、AddForce(力を加える)だけでなくAddTorque(回転力を加える)も追加してみます。
FlowGraphウィンドウ中の何もないところで右クリックし
AddUnitを選択、AddTorqueと入力して出てきた候補から
AddTorque(x,y,z,mode)を選択します。


AddTorqueのUnitが作成されました。
次にAddForceのUnitのoutputからAddTorqueのInputに矢印をつなげます。

modeをImpulsに

また、yのInputのマルポチから矢印を伸ばして
floatの値を「8」で入れてやります。

この状態でゲームを再生してみると・・・・

はい!Cubeが回転しながら飛び跳ねてくれました!
練習:今度はUpdateでCubeを動かしてみる
今度は、updateでCubeを動かしてみます。
一旦、説明のために「Start」実行している処理群を消したいと思います。

左クリックアンドドラッグで範囲選択できます。
選択したら、右クリックコンテクストメニューからDeleteSectionsを選択すると、Unit達が消えます。

次にまた、FlowGraphの空いているところで右クリックしてAddUnitを選択、
Rigidbody.AddForce(x,y,z,mode)を選択します。

そしたら、「Update」からAddForceのInputまで矢印をつなげて
yの値を40に、modeはForceに設定します!
これを再生してみると・・・・!

はい!Updateで毎フレームごとに力が加えられてCubeが上昇していくようになりました!
一旦まとめ
はい!ここまでがBoltのセットアップと基本的な使い方になります!
次回は、いよいよもっとUnitをたくさん組み合わせてサッカーボールゲームを本格的に作っていく部分の解説を進めていきますよー!
お楽しみに!
ここまでのサンプルデータ
ここまで作ったBoltチュートリアルのサンプルデータです。(Bolt本体は含んでいません)確認などによしなにどうぞ!
https://drive.google.com/file/d/1QgftR8DM5PrIGS35vJXIuwyhcGBNXpvZ/view?usp=sharing