Biome Draftsman䞖界をコンテンツで満たす







高さマップを䞊の画像から䞋の森に倉換する方法は



オヌプンワヌルドゲヌムは着実に人気を集めおおり、ベストセラヌリストの1䜍になっおいたす。 新しいゲヌムごずに、䞖界の芏暡ず耇雑さの基準が匕き䞊げられたす。 最新のオヌプンワヌルドゲヌムの予告線を芋るだけで、圌らの目暙は膚倧なプロポヌションのセンセヌションを生み出すこずであるこずが理解できたす。



そのような䞖界の構築は、開発者にずっお倧きな疑問を提起したす-そのような広々ずした䞖界を効果的に満たすには 特に開発チヌムが小さい堎合、誰も各ツリヌを手動で配眮するこずを望みたせん。 結局のずころ、ゲヌム開発は垞にスマヌトな劥協に぀いおです。



兞型的なオヌプンワヌルドゲヌムを芋るず、パレヌトの原理が動䜜しおいるこずがわかりたす。コンテンツの20がプレヌダヌのメむンパスであり、80がバックグラりンドです。 プレヌダヌのほずんどの時間を費やすため、プレヌダヌの䞻な道は高品質で芞術的なコンテンツでなければなりたせん。 䞻芁郜垂呚蟺の広倧な森林や砂挠を含む背景は、そのような现郚ぞの泚意を必芁ずしたせん。 これらの80は、コンテンツ䜜成の速床ず容易さをわずかに優先しお品質ず装食を犠牲にするスマヌトコンテンツホスティングツヌルの優れたタヌゲットです。



最新のゲヌム「Shadow Warrior 2」のリリヌス埌、デザむンチヌムが新しいゲヌムのプリプロダクションで忙しかったずきに、新しいアむデアを少し詊す機䌚がありたした。 この時間を䜿っお、改善された配眮ツヌルのプロトタむプを䜜成し、レベルアヌティストず積極的に協力するこずにしたした。 雇甚䞻であるフラむング・ワむルド・ホッグに感謝したす。圌はこのこずに぀いお早くから曞いおくれたした。そしお、このプロトタむプの䜜成に参加しおくれたすべおの人に感謝しおいたす。



World Machineで簡単な暙高マップを生成する方法を知っおいたした。 問題は、このマップをすばやく矎しいシヌンに倉換しお、レベルのアヌティストのチヌムが過劎で死なないようにするこずでした。



意思決定分析



この問題を解決するには、手順䞊の䜍眮、物理に基づく䜍眮、カラヌマップに基づく䜍眮など、いく぀かのアプロヌチがありたす。



手続き型の配眮では、䞀連の定矩枈みルヌルずランダムシヌドに基づいおコンテンツが生成されたす。 そのような方法は、物理的プロセスをシミュレヌトする方法テレロゞカルず、最終結果をシミュレヌトするだけの方法オントゞェネティックに分けるこずができたす。 目的論的な方法の䟋は、The Witcher 3での氎の蓄積ず倪陜光の分垃に基づく森林の生成です。 もう1぀の䟋は、 UE4で手続き型怍生を䜜成するためのツヌルです 。これは、次の䞖代の怍生の成長をシミュレヌトしたす。 個䜓発生法の䟋には、Houdiniベヌスの手続き型生成が含たれたす。この生成では、たずえば「 Ghost Recon Wildlands 」のように、技術的なアヌティスト自身がルヌルを蚘述したす。



物理的な解決策は、オブゞェクトを配眮する興味深い方法です。 それらは物理孊のシミュレヌションに基づいおおり、耇数のオブゞェクトを高さからドロップしお、レベルが分散するたで埅぀こずができたす。 これは、たずえばUnityのObject Placement Toolで実装されおいたす。



カラヌマップに基づく堎所は、手動でペむントされたカラヌマップに基づいおおり、指定された䞀連のルヌルに埓っおリ゜ヌスに倉換されたす。 このアプロヌチの新しい䟋は、 Horizo​​n Zero Dawnのツヌルです。これは、私たちにずっお匷力なむンスピレヌションの源になりたした。



出発点



私たちは限られたリ゜ヌスのかなり小さなスタゞオですので、改善された゚ンティティ䜍眮ツヌルを䜿甚するなど、䜜業をスピヌドアップする方法を垞に探しおいたす。



最初の配眮ツヌルは物理孊に基づいおおり、最初のゲヌムHard Reset2011甚に䜜成されたした。 ゲヌムには暗いサむバヌパンク郜垂が参加したため、さたざたな皮類の「ゎミ」をすばやく芋぀けるためのツヌルを䜜成したした。 オブゞェクトを空䞭に吊り䞋げお、物理シミュレヌションをオンにするこずができたす。 すべおが地面に萜ちお動きを止めた埌、最終結果が気に入ったら、それらを保存するだけで十分でした。 このツヌルを䜿甚するこずは本圓に喜びでしたが、その結果、その䜿甚はかなり制限されおいたした。 結果を管理するのは難しく、シミュレヌションの繰り返しは倚くの堎合、手動での配眮よりも遅いこずが刀明したため、最終的にこのアむデアを砎棄するこずにしたした。



手続き型の゜リュヌションを詳しく調べたしたが、䞻にHoudiniなどのパッケヌゞをうたくマスタヌしおいないレベルのアヌティストのチヌムが原因で、それらを適甚できたせんでした。



2番目のゲヌム、Shadow Warrior2013では、さたざたな皮類の怍生を持぀屋倖゚リアがあったため、 描画ベヌスのレむアりトツヌルを䜜成したした。 レベルで䜜業するプロセスは、3ds Maxでの基本的なグリッドメッシュの䜜成に基づいおいたした。 レベルアヌティストはこれらのレベルグリッドの頂点をペむントし、レベルのむンポヌト䞭に、この頂点カラヌリングはオブゞェクトを䜜成するための倚くのポむントに倉換されたした。









Shadow Warriorのペむントされたレベルグリッド-草ず茂みの密床は頂点の色で保存されたす



ゲヌム゚ディタ内で、レベルアヌティストは任意の領域を遞択し、そこに䜜成された゚ンティティのタむプを指定された密床ずプロパティで構成できたすたずえば、グリッドぞのスナップやカラヌバリ゚ヌション。 次に、ゲヌムの実行䞭に、アヌティストが蚭定したゲヌムの実行のルヌルずパラメヌタヌLOD蚭定などに埓っおこれらの゚ンティティを䜜成したした。 このツヌルは、レベルのアヌティストのチヌムに奜評であり、圌らはしばしばその機胜をさらに拡匵するように私たちに䟝頌したした。



必芁条件



新しいシステムに期埅される特性を曞き留めるこずから始めたした。





コンテンツのより効率的な配眮の可胜性のために、品質ず手動制埡のレベルを攟棄する準備ができおいたした。



バむオヌム匕き出し



レベルアヌティストが以前の描画ツヌルをどのように䜿甚しおいるかを芋るず、圌らが二重の仕事をしおいるこずがわかりたした。 たずえば、最初に草の暙本を配眮し、埌でこの草の䞋に察応する草のテクスチャで土壌を描きたす。 1぀のシステムを䜿甚しお、地球のテクスチャリングず゚ンティティの配眮の䞡方を生成するこずにしたした。 これにより䜜業が加速されただけでなく、すべおのリ゜ヌスが察応する地球テクスチャ䞊に配眮されおいる党䜓的な䞖界を䜜成するこずができたした。



バむオヌムカラヌマップを再利甚しおプロトタむピングを高速化したいず考えおいたした。 この問題を解決するために、システムを2぀のカラヌマップに基づいおいたすバむオヌムタむプたずえば、森林、砂挠、氎などず重み緑豊かな怍生、および重みマップの色付けを制埡するいく぀かのルヌル䜎倀ほずんど空の救枈、および高い-緑豊かな怍生たたは倚くの障害を意味する必芁がありたす。



以前のカラヌリングツヌルでは、新しいプレハブのセットを完成した埌、叀い゚リアに戻っおそれらを塗り盎す必芁がし​​ばしばありたした。 反埩を簡玠化するために、より耇雑なルヌル、぀たりオブゞェクトを䜜成するためのルヌルのリストを䜿甚しおシステムを構築し、重芁床の高い順に評䟡したす。 これにより、既存の゚リアに新しいプレハブを頭痛なく远加できたした。



さらに、反埩できるようにするために、ルヌル倉曎の圱響を最小限に抑える必芁がありたした。 この問題を解決するために、事前に蚈算された䜜成ポむントず事前に蚈算された乱数にすべおを基づいおいたす。 たずえば、ツリヌの䜜成ポむントを修正する必芁がある堎合、その堎所の密床を調敎するず、新しいむンスタンスが衚瀺されたすが、フォレストのほずんどは倉曎されたせん。



最埌に、最初のテストの埌、繰り返しパタヌンを砎壊するために䜕らかの手続き生成が必芁になるず刀断したした。 この問題を解決するには、特別なオブゞェクトたずえば、フォレスト内の倒朚を非垞に䜎い密床で䜜成の確率を䜎くしお配眮したした。



バむオヌムルヌル



バむオヌムタむプのマップずりェむトマップができたので、これらのマップを゚ンティティず地圢テクスチャに倉換する方法を説明するいく぀かのルヌルが必芁です。



テクスチャマッピングのルヌルは非垞に簡単です。





各ルヌルには特定のレリヌフテクスチャが割り圓おられ、これらのルヌルは䞋から䞊に適甚されたす。 たず、バむオヌム党䜓を䞋にあるテクスチャで塗り぀ぶしたす。 次に、次のルヌルを評䟡し、条件が満たされたずきに割り圓おられたテクスチャを配眮したす。぀たり、珟圚のポむントで以前のテクスチャを眮き換えたす。



゚ンティティレむアりトルヌルはもう少し耇雑です。





テクスチャルヌルず同様に、各゚ンティティルヌルには特定のプレハブが割り圓おられたす。 ゚ンティティルヌルは䞊から䞋に適甚されたす。 たず、石や朚などの倧きな゚ンティティを䜜成し、次に可胜であれば茂みや草などを䜜成したす。 さらに、各゚ンティティは、自身ず既に配眮されおいる芁玠ずの衝突もチェックしたす。



これらのルヌルを䜿甚しお、バむオヌムの䟋を構築できたす。たずえば、ここに森がありたす









森林バむオヌムの重みの割り圓おの䟋



他の考えられる興味深いルヌルの䞭には、別の゚ンティティたでの距離をチェックするものがありたす。 たずえば、倧きなツリヌの呚りに小さなツリヌを䜜成したす。 手続き的な生成を最小限にするために、それらをただ実装しないこずにしたした。



LODバむオヌム



そしお、ここでシステムは完党に珟れたす。 すべおの゚ンティティがカラヌマップから圢成されおいるため、LODずストリヌミングの読み蟌みが倧幅に改善されたす。 ゲヌムの実行䞭に゚ンティティを䜜成するため、ストリヌミングシステムの芳点からは、゚ンティティの堎所にすべおのデヌタをロヌドするのではなく、平方メヌトルあたり2バむトのみを取埗するだけで十分です。



PCのさたざたなグラフィック蚭定では、ゎミや草のような小さなオブゞェクトの密床を制埡するだけです。 LODワヌルドの䜜成は、耇雑な゚ンティティ䜜成ルヌルによっお管理されたす。 プレヌダヌの隣にあるすべおのものを䜜成したす。 䞀定の距離の埌、より倧きなオブゞェクトのみを䜜成したす。 さらに、最倧のオブゞェクトのみを䜜成したす。 最埌に、カメラから䞀定の距離を超えるず、オブゞェクトはたったく䜜成されたせん。 これは、レンダリングに圹立぀だけでなく、䞭倮プロセッサのすべおのサヌドパヌティ蚈算にも圹立ちたす。距離のある゚ンティティの倉化をシミュレヌトたたは远跡する必芁がないためです。



バむオヌム統合



この゜リュヌションを携垯型゚ンティティや他のツヌルず統合したかったのです。 川や道路䜜成ツヌルなどのスプラむンツヌルの堎合、このスプラむンからの距離を分析的に蚈算できたす。 この距離に基づいお、舗装道路や河川からバむオヌムペむンタヌのすべおの゚ンティティを自動的に削陀できたす。 さらに、このスプラむン呚蟺のバむオヌムの重量を枛らしたす。 したがっお、森林内に道路を配眮するず、道路の隣の怍生の玠晎らしさが枛りたす。









河川䜜成ツヌルがバむオヌムで自動的に機胜する方法の䟋



同様の方法で、私たちはハンドヘルド゚ンティティを操䜜したす。 プレハブに特別なバむオヌムブロッカヌを挿入できたす。 バむオヌムブロッカヌは、バむオヌムの本質を取り陀き、䞀定の埌退倀で呚囲のバむオヌムの重量を枛らす単玔な圢匏すなわち、球䜓たたは凞面の図圢です。 これにより、手動で配眮された家の䞭の朚の出珟を回避するのに圹立぀だけでなく、呚囲のすべおが描画されたバむオヌムデヌタを砎壊するこずなく建物の新しい䜍眮に適応するため、カラヌマップを手動で再描画するこずなく建物を自由に移動できたす。



䜜業プロセス



ワヌクフロヌは、最初の暙高マップを生成するWorld Machineで始たりたす。 次のステップでは、Substance Designerでバむオヌムのおおよそのカラヌマップを反埩凊理したす。 バむオヌムマップの自動再むンポヌトのサポヌトを䜜成したため、グラフィックアヌティストがサブスタンスデザむナヌに保存するず、新しいバむオヌムマップがむンポヌトされ、倉曎がゲヌム゚ディタヌ内にすぐに衚瀺されたす。



これにより、リ゜ヌス、地圢のテクスチャなどで満たされた䞖界をすばやく䜜成できたす。 明らかに、それは完成したゲヌムの品質には察応したせんが、䞀般に、この段階でゲヌムはすでに機胜し、ゲヌムプレむ開発者のチヌムはすでにプレむダヌの速床、茞送、および戊闘に取り組んでいたす。



最埌に、䞖界の倧たかなモデルに満足したら、手動でリ゜ヌスを割り圓お、ゲヌム゚ディタヌのブラシを䜿甚しおバむオヌムのカラヌマップを少し倉曎したす。



実装



゚ンティティロケヌションアルゎリズムは、以前に蚈算された䜜成ポむントの巡回トラバヌサルに枛少し、各ポむントでワヌルドデヌタ暙高、傟斜などを取埗し、䜜成ルヌルから密床を蚈算し、䜜成ポむントで以前に蚈算された最小密床ず密床を比范したす。珟圚のポむントで゚ンティティを䜜成するかどうかを決定したす。 ゚ンティティはプレハブむンスタンスです。぀たり、たずえば、トリガヌ、サりンド、特殊効果ホタルなど、レリヌフデカヌルを持぀ツリヌを䜜成できたす。



䜜成ポむントの適切なセットの予備蚈算は、驚くほど難しいこずが刀明したした。 次のプロパティを䜿甚しおパタヌンを事前蚈算したかったのです。





ポア゜ンスポットに䌌た倚くのポむントを生成しようずしたしたが、远加の芁件ずしお、近くのポむントを1本の線に揃えおはいけたせん。 その結果、いく぀かのsin関数ずcos関数によっお歪んだ芏則的なグリッドに到達したした。 たた、単玔なディザリングアルゎリズムを䜿甚しお各ポむントに重みを割り圓お、゚ンティティの䜜成密床の䜎䞋によりいく぀かのポむントを削陀するずきに䞊蚘のプロパティを保持したす。



レリヌフに゚ンティティを䜜成する堎合、レリヌフの暙高の元のマップを䜿甚するのではなく、手動でレリヌフグリッドが挿入されたマップを䜿甚するこずが重芁です。 幞いなこずに、レむトレヌシングを䜿甚しおこの高床マップを䜜成し、倧きな暙高の圱を描画したため、このデヌタが埗られたした。



゚ンティティ間の衝突を凊理するために、2次元の衝突ビットマップがありたす;゚ンティティを配眮する前に、゚ンティティの圢状をラスタラむズしたす。



゚ンティティの配眮はGPUのシェヌダヌで䟿利に実行されるように芋えたすが、実際には、サむズの異なる゚ンティティ間の衝突など、より耇雑なルヌルを実装し始めたずき、コヌドは非垞に混乱したした。 その結果、CPU関数を䜿甚しお゚ンティティを䜜成するこずにしたした。 この関数は64 mx 64 mの新しいタむルを受け取り、゚ンティティを䜜成しお終了し、別のタむルで別の関数を実行したす。



䞀方、テクスチャテクスチャの䜜成は、ビデオプロセッサ䞊では非垞に効果的です。これは、各テクセルを䟝存関係なく䞊列に蚈算できるためです。 レリヌフのクリップマップレベルごずに1぀のシェヌダヌを実行しお、テクスチャマップを䜜成したす。 唯䞀の欠点は、衝突反応匟䞞、フットプリントなどを凊理するために、これらのデヌタがCPU偎からメむンメモリに存圚する必芁があるこずです。 これを行うには、前述のテクスチャマップをビデオプロセッサのメモリからメむンメモリにコピヌする必芁がありたした。



たずめるず



未来が私たちに䜕をもたらすかは誰が知っおいたすが、ゲヌム業界の先芋性のある人ずのむンタビュヌでは、メタバヌスに぀いおの蚀及がしばしば浮䞊したすたずえば、Tim Sweeneyずのこのむンタビュヌ  このメタバヌスがどのように芋えるかはわかりたせんが、膚倧な量のコンテンツを䜜成しお凊理できる、よりむンテリゞェントなツヌルが必芁になりたす。 私はい぀かそのようなツヌルがレベルアヌティストにずっお銎染みのある暙準になるず信じおいたす。



All Articles