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

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

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

f:id:ore2wakaru:20190109213505p:plain

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

Sphere の追加

Sphere オブジェクトを追加する。これが「玉ちゃん」ね。で、オブジェクトの追加の仕方はもう大丈夫だよな。ヘッダの [Add] か、[Shift]+[A] か、右クリか、もう3通りでいけるよね。好きなの使ってくれ。Sphere も Cube と同じで Mesh カテゴリの中にあるぞ。

f:id:ore2wakaru:20190109131857p:plain

画像には UV Sphere って方にしろって書いちゃったなー。でも、UV でも Ico でもどっちでもいいよ。え? 違いが気になる? じゃあ、とりあえず2つとも出して見比べてみようか。

f:id:ore2wakaru:20190109133158p:plain

なになに、UV の方は表面が四角形の集まりで出来ていて極の方に行くほど細長くなってる。Ico の方の表面は三角形でー、しかも全部同じ大きさの三角形。・・・俺にはこの程度の違いしか分からないぜ。ブレンダー博士じゃないからな。

・・・という事で、やっぱ、Ico Sphere を使おうっと。へへ。追加、ポン。

f:id:ore2wakaru:20190109145230p:plain

(遠くから見る分にはどっちでもよさそうだな。) 半分埋まって出て来るので、移動ツール[G] > [Z] で上に引き上げておこう。ただし、俺はきっちり派なので、適当に上げるだけじゃ気が済まない・・・

f:id:ore2wakaru:20190109153127p:plain

そう、サイドバーで数値を入力だ。ま、地上 10m って所でいいだろう。

玉と 物理(physics)

次に本日のメイン、この玉ちゃんに重力を感じてもらうべく、設定をする。ちゃんとできたらゲーム開始で、玉ちゃんがステージ上に落ちて行くぞ。ま、その様子が見たくて引き上げたのだがな。

f:id:ore2wakaru:20190109152646p:plain

 ちゃんと玉が選択されていることを確認。ちゃん玉。玉に重力を感じてもらいたいからな。違うオブジェクトが選択されてると、そいつが落ちていくぞ。注意。

 プロパティエディタの一番下のタブ(Physics タブ)を押して、

 [Rigid Body] ボタンを押す。

/※ Rigid Body(リジッドボディー)とは一般的には「剛体」って訳されるけど、もっと馴染み深い言葉で言うなら、「殻(から)」。カッチンコッチンの殻。Rigid Body を設定するって事は「オブジェクトに硬い殻を付ける」って事な。

例えば Cube や Sphere などの Mesh、見た目にはそこにあるように見えるが、実はあれ、ホログラム。手を伸ばせばスーって中まで入って行っちゃう。だから、そうなった時「なんだよ、見た目だけかよ。本当は無いんじゃん。あーあ。」って思う。そう、現実世界的に考えると、無いモノなんだ。

それに対し、Rigid Body の設定を加えたやつは、「」が付いてるので、手を伸ばすと「カツンッ」って当たって存在を実感できる。これで「いてて、あ、やっぱ、ちゃんとあるな。よしよし。」って思える。そう、これでやっと現実世界的に有るモノとなったのだ。

ま、「殻無しホロ」か「殻付きホロ」か、と思ってもいいな。説明が長くなったが、こんな感じ。 ※/

でー、ボタンを押すと、こんな感じの長ったらしい情報がガンッて追加される。全てが重要情報なんだが、は見るだけ、何もいじらなくてイイ。(後からいじるってことね。) ちょっと確認だけしよう。

f:id:ore2wakaru:20190109174122p:plain

 一応ここで、どのオブジェクトに設定してるモノなのか、オブジェクト名で書いてある。

 有効にしてるものに "×"バツ印)が付くぞ。有効なのにバツって、「おや?」と思うがしょうがない。無効にしたければ、バツ印のついているボタンを押せ。ガンッて追加された項目がサッパリ無くなり、バツも消える。

 ボタンを押して追加した Rigid Body の項目。いっぱいあるね。下線を引いた2ヶ所だけしっかり確認しよう。

  • Type > Active: ここが Active になってると、物理の法則でオブジェクトが動くようになる。もちろんこのオブジェクト(玉)には重力の力を加えたいからデフォルト Active のままでok。
  • Dynamic > チェックあり: 物理の法則でオブジェクトを動かしたい時は、何でか知んないけど、ここにもチェックが必要。ここもデフォルトのままでok。

 Armory 専用の物理設定が追加される。今はこのまま、とりあえず動作を確認しよう。

Resolution と Camera

 Resolution

save はしてあるはずだから実行できる。玉が落ちるか確認しよう。Let's Play!

プロパティエディタ > レンダータブ > Armory Player > [▶ Play] ボタン で実行すると、デカイ窓が開いて一瞬、玉が地面に吸い込まれていく様子が映るかと・・・、だが・・・、そう、まず、窓がデカいんだ。調整しよう。前やったやつ、覚えてるかな?

f:id:ore2wakaru:20181231004806p:plain

そう、アウトプットタブ > Resolution で調整。では、もう一度 [▶ Play] ボタン。だが、やっぱり、変。

 Camera 位置

f:id:ore2wakaru:20190109185811p:plain

テンキーの [0] で実際のゲーム画面と3D空間がどうなってるか見てくれ。Camera の位置があまりにもステージに近く、全体をイイ感じに映してない事が分かる。では早速カメラの位置を調整しよう。で、多分一番楽な方法は、

f:id:ore2wakaru:20190109192834p:plain

 カメラ視点(テンキーの [0])にする。

 サイドバー > Camera Lock > Lock Camera to view にチェック。

 あとは普通に「マウス中ボタン3点セット」で、イイ感じの所まで3D空間をナビ(移動)しよう。なんと、カメラオブジェクトがくっ付いて動くぞ。便利すぎる!

  • マウス中ボタン3点セット(ココ参照)
    1. ズームイン・アウト: マウスホイールぐるぐる
    2. 周回: マウス中ボタンドラッグ
    3. パン: [Shift]+マウス中ボタンドラッグ

f:id:ore2wakaru:20190109200838g:plain

でも、「玉」も「ステージも」ちゃんと見えるところまで持ってこようとすると、遠くが映らないんですけどー! ってなるよね。

 Camera の撮影可能距離

そう、カメラには撮影できる距離があるんだ。何千キロも先をレンダリングするとか PC が爆発すんだろ。負担軽減のため Blender はデフォで 100m 先までしか見えないようになっている。ゲームするには、これはさすがに短すぎなんだな。

f:id:ore2wakaru:20190109202912p:plain

 カメラが選択されている状態(さっきも書いたけど、プロパティエディタのこの位置には何が選択されてるか、教えてくれる)で、

 カメラのアイコンのタブをクリック。(カメラオブジェクト特有のデータっぽいな。)

 Clip End200 に。

これで 200m 先まで見えるようになった。ちなみにこの上の Clip Start は撮影の開始距離。これより手前のものは映さないよって事。

ではどうかな? 3D Vierport を確認してみよう。

f:id:ore2wakaru:20190109203642p:plain

いいんじゃない!

おっと、カメラ位置の確定の仕方を書いてなかったな。イイ感じの所に来たら、Lock Camera to view のチェックを外す。こんだけ。これでカメラが今いる位置に移動している。

でも、俺はこれで満足しない。そうキッチリ派だから。

f:id:ore2wakaru:20190109210121p:plain

サイドバー、ばんざ・・・

[▶ Play] してみる?

いや、次回にしよう。

本日の確認
  • 重力感じたいなら、Physics > Rigid Body!
  • Mesh はホログラム。Rigid Body で「殻」を付けろ!
  • カメラ位置? View にロックしてナビれ!
  • カメラ撮影可能距離? ほどほどに。

 次回、玉が落ちるけど、「あああああーー」って言うのをやる。