5月16日16時59分59秒まで複雑な3Dモデルを、ワンクリックで簡単ビルボード!あらゆる角度からカメラで撮影してくれて、どの角度から見ても大丈夫になる「だまし絵」のような3Dビルボード化エディタです。負荷の大きな木や建物、岩など、大量に配置しても爆速でレンダリングできて、オリジナルとほぼ遜色のない美しいビジュアルで仕上がります。気になっていたImpostorsの最適化。アセットはベータ版です。正常に動作しない可能性があります。この記事はMacで検証しています。17:00まで同じ色が2色連続していれば消す事ができる3マッチより手軽なパズルゲーム。プログラミングせず組み立てるテンプレートです。レベル毎の達成条件、パズルの配置、フレームなど専用のエディタで開発。Adsによる広告の収益システムが含まれています。事情があって全体的に遅れていますが、なんとか追いつくように頑張り中です。7:34アセットの事がわかってきました。良く出来たアセットです。条件が整えば、もはや本物と見分けがつきません。綺麗にベイクする方法、条件など学習中です。新作リリース時点の内容です。技術的な事をこの記事でまとめました。記事完成までこちらを先にご覧下さい。偽りの全方向ビルボード!UE4やUnityで手軽に使える用になりました。ワンクリックで簡単にImpostorアセットが作れるUnityプラグインのプロモーション映像が公開!パフォーマンスチェックLOD設定で「木」を大量に配置カメラが被写体から離れれば離れるほど、Impostor化した木にチェンジ。大量に表示すれば通常なら高負荷でカクカクするような重さになりますが、FPSが若干下がる程度で、ポリ数は近距離より圧倒的に軽くなりました。[BETA]で作った木が隠れています。建物の手前に8本ほど植えてみました。数クリックの作業で完了。周りの木はLOD無しの通常モデルです。動かしても殆ど見分けが付かない!ちなみに接近したら通常の木のディテールになり、カメラが被写体から離れたらImpostor化するようにLOD設定しています。街の3Dモデルは、2019年1月15日に無料化したアセットをお借りしています。Renderer)は扱えません。Impostor」コンポーネントをオブジェクトに取り付けます。親オブジェクトに取り付ければ子も自動的に含まれます。Impostor」を実行する後から何度でもベイクできますので最初は変更せずそのままでOKです。「アセット名」と「保存先」の指定ができます。4.完成!シーン画面の座標0,0,0に「Impostor」オブジェクトが生成されます。LOD使用の場合は子に生成される。移動・回転してみるちょっと荒さはありますが、こんなに接近しても立体的に見える!これたったの6ポリですよ。遠方で使えばもはや本物にしか見えない。極限までテクスチャサイズを落とし、最善のルックスに整えるのが私達の作業です。Impostor」コンポーネントの変化を確認します。Asset」に先ほど保存したアセットがセットされており、クリックするとProjectビューの保存先にフォーカスします。赤枠内がベイク結果のScriptableObjectと、マテリアル、メッシュ、そして4枚のテクスチャが作られました。これが「Impostor」の正体!8verts,6trisの檄軽メッシュが作られます。ここにカメラの角度に応じて、シェーダ側で必要な部分をレンダリングする仕組みだと思います。テクスチャ4枚のテクスチャです。AlbedoAlpha、EmissionOcclusion、NormalDepth、SpecularSmoothnessあらゆる角度から見た時のパラパラアニメが大量にレンダリングされています。枚数を「多く」すれば画質が荒くなるが回転がスムーズになる。枚数を「少なく」すれば画質は良くなるけど、カクカクする。Frames):軸あたりのフレーム数です。値16は、単一のインポスタ(16x16=256)に対して合計256の異なるショットを表します。球状のインポスタでは、右側のロックボタンを押すと、軸ごとに異なるフレーム数を持つことができます。Padding):ピクセル単位のブリーディングサイズです。使用すると、個々のショットのエッジピクセルが拡大され、ミップマッピングによるレンダリングのアーティファクトが回避されます。値が32の場合、イメージは32ピクセルずつすべての方向に拡大されます。Typeを変更する撮影方法は3つ用意されています。形状によって使い分けると良さそうです。球面Spherical:複数のショットを典型的な緯度経度形式で取得します。シェーダはシンプルで速く、impostorは近い距離から大丈夫ですが、フレーム間のポップはかなり目立ちます。これは、解像度を犠牲にして軸のフレーム数を増やすことによっていくらか軽減することができます。八面体:icosphere形式で複数のショットを取ります。これは、3つの固定された近隣カウントを保証するために行われ、カメラに対する任意の所定の位置において、最も近い3つのフレームをブレンドすることができる。これは、フレーム間のポップを除去する利点があります。シェーダの複雑さは高くなり、距離を見るとブレンドが目立たなくなりゴーストの目立つアーティファクトになります。ヘミ八面体HemiOctahedron:ヘミ変種は通常の八面体に似ていますが、同じ量のショットを取ることに違いがありますが、オブジェクトの上半球からのみ、効果的にブレンドの精度が倍増します。下半身を焼かないことによって、下から見たときに誤った結果が生じるという欠点があります。この手法は、オブジェクトが常に上から見えることがわかっている場合(つまり、トップダウンカメラ)にのみ使用されます。Mesh」を開くと、左側に黒くて丸っこい図柄と、ワイヤーフレームが表示されています。これを「Manual」で丁度良いように囲ってから再ベイクすると結果がよくなる場合があります。マニュアルによると、ビルボードメッシュの図柄が整った形になっているので(私が作ると大体丸っぽくなる)綺麗に生成するテクニックをしっかり学べばより綺麗に作れそうです。ImpostorをLODとして扱う方法を解説します。LODを作るアセットただいまセール中ですので有名なLOD作成アセットを紹介します。:対応記事Unity内で段階的なポリゴンリダクションを行いLODを作るモデリングツール。「パンツの一部が消えてしまった」「ロゴが消えた」など起きるケースがありますが、クオリティを維持して欲しい部位をピンポイントで指定できるのが便利。Impostorsの場合は通常のLODと違い、オブジェクトが一体型になります。通常のLODなら気にすること無く最適化が行えます。手元にLODオブジェクトを持たず、単体オブジェクトでLODGroupを作ります。普通は「2つのモデル」を子にするのがベターですが、単体でも成功しましたのでそちらで解説します。Group」コンポーネントをアタッチします。Delete3段階にしたい場合はそのままでもOKですが、テクスチャが増えてしまいますのでオススメは「LOD0、LOD1」の2つです。CulledはそのままでOK。比率を調節するカメラからの距離を調節することができます。1」に対応するオブジェクトを指定します。ここでは両方とも子にしたオブジェクトを指定します。Impostor」コンポーネントを取り付けます。Impostor」を実行しましょう。保存先や名前は任意(そのままでもOK)するとこうなります。0」の状態でオブジェクトが消えました。