P2.玉転がし
「Unity の玉転がし風ゲーム」あくまで風な、フウ、最終回。長かったなー。(Gate)
クルクルが消えた時、"kuruNokori" から "1" 引こう。初期値 12 だから、12 個消えれば "0" になるよね。で、その「引く」という計算をするためのノードが、ずばり Math ノード。直球過ぎでござい Math(マス)。
Armory 3D Game Engine、そろそろベータ取れてもいいんじゃないのって思うけど、まだかなー。で、前回画面が "ぴたっ" と固まってしまった訳だが、今回それを解決する。一応、色々試してみてやっとこ解決出来た。動くぞ安心すろ。
前回 Set Property したプロパティーを今回は、Get Property して テキスト情報として Canvas(UI )に表示させる。もう書いてしまったが、Set したプロパパティーを Get するのは、Get Property ノードだ。分かりやすい。そして、Canvas にテキストデータを…
Armory のプロパティーは、変数みたいなもんだな。ただ、オブジェクトに変数を持たせる感じだ。(Set Property / On Init / Integer)
Armory で UI を扱うには、専用の Trait を持たせる必要がある。この Trait は今までのようにノードをつないでトントントン、とはしない。ちょっと注意。NodeTree ではなく Canvas というものを使う。で、・・・また面倒なことを覚えないといけないのか・・…
玉がクルクルに重なったらクルクルを消したい。そのために知っておく必要があるノードは、On Volume Trigger と Remove Object と Get Parent だ。
Rotate Object はオブジェクト自身の持つ軸で回転させるものだった。グローバル軸で回したい場合は、オブジェクトに親を付けて、この親を回すことで解決できる。あーなるほどね。(Get Parent)
クルクル回そう。そうしよう。(On Update / Rotate Object)
完全に Blender の範囲だが、整理整頓の意味でやっておこう。エリアの分割・結合と、Outliner(アウトライナー)の Collection(コレクション)に関して。
床と壁に色を付けるのは実に簡単だった。で、玉にも色を付けたいと思うが、一色で塗ってしまうとせっかく回転している玉の、その回転が分かりづらいため面白くない。そこで Material の Base Color にちょっとした模様を加え、玉が回っていることが見て取れ…
Armory というよりは Blender の範囲。色を付けたい場合は Material(マテリアル)を追加し、そこで設定してやる。ただ、Blender のレンダリングと Armory のレンダリングは違うシステムなようで、完全に同じ表現が出来るわけではないらしい。
Box 選択で複数のノードを選択して、いざ動かそうとドラッグすると1個ずつしか移動できない。ノードを置いてみたけど位置を変えたいなーと思った時、これではメンドクサイ。で、ノードを何個かまとめて移動させる方法を書いておく。
玉(Ico Sphere)が見た目ゴツゴツしてるのでパフォーマンスを損ねずに丸く見せる方法を書いておく。(Shade Smooth / Shade Flat)
Logic Node エディタを使ってヴィジュアルスクリプティング。左に動けるようになったので、右・前・後にも動けるようにしよう。
上の画像にもある通り、答えは [Clean] ボタン。動かなかった原因は恐らく Armory のベータ版へ引っ越した時、玉転がしも、プロジェクトフォルダごと持ってきちゃったわけだ。その中にはアルファ版 Armory が勝手に追加したフォルダやら何やらが入ってるわけ…
Armory Engine でのビジュアルスクリプトの最初は、「キー入力 > 力を加える > 玉動く」みたいな流れになるかな。(On Keyboard / Apply Force / Vector)
Armory Engine 06系はまだアルファ版だったが、なんかベータ版が出てたっぽい(いつでたのかは知らんけど)。・・・ Armory_06beta_win64.zip ・・・。で、何が新しくなったのかも、何が修正されたのかも分からないけど、今後はコレを使っていく。
さて、そろそろスクリプトで玉を動かしたくなってきた。Armory で利用できるスクリプトはプログラミング言語である Haxe(ヘクス)と、Node(ノード)と呼ばれるものを利用するヴィジュアルスクリプトだ。で、「玉転がし」ではヴィジュアルスクリプトを使う…
前回は Sphere に Rigid Body を設定し、ゲーム画面の大きさとカメラ位置の修正をやった。今回は [▶ Play] して行こう。ちなみに Sphere の z 位置を 20m の所にした。上の方、空いてるしね。
ステージ上で動かすための「玉」を追加する。そんでこれを、キーボードの矢印キーなんかを押すことで「物理的な力」を与え、コロコロと動かせるようにしたい。だって「玉転がしゲーム」だもんな。まあ、それにはスクリプトを使うんだけど・・・、と、その前…
3D Viewport 内を思い通りにまぁまぁ動けるようになったら、ステージの作成に入ろう。前にも書いたが、Cube オブジェクトをシーンに追加してビヨーンと伸ばして移動させるだけ。
玉が動くステージを作る。Blender が持ってる基本の Cube オブジェクトを5つ、適当に拡大させて配置するだけなんだが、、、
チュートリアル用のゲームを作ってたんだが、なんか意外と簡単に出来てしまった・・・。これも UE4 や Godot の知識がチョコッとあったからなのか? はたまた Armory が優秀なのか? どちらにしても、もう Unity はイランな。Armory バンザイ!