俺に解るように説明する "Armory Engine" 入門+

ゲームエンジン Armory Engine (Armory3D) の使い方を手探りで学んで入門しようって感じかな。

P5.エアホッケー.04「パックは1個だけ~」

1個だけ出すようにするのは簡単。スポーンした時にフラグを立ててやって、そのフラグが立ってる時はもうスポーンさせないようにすればいいダケ。で、自陣、又は敵陣にゴールした時にこのフラグを引っ込めてやればまた出るようになるって作戦だ。

P5.エアホッケー.03「パック スポーン(Blender 2.80 新規シーン作成)」

スペースキーを押したら、中央にパックが出るようにする。やり方としては、もっと簡単な方法があるけど、あえてパックをスポーンさせる方法でやる。Armory にあるスポーン用のノードは2種類。Spawn ObjectとSpawn Scene。

P5.エアホッケー.02「動くパックの登場?」

壁の所に来たら跳ね返るような感じに動くパックを登場させる。物理でやるならApply Impulseや、Apply Forceだが今回は使わない。普通にオブジェクトを動かす場合はTranslate ObjectとTimeノードの合わせ技を使う。普通は、こっちの方を先に覚えるかな。

P5.エアホッケー.01「ステージ作成(Blender 2.80 Outliner 矢印/目玉/カメラ)」

ステージと言うか、エアホッケーの台(テーブル)を作る。これは Cube オブジェクトを適当に追加して、適当に移動させて、適当に拡大すればいいだけなので、何の問題もないと思う。ただ、今回のゲーム作成はちょっとメンドクサイ。何故なら、、、

P5.エアホッケー.00「イントロ」

第2弾のゲームを作ってたんだが、なんか意外と時間がかかってしまったわい。まぁえーわ。今度のゲームは「エアホッケー」。UE4 で作り方の解説を途中放棄したやつの Armory Engine 版だ。(クソゲーなのは一緒。) で、解説は「玉転がし」で使わなかったノー…

Armory 0.6 is out !?

フォーラムではリリースの発表をしてないけど、DOWNLOAD から行くとあるんだよなー、"Armory_06_win64.zip"。ベータ取れとるね。もちろん今後はこれを使う。

P2.玉転がし.23「最終回 YOU WIN」

「Unity の玉転がし風ゲーム」あくまで風な、フウ、最終回。長かったなー。(Gate)

P2.玉転がし.22「得点カウンター」

クルクルが消えた時、"kuruNokori" から "1" 引こう。初期値 12 だから、12 個消えれば "0" になるよね。で、その「引く」という計算をするためのノードが、ずばり Math ノード。直球過ぎでござい Math(マス)。

P2.玉転がし.21「Trait は "オブジェクト" と "シーン" に」

Armory 3D Game Engine、そろそろベータ取れてもいいんじゃないのって思うけど、まだかなー。で、前回画面が "ぴたっ" と固まってしまった訳だが、今回それを解決する。一応、色々試してみてやっとこ解決出来た。動くぞ安心すろ。

P2.玉転がし.20「Canvas の Text にアクセスするぞー!」

前回 Set Property したプロパティーを今回は、Get Property して テキスト情報として Canvas(UI )に表示させる。もう書いてしまったが、Set したプロパパティーを Get するのは、Get Property ノードだ。分かりやすい。そして、Canvas にテキストデータを…

P2.玉転がし.19「Armory のプロパティーと Blender のプロパティーは違うぞー」

Armory のプロパティーは、変数みたいなもんだな。ただ、オブジェクトに変数を持たせる感じだ。(Set Property / On Init / Integer)

P2.玉転がし.18「UI で "Hello World"」

Armory で UI を扱うには、専用の Trait を持たせる必要がある。この Trait は今までのようにノードをつないでトントントン、とはしない。ちょっと注意。NodeTree ではなく Canvas というものを使う。で、・・・また面倒なことを覚えないといけないのか・・…

P2.玉転がし.17「親を消せ! それだけだ!」

玉がクルクルに重なったらクルクルを消したい。そのために知っておく必要があるノードは、On Volume Trigger と Remove Object と Get Parent だ。

P2.玉転がし.16「親でクルクル(Blender 2.80 親子関係)」

Rotate Object はオブジェクト自身の持つ軸で回転させるものだった。グローバル軸で回したい場合は、オブジェクトに親を付けて、この親を回すことで解決できる。あーなるほどね。(Get Parent)

P2.玉転がし.15「クルクル」

クルクル回そう。そうしよう。(On Update / Rotate Object)

P2.玉転がし.14「ちょっと整理(Blender 2.80 コレクション/エリア分割)」

完全に Blender の範囲だが、整理整頓の意味でやっておこう。エリアの分割・結合と、Outliner(アウトライナー)の Collection(コレクション)に関して。

衝撃 2!!

こんなことになってるのに、「韓国海軍艦艇による火器管制レーダー照射事案について」(ココ)での「今後の対応」が、信じられない。

P2.玉転がし.13「Texture Paint で塗りぬりしてみよう(Blender 2.80 テクスチャーペイント)」

床と壁に色を付けるのは実に簡単だった。で、玉にも色を付けたいと思うが、一色で塗ってしまうとせっかく回転している玉の、その回転が分かりづらいため面白くない。そこで Material の Base Color にちょっとした模様を加え、玉が回っていることが見て取れ…

P2.玉転がし.12「色はマテリアルで(Blender 2.80 マテリアル)」

Armory というよりは Blender の範囲。色を付けたい場合は Material(マテリアル)を追加し、そこで設定してやる。ただ、Blender のレンダリングと Armory のレンダリングは違うシステムなようで、完全に同じ表現が出来るわけではないらしい。

P2.玉転がし.11「ノードをまとめて動かす(Blender 2.80 全選択/全解除)」

Box 選択で複数のノードを選択して、いざ動かそうとドラッグすると1個ずつしか移動できない。ノードを置いてみたけど位置を変えたいなーと思った時、これではメンドクサイ。で、ノードを何個かまとめて移動させる方法を書いておく。

P2.玉転がし.10「玉をま~るく見せる(Blender 2.80 スムーズ/サブディビジョン/コリジョン)」

玉(Ico Sphere)が見た目ゴツゴツしてるのでパフォーマンスを損ねずに丸く見せる方法を書いておく。(Shade Smooth / Shade Flat)

P2.玉転がし.09「Visual scripting、方眼紙に定規で書く感じ(Blender 2.80 ツール)」

Logic Node エディタを使ってヴィジュアルスクリプティング。左に動けるようになったので、右・前・後にも動けるようにしよう。

参考になりそうなサイト.04「Node と Haxe 関連 2+2」

Armory Engine は結局 Blender (2.80) のアドオンなんだから、Armory 特有な部分といったら、Node じゃろ? Logic Node じゃろ? ここが一番重要って事じゃろが!? というわけで、Node の使い方に関してマーマー詳しく解説している(と思われる)サイトを紹…

P2.玉転がし.08「[Clean] ボタンですっきりしよう」

上の画像にもある通り、答えは [Clean] ボタン。動かなかった原因は恐らく Armory のベータ版へ引っ越した時、玉転がしも、プロジェクトフォルダごと持ってきちゃったわけだ。その中にはアルファ版 Armory が勝手に追加したフォルダやら何やらが入ってるわけ…

P2.玉転がし.07「ビジュアルスクリプト キー入力+力を加える 」

Armory Engine でのビジュアルスクリプトの最初は、「キー入力 > 力を加える > 玉動く」みたいな流れになるかな。(On Keyboard / Apply Force / Vector)

P2.玉転がし.06「Armory 06 beta 出た。ベータ出たー! ので引っ越し」

Armory Engine 06系はまだアルファ版だったが、なんかベータ版が出てたっぽい(いつでたのかは知らんけど)。・・・ Armory_06beta_win64.zip ・・・。で、何が新しくなったのかも、何が修正されたのかも分からないけど、今後はコレを使っていく。

P2.玉転がし.05「ヴィジュアルスクリプト準備編(Blender 2.80 エディタ/エリア)」

さて、そろそろスクリプトで玉を動かしたくなってきた。Armory で利用できるスクリプトはプログラミング言語である Haxe(ヘクス)と、Node(ノード)と呼ばれるものを利用するヴィジュアルスクリプトだ。で、「玉転がし」ではヴィジュアルスクリプトを使う…

P2.玉転がし.04「ああぁあぁぁーーーっていうやつ(Blender 2.80 リジッドボディー/ライト)」

前回は Sphere に Rigid Body を設定し、ゲーム画面の大きさとカメラ位置の修正をやった。今回は [▶ Play] して行こう。ちなみに Sphere の z 位置を 20m の所にした。上の方、空いてるしね。

P2.玉転がし.03「玉ちゃんに重力を感じてもらおう(Blender 2.80 物理/カメラ)」

ステージ上で動かすための「玉」を追加する。そんでこれを、キーボードの矢印キーなんかを押すことで「物理的な力」を与え、コロコロと動かせるようにしたい。だって「玉転がしゲーム」だもんな。まあ、それにはスクリプトを使うんだけど・・・、と、その前…

P2.玉転がし.02「ステージの作成(Blender 2.80 移動/拡大/複製)」

3D Viewport 内を思い通りにまぁまぁ動けるようになったら、ステージの作成に入ろう。前にも書いたが、Cube オブジェクトをシーンに追加してビヨーンと伸ばして移動させるだけ。