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

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

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

f:id:ore2wakaru:20190119170039p:plain

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

Shade Smooth

f:id:ore2wakaru:20190119151507p:plain

 これだけれども、遠くから見る分にはそんなに気にならないような気もするが、[▶ Play] してみると、やっぱりちょっとゴツゴツだよね。

丸く見せるには、いくつかの方法があると思うけど、パフォーマンスを損ねない方法でまずやってみようと思う。

f:id:ore2wakaru:20190119152049p:plain

 上図のように、まず、Ico Sphere を選択して、右クリ。出てきたリストの中の Shade Smooth をクリック。(簡単に書くなら、右クリ > Shade Smooth ね。)

f:id:ore2wakaru:20190119152431p:plain

 そうすると、見た目が「つるっ」としたものになる。

これは見た目だけスムーズに見せるもので、ポリゴンが増えたりはしていない。だから、PC に優しい。Blender 上でそう見えるだけでなく、ちゃんと Armory の実行時でもやってくれる。すごいな Armory。

簡単だった。

「でも、やっぱりゴツゴツしてるのに戻したーい。」となったら、Shade Smooth の1こ下にある Shade Flat をクリックすればいい。ゴツゴツもツルツルも右クリから簡単に変更できる。便利だぜ、右クリ。

Subdivisions

では、見た目だけでなく、実際にポリゴンを増やして丸くする方法も載せておこう。紹介だけね。俺は、Shade Smooth しかしてないよ。

f:id:ore2wakaru:20190119154321p:plain

 Ico Sphere などの Mesh を追加する時、3D Viewport の左下の方に何か変な情報が出るんだ。で、ここをクリックする。

f:id:ore2wakaru:20190119154706p:plain

 出てきた中の Subdivisions という項目の数値を上げていくと丸さがみなぎっていくことが分かると思う。ただし、この項目は、新規に追加した直後のみで、オブジェクトを動かしちゃったらもうダメ。出てこない。そこだけ注意

Subdivisions: 2 だが、Subdivisions: 4。2しか違わないのにこんなにもまん丸になる。ただし、あんまりやると PC に負荷がかかるんじゃないかと思うけど、今どきの PC は全然へっちゃらかも。よくわからんなー。

プロはこの SubdivisionShade Smooth を組み合わせてイイ感じに仕上げるらしい。何が最適かは、作った人の感性によるのかな? しらんけど。

Rigid Body の Collisions の Shape

もうイッコ変えておきたいところがある。それが、Rigid BodyCollisionsShape

f:id:ore2wakaru:20190119160910p:plain

Convex Hull Sphere」 たぶんこれでパフォーマンスがアップする。

Collisionコリジョン)ってのは、当たり判定の時の外側の殻のことで、この形(Shape)をどうするかをここで決めている。

で、Convex Hull っていうのはオブジェクトのへっこんでる所は無視して当たり判定の殻を作るよってこと。図にするとこんな感じ。

f:id:ore2wakaru:20190119162715p:plain

これで意味不明なら、ググってくれ。すごい大事なことだ。(お椀とかだったら、お椀の中にサイコロを振ろうとしても、入って行かないってことね。凹みはガン無視して面を作るからね。)

凹んだ部分の面をばっさり削ってくれるので、一応当たり判定用の面がいくつか省略されるため、物理演算処理が軽くなるが、今回当たり判定は球形でいいので、Sphere を選んでおく。

Shade Smooth で見た目をスムーズにしても実際は三角形のゴツゴツで出来ているので、イチイチ面の処理をさせるのは負担が大きいだろう。また、Subdivision で小さな三角形をいっぱい貼って作った球を使えば断然処理が重くなるはず。

たぶん、ここ ShapeSphere にしとくと、この辺の所が一番最適化されているのではと思う。もちろんデコボコとかガン無視して四角でいいなら Box にしておくのが一番計算が早いと思う。

/※
Convex(発:コンベックス、意:凸面)
Hull(発:ル、意:殻)
※/

本日の確認
  • 見た目を丸く:Shade Smooth。
  • ほんとに丸く:Subdivisions。
  • へっこみ無視の Convex Hull。

 あー、ステージのコリジョンも Box にしといた方がイイのかなー。