見出し画像

LODのような自己対話 ~ Gekkoができるまで ② ~

みなさま!読んでくれてありがとう!
はい、アドカレ2回目の投稿となりますーー!前回は、「2点透視でつくるクリエイティブパース」をお話しました。
12月3日投稿:つくりたいものをつくって伝える方法
前回も軽く触れてはいますが、今回お話する内容はこちらです~

LODのような自己対話
~ Gekkoができるまで ② ~

まずはおさらい。
LODとは、「Level of Detail」の略であり、計算負荷を軽減させるためにゲームで多く使われます。

画像1

物体や景色を映す時に、伝わる所は具体的に作り込み、伝わらない所は簡略化してしまおうという処理です。
近いものは細やかに、遠くのものはおおまかに、表は見せるが裏は消してしまえなど、そういった具合です。

単に技術としての話ではなく、私はこれを思考するイメージにしています。

このLODなお話をですね、Gekkoを構成する一番地味な要素「浮遊する埃」と、わりと注目された要素「チュートリアル」の2つに分けてお話します。

ということで本日は「埃」ですw

画像2


この埃・・・微妙すぎてVRデバイスでログインした人にしかほぼ見えていません!でもね、私にはとっても大切な要素の一つなのです。

Gekkoを構成する要素の距離感はこんな感じ。
下に行くほど簡略化・省略化、可能と判断します。
下に行くほど自分から距離が遠くなる感じ。LODですね。

① とにかく体験してほしい!
・超軽量であること。
・チュートリアル(操作方法の煩わしさの解消)
・ログインの煩わしさの解消。
② きもち良いと感じてほしい。
・精密なライティング
・揺らぐカーテン
・空間音響
・漂う埃
・カーテンから透けて見える月明かり
・床を照らす光のランダムさ
➂ 瞑想ルームとして利用してほしい。
・瞑想に適したルームデザイン
・利用シーンを想定したナビゲーション
・揺らぐ蝋燭
・時計
・鐘の音

この様に箇条書きにする場合、物事が明確になる反面、思考が一本調子になってしまいます。
私が物事をLODの様に捉える所以は、全ては簡略化可能な自分からみた距離感であり、全てが重要な要素であるということです。
風景を見るように、物事をパッと捉える感じです。頭の中はこのようになっているのかもしれません。

画像3

私が埃をとくに好きになったのは7年前(もうそんなに・・・)に発売したPS4のゲーム「THE LAST OF US」がきっかけです。
私は映画をよく観ますので、ラスアス以前からも埃好きではあったものの、「え!ゲームで再現?!埃を!?」と・・・かなり衝撃を受けた覚えがあります。
ただでさえタービュランスめいて漂っているのに、プレーヤーが埃の中を潜っていくようにきちんと動きます。(え!どゆことw)
ようは雪や雨など、空間に漂う粒子要素は3D空間上に構成するのがとても難しいために、空間には配置せず、ループ動画を画面に後乗せしてごまかすパターンがそれまで多くありました。

ラスアスの埃は空間上にある(ある様に見える)から偉い!と興奮したのですよ。

それからGPUの進化により、パーティクルはとても扱いやすく、埃もたやすく再現できるようになりました。
だがしかし・・・、現状Hubsの標準エディターのパーティクルアセットで埃を再現することは不可能でした・・・。(こだわり強味ですまん)

画像4

※現状のバージョンでは、リニアなアニメーションしか作れない。

エニウェイ~

体験者には「きもちいい~」もっといえば「風を感じるね!」こういった反応があれば理想です。
埃は全体を感じてもらうための一要因であり、存在をきちんと認識してもらう必要はありません。この時点でどのくらいの簡略化までなら(自分に)許されるか、イメージがぼんやり浮かびます。

私が埃を再現するために最低限欲しいものは以下の3要素。
下に行くほど簡略化・省略化、可能と判断します。

① タービュランス(気流が入り乱れているランダムさ)
② 埃の粒の大きさ
➂ ある程度の埃の量
------ここから下は切り捨てます。
④ 現実と同じくらいの膨大な量
⑤ 光を乱反射している様
⑥ フィジックス(物理的反応)

切り捨てる理由は、Hubsのユーザビリティを苦しいものにしてまでやるべき事ではないという判断です。

そう、タービュランスが最も重要なんです。これが無いため、Hubsのパーティクルアセットでは再現不能と判断しました。
ではどうしたのか・・・

キーアニメーション付きのメッシュにしましたw

画像5

もちろん一度立ち止まりましたよ。「この世で埃をメッシュにしてアニメーションさせた変態っているんかいな・・・」とw
わがままな衝動と、Gekkoの良さを伝えるために本当に必要なんか、というボーダーを行ったり来たりしたあげく「うん、一旦やってみよ」衝動が少し勝り、手が動きます。
この時点で全体の仕上げをいつにするのかを設定し、その中でも何日間試行錯誤できるか考えます。時間内に答えが見つけられなかった場合はおもいきって捨てるのです。あわわ。

はい、埃をつくりましょう!(超ざっくり進行)

① Blender(ver 2.7x 作業)のパーティクルエミッタで埃をつくる。

・プラグインをBlender2.7xに追加する。
Particle Baker(有料 7.99$)

・立方体を作る。

画像6

・パーティクルを設定する。

画像7

パーティクルの数値はこんな感じにしました・・・(説明省きます)

画像8


・Planeから三角板をつくる。(超軽量なので)

画像9

※マテリアルは適当に・・・
そしてこの三角板を発生するパーティクルの形状として登録します。

画像11

・タービュランスフォースを配置する。

画像10


・パーティクルをPlarticle Bakerでアニメーション付きメッシュに変換。

画像12

ここまでやって一度保存。Blender2.8xで同じファイルを開きます。

・Blender2.8xのアドオン「NewTek MDD format」を有効化します。

画像13

そして再起動。これでポイントキャッシュが扱えるようになります。

パーティクルからベイクされたオブジェクトは、粒と同数つくられます。
かつ、オブジェクトごとにフルフレームでアニメーションキーが生成されます。まず重い・・・。

画像14

・全ての粒オブジェクトを1つにマージしたオブジェクトを1つ、つくる。
そのマージオブジェクトのバーテックスを複数の粒オブジェクトにHookする・・・。(この時点でため息が100回でます)

画像15

ここまでで、ようやく・・・パーティクルのアニメーションを一つのオブジェクトのキーアニメーションに集約できました。

・Blender2.8xでmddに書き出し。(ポイントキャッシュに書き出す)

画像16


・設定したHookを全て解除し、書き出したmddを読み込む。

画像18

読み込んだポイントキャッシュはシェイプキーになります。

・ある程度のキーを削除し軽量化する。

画像19

・ループアニメーションにする。

画像18


・もう一回mddに書き出し、また読み込む。

画像20

できた!(見えにくくてすまん)
おかげでえらく軽い埃ができあがりましたー!あとはglbファイルに書き出し、Hubs Spokeに投げ込みましょう!

画像21

ここに至るまでに、実際はパーティクル量やアニメーションキー数の調整など、試行錯誤を繰り返しています。
結果、500kbほどの小さいデータに成型できたので、採用しました。
わずかなデータ量でそれなりの効果があると思われます。

ふぅ~~・・・


大変だね!


もっと詳しく聞きたい方は連絡ちょうだいー!やっほー!
少し気の早いクリスマスプレゼントを、ここまで読んでくれたみなさまに埃あれ!

画像22


Happy early Christmas to you!!→https://skfb.ly/6UOIN

瞑想ルーム Gekko
↑ たまにはぼーっとしようぜ!

Hubs Advent Calendar 2020
↑ 他にも楽しいお話がいーっぱいだよ!

画像23

by えんちゃん
Narratify Co., Ltd. 代表

この記事が気に入ったらサポートをしてみませんか?