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

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

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

f:id:ore2wakaru:20190209223715p:plain

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

Set Property

本当なら、ゲーム開始直後にクルクルが表示されている数を機械的に数えて、その数をどっかに保管するのがイイと思うんだけど、ちょっとめんどくさいので、12個表示されていることを前提に、12という整数値を持たせるようにする。

新しくオブジェクトを作ってもいいが、前回作った UI 用のオブジェクト Cube 君にこの整数値(12)を持ってもらおうと思う。そこで登場するのが、Set Property というノード(なぜか Action カテゴリ)。このノードはオブジェクトに何らかのデータの保管をお願いする物だ。

先ずはプロパティー(Set Property のプロパティーのことね)をセットするための NodeTree を追加し、スクリプトしていく。NodeTree の追加の仕方はもう大丈夫だろうか? これで3つ目だな。

f:id:ore2wakaru:20190208215346p:plain

 追加ボタンで NodeTree の新規追加。   適当に名前を付ける。

 本題の Set Property ノードをだす。(Action カテから探すか、サーチで)左側にピンが4つあるので、簡単に説明しておく。

❸-1 in ピン: このピンがあるってことは、どこかの out ピンからの実行線に繋がっていないと、このノードは処理されないってことだ。

❸-2 オブジェクトピン: 特定のオブジェクトを指定したい場合はこのピンにつなぐ。前やったのは、自身の親オブジェクトを指定するノードを繋げたよね。もちろん、何も無し、つまり空欄にしておく事でスクリプトが付いているオブジェクトの事になる。

❸-3 Property ピン: ここにもどこかからデータを持ってこれるが、今回はここの箱の中に書き込むことでデータをセットする。画像は "kuruNokori" というプロパティー名を設定したもの。名前は何でもイイ。クルクルの残りの数って意味ね、kuruNokori。

❸-4 Value ピン: ❸-3 で設定したプロパティーに数値(Value)を割り当てる。

 On Init ノード: これは、ゲーム開始の最初の1フレームの時点で呼び出されるんだとおもう。思う? 又は、その前かも。たぶん。まー、一番最初って事だ。Event カテにある。On Update が毎フレーム呼び出されるのに対し、On Init は最初に1回だけ。これは、基本セットで覚えるべきノードだな。

さっきも書いたが、in ピンをもつノードに処理をさせるには、 out ピンからの処理の信号を受けなければならない。単に、 Set Property ノードを置いただけではデータは保管してくれないと考えていい。そこで、いつ Set Property してもらうかを決めるため置いたもの。ゲーム開始直後にデータの保管をやってもらいたいからこれにしたのだ。

 Integer ノード: 整数値を持たせるノード。クルクルの残りの数として、初期値の12をセットだ。Variable カテ。(Integer(発:インテジャー、意:整数))

ここまでで、

「 ゲーム開始直後 (❹ > ❸-1)、
このスクリプトが付くオブジェクトの (❸-2 が空欄だから)
プロパティー "kuruNokori" に (❸-3)
整数値の12がセットされる。 (❺ > ❸-4)
(kuruNokori = 12)

となる。分かったかな?

オブジェクトのプロパティにデータをセット。これが、Set Property。

/※ それから、"kuruNokori" って入れる時、またはもっと長い名前にするとかで、箱の横幅が狭くて全部見えないことがある。こんな時は、ノードの左右の端をつまんでひっぱってやれば、ノードが横に広がるのでこれで対応してくれ。 ※/

本日の確認
  • オブジェクトにデータセットするよ。(Set Property)
  • 最初の1回呼び出すよ。(On Init)
  • 整数値を入れよう。(Integer)

 やっぱ頭イテー、今日はここまでにしよう。