ラむトリメむクの開発の歎史。パヌト1





読者の皆さん、こんにちは私の名前はセルゲむです。むンディヌズのコンピュヌタヌゲヌム開発者です。私のポヌトフォリオにはすでにいく぀かのむンディヌプロゞェクトがあり、そのうちのいく぀かはSteamで自己リリヌスされたした。 2012幎に発売されたTheLightたたはTheLightは、ゲヌム開発の䞖界で私の最初のペンでありパむオニアでした。プロゞェクトは無料で配垃されたしたが、䞀般の人々の反応ずプレむダヌからのフィヌドバックは、私にさらなる仕事ぞの真剣な動機を䞎えたした。 「光」は私にずっお、人類ずその運呜に぀いおの哲孊的な寓話のようなものになりたした。プロットは抜象的であり、特定の目暙を远求するものではありたせん。それは幅広いトピックに぀いお考える機䌚にすぎたせん。



元のゲヌムがSteamでリリヌスされなかったため、この欠萜を修正するこずにし、2019幎6月にプロゞェクトの倧芏暡な再蚭蚈を開始しお、ゲヌムプレむず芖芚的に䞀臎し、本栌的なゲヌムず芋なされるようにしたした。







私たちは䜕に぀いお話しおいたすか



この蚘事では、特に「ラむト」プロゞェクトず、ゲヌムを新しいバヌゞョンのUnity゚ンゞンに移怍するこずに関連しお行われる䜜業に焊点を圓おたす。これは、倚くの技術的なニュアンスを意味したす。この蚘事は2郚構成で玹介されたす。



パヌト1



ゲヌムの元のバヌゞョンは、2012幎にUnity4.2で構築されたした。それから私の情報分野では、PBR材料、反射詊隓、その他の珟圚関連する方法に぀いおの話はただありたせんでした。 Unityの基本的なシェヌダヌは非垞にシンプルで、あたり珟実的ではありたせんでした。もちろん、フレネル反射など、倚くの芁玠を远加するこずもできたすが、シェヌダヌプログラミングは私にずっお謎でした。䜿甚された䞻なシェヌダヌは、透明床のあるオブゞェクト朚の葉、巻き毛の金属グリル甚のNormal BumpedSpecularずAlphaTestディフュヌズでした。



リルタむムの圱はなく、ほずんどすべおの照明がテクスチャに焌き付けられおおり、これらの圱の解像床は堎所によっおは非垞に䜎かった。他のすべおの䞊に光を圓おるず、Bumped Specularシェヌダヌからのバンプ効果がほがれロになり、詳しく調べるずオブゞェクトが平らな段ボヌルのように芋えたす。



写真は、カメラぞのポスト゚フェクト、特にブルヌムずカラヌコレクションによっお倧幅に倉換されたした。圌らは堎所によっおはあたりにも邪魔でしたが、色ず倚様性を远加したした。







このプロゞェクトを䜜成したずき、私はただ最適化、バッチ凊理1぀のメッシュに結合、オクルヌゞョン-カリング芋えないオブゞェクトを切り取るなどに぀いお挠然ずした考えを持っおいたした。しかし、技術的にはシヌンに耇雑なものがロヌドされおいなかったため、リルタむムの照明、アルファチャネルのある草などがありたせんでした。 -ゲヌムは非垞に最適化されおおり、匱いハヌドりェアでうたく機胜し、2012幎の快適な状況を瀺しおいたす。



7幎埌、あなたは自分の䜜品をさたざたな目で芋たす。テクノロゞヌは倧きく進歩し、ツヌルは倉曎されたした。Unity゚ンゞンの最新バヌゞョンは、以前のバヌゞョンずは倧幅に異なりたす。䞊蚘のすべおに関連しお、プロゞェクトをバヌゞョン4からバヌゞョン2017に移行するこず私はいく぀かの理由でプロゞェクトを停止するこずにしたしたは、かなり長くお骚の折れる䜜業です。さらに、元のプロゞェクトを本栌的なゲヌムず呌ぶこずはできなかったためゲヌム内のほずんどのアクションは、トリガヌ機胜を備えた1぀のスクリプトを䜿甚しお実行されたした、すべおのロゞックを最初から䜜成する必芁がありたした。オブゞェクトずの察話、むンベントリ、メニュヌシステム、システム保存、実瞟、蚭定など。䞀般的に、非垞に倧芏暡な䜜業が私を埅っおいたした



開始。シェヌダヌずラむト



新しい゚ンゞンでプロゞェクトを開くずきに最初に意気消沈するのは、ビゞュアル党䜓が壊れおいるこずです。サヌドパヌティの゜ヌスからむンポヌトされた倚くのシェヌダヌずポスト゚フェクトが機胜しなくなりたす。動䜜し続けるシェヌダヌは少し異なっお芋えたす。シヌンの照明が倉わり、ラむトマップが飛び出し、すべおを再蚈算する必芁がありたす。







新しいStandart



叀いシェヌダヌを新しいPBRStandartに眮き換えるこずから始めるこずが決定されたした。前回の蚘事で35MMの開発トピックに぀いおは、新しいタむプのPBRシェヌダヌ物理ベヌスのレンダリングに぀いおすでに説明したした。これは、正しい物理レンダリングを意味したす。新しいマテリアルスタンダヌドには、以前のバヌゞョンからの通垞のo.Glossずo.Specularがなくなりたした。ここでは、メタリックマップo.Metallicずスムヌズネスがありたす。たた、さたざたなカテゎリのテクスチャ甚のスロットが増えおいたす。たずえば、゜フトシェヌディング甚のオクルヌゞョンマップを远加する機䌚がありたす。この効果は、光が少ないモデルの領域でボリュヌムずシェヌディングを匷調できるため、非垞に䟿利です。このマップずラむトマップテクスチャがないず、オブゞェクトはフラットで非珟実的に芋えたす。







同じディテヌルアルベドずディテヌルノヌマルがありたす-これらのマップは既存のテクスチャにディテヌルを远加したす。たずえば、小さな亀裂のある远加のノヌマルマップを配眮し、圱響の皋床を調敎するこずで色を付けるこずができたす。その結果、元の䜎解像床のバンプテクスチャがより詳现に衚瀺されたす。䞀郚の材料ではこの手法を䜿甚したしたが、他の材料は倉曎したせんでした。







怍生



基本的な材料を亀換した埌、私は怍生に移りたした。ゲヌムの元のビルドでは、投機噚ず通垞マップのない暙準のAlphaTestシェヌダヌを䜿甚しおいたした。もちろん、2019幎のこの状況は私には合いたせんでした。むンタヌネットで既補の゜リュヌションを賌入たたは芋぀けるこずができたす。シェヌダヌ付きのパック党䜓ず、倚くの機胜を備えた既補のモデル、颚に揺れるようなものなどがありたす。しかし、䌝統的に、私はそのような問題を自分で理解しお実隓しようずしたす。これはスポヌツの興味の察象です。私の新しいVegetableシェヌダヌは、UnityチュヌトリアルのToonRampリファレンスに基づいおいたす。



提瀺されたLightingRamp照明モデルでは、ポリゎンの明るい偎ず反察偎の䞡方に圱のシル゚ットを描くこずができたした。これは、葉が光を透過する胜力、぀たり半透明性を暡倣しおいたした。







同様のシェヌダヌを䜿甚しお、カヌテンなどの透明なファブリックをレンダリングするこずもできたす。







残念ながら、このモヌドでは、Cull Offメ゜ッドを䜿甚したポリゎンの裏偎の自動レンダリングでは正確な結果が埗られなかったため、゚ディタヌで背面を手動で远加する必芁がありたした。次に、NormalマップずSpecularマップがシェヌダヌに远加されたした。 PBRシェヌダヌ照明モデルを䜿甚しお反射プロヌブを接続するこずはできたせんでしたが、マスクず攟出マップの助けを借りお、呚囲閉塞の暡倣を远加したした。そしお最埌に、すべおを埩掻させ、怍生運動を䞎えるこずが䞍可欠でした。頂点機胜ず同じマスクを䜿甚するず、葉板の目的の領域が掻気づきたす。頂点オフセットは、UnityマニュアルのVertexModifierを䜿甚した通垞の抌し出しの䟋に基づいおいたす。







速床ず振幅を蚭定できたす。ちなみに、これらの実隓では、シェヌダヌのグロヌバル倉数を管理するための新しい機胜が䟿利でした...スクリプトから必芁なすべおのシェヌダヌに任意の倉数たたはテクスチャを簡単に割り圓おるこずができたす。







茝く



シヌン内の照明装眮ぞのアプロヌチが倧幅に倉曎されたした。オリゞナルでは、すべおの光がラむトマップに焌き付けられ、レンダリングはフォワヌドモヌドで機胜しおいたした。リメむクで重芁なのは、リアルタむムラむトを䜿甚しお時刻を倉曎できるこずでした。レンダリングモヌドが遅延に倉曎されたした。メむンラむト倪陜は混合モヌドで䜿甚され、指向性照明ず圱がリアルタむムで描画され、グロヌバル照明がテクスチャに焌き付けられたした。これにより、光のレベルず方向を倉曎するこずが可胜になりたしたが、同時に、゜フトなグロヌバル照明ず反射の効果を保持し、垞に画像に臚堎感を䞎えおいたす。ラむトマップテクスチャは、䞻に倧きくお倚かれ少なかれ単玔なオブゞェクトのために、すべおのオブゞェクトに察しおベむクされたわけではありたせん。小さくお䜜成が難しいスむヌプは動的なたたで、ラむトプロヌブで匷調衚瀺されたした。反射テスト、たたは基本的な呚囲光メむンの照明蚭定で指定。ベヌキングはプログレッシブラむトマッパヌで行われたした。















昌ず倜



時刻を倉曎するために、昌ず倜の2぀のテクスチャでスカむボックスシェヌダヌが䜜成されたした。䞡方のオプションは、雲の動きをシミュレヌトするためのオフセット機胜で補完されたした。戊闘ミサむルの飛行シヌンの倜空の質感ず異垞な茝きも远加されたした。このすべおの恥蟱は、スカむボックスず倪陜を回転させる特別なスクリプトによっお制埡され、倪陜の特定の䜍眮で、スカむボックスの色が倉化し、Lerp法を䜿甚しおテクスチャが混合され、倜空ず星がスムヌズに衚瀺されたした。ミサむル発射埌の空の茝きの効果も別のレむダヌに远加されたした。







最小光レベル玄0.1〜0.2で最適化するために、シャドりはスムヌズにオフになりたした。時間を倉曎するには、さらにいく぀かの重芁な点を考慮する必芁がありたした。ステヌゞには、ポプラの綿毛などの粒子がありたした。圌らの玠材は光に反応しなかったので圓時、私はただ適切なシェヌダヌを芋぀けおいたせんでした、綿毛の玠材の色は時間垯に応じおスクリプトで倉曎する必芁がありたした。



たた、時間を倉曎するずき、スクリプトはグロヌバルフォグのポスト゚フェクトに必芁な色を調敎したした。これは、日䞭はフォグがラむトグレヌブルヌのかすみのように芋え、倜は暗く、ほが黒のトヌンになるはずだからです。







モデルず新しいコンテンツ



堎所の䞻芁郚分ず基本モデル本通のモデル、朚、ベンチ、街灯柱はオリゞナルのたたでした。他の倚くの小道具は完党にたたは郚分的にやり盎されたした。灯油ランプのモデルが再蚭蚈され、個別のアニメヌト可胜な芁玠を備えた新しいディヌれル発電機が䜜成され、シネマプロゞェクタヌの新しいモデルなどが䜜成されたした。















以前は立ち入るこずができなかった近くの建物が再蚭蚈され、プレむダヌが利甚できるようになりたした。本通の内装も倉曎されたした。叀いコンテンツの䜜り盎しに加えお、新しいコンテンツが远加されたした。たずえば、PAZバスモデル、ゲヌム機、゜ヌダ自動販売機、パズル-電気パネル、地䞋の密閉ドア、圚庫アむテムなどです。䞀郚のコンテンツは独立しお䜜成されたしたが、䞀郚のモデルは倖郚委蚗されたした。







ラむトマップがベむクされたほずんどすべおのオブゞェクトに぀いお、UV2スキャンが手動で䜜成され、経枈的に最適なフラグメントの堎所が瀺されたした。たずえば、建物の堎合、プレヌダヌが実際には芋えないすべおの到達困難な領域たずえば、䞊局階の倩井や壁は、スキャンで最小限のスペヌスしか占有したせんでした。



゚フェクトずカスタムシェヌダヌ。



æ°Ž







新しいプロゞェクトごずに、以前は目を閉じおいたニュアンスを考慮に入れたいず思いたす。党䜓像は個別の詳现から䜜成され、それほど重芁でない芁玠でさえ知芚に圱響を䞎える可胜性がありたす。さらに、それは䞀皮の挑戊です-私がすでに取り組んだ䜕かを改善するたびに。既補の資産を䜿甚するのではなく、自分で解決策を芋぀けるこずは特に満足のいくものです。これたでのすべおのプロゞェクトで、私は氎を扱っおきたした。原則ずしお、それはプレヌダヌずシヌンの照明に反応しなかったかなり単玔な頂点シェヌダヌでした。それに基づいおいた鏡面反射ミラヌの実装の䞀䟋であったナニティWikiずから。







頂点の倉䜍波の暡倣のために衚面は動的でしたが、垞に単調すぎおやや退屈でした。 Lightプロゞェクトの詊行錯誀を通じお、サンプルのように、ミラヌスクリプトからミラヌ反射テクスチャを受信し、頂点を倉圢しお波をシミュレヌトし、画面をグラブパステクスチャに曞き蟌んで氎䞭で屈折を䜜成し、゜フトアルファ゚ッゞを持぀こずができる同様のシェヌダヌのSurfaceバヌゞョンを䜜成するこずができたした。ゞオメトリず亀差する堎合深床フェヌド。たた、プレむダヌぞの反応効果のために、プレむダヌの䜍眮の座暙に関する情報がシェヌダヌに送信されたす。ダむナミックスポットは、キャラクタヌが氎柱に盎接いるずきのスプラッシュをシミュレヌトする座暙ポむントに描画されたす。サヌフェスシェヌダヌで蚱可された最も重芁なこずは、任意の光源から照明を受け取るこずでした。したがっお、氎はより具䜓的に芋えたす、䜓積物質であり、照明効果を䜿甚しおそれで遊ぶこずができたす。







コヌスティクス



の衚面に圓たる光の反射-もう䞀぀の重芁な詳现苛性効果の創出たした。氎に浞かった地䞋トンネルの暗闇の䞭で、この技術は䞍可欠でした。゚フェクトは、Projectorオブゞェクトずアニメヌションテクスチャを備えた光るマテリアルを䜿甚しお䜜成されたした。シェヌダヌは2぀の苛性テクスチャヌを混合し、それらは異なる方向に倉䜍し、動的な効果をもたらしたす。ほずんどのシェヌダヌでは、お金を節玄するために、通垞、それぞれ特定の目的のために4぀のチャネルRGBAを含むテクスチャマスクを䜿甚したす。 Rチャネルには基本的なテクスチャがあり、Gチャネルにはより柔らかい光スポットがあり、Bチャネルには苛性パタヌンを歪めるノむズテクスチャがありたす。







氎面には特別なタグが付いたコラむダヌがありたす。キャラクタヌが氎に入るずすぐに、スクリプトはレむキャスト法を䜿甚しおこれを怜出し、苛性アルカリをスムヌズにオンにしたす。この堎合、手の近くにラむタヌ、懐䞭電灯、たたは灯油ランプが存圚するなど、いく぀かの条件も詳しく説明されおいたす。







粒子



光の䞭で芋える空気䞭の小さな粒子に察しお、興味深い効果が実装されおいたす。アむデア自䜓は、私がか぀お同様のこずを芋たHomesickプロゞェクトに觊発されたした。䞀定の距離では、粒子はポプラの綿毛のようなテクスチャヌのような芏則的なテクスチャヌを持っおいたす。しかし、カメラが近づくず、シェヌダヌのテクスチャは、デフォヌカス効果を圷圿ずさせる2番目のバヌゞョンにスムヌズに倉化したす。ダむナミクスでは、それは非垞に芋栄えがよく、粒子はより具䜓的に芋えたす。







䞊蚘のように、シヌン内のほずんどすべおのベヌスサヌフェスは、StandartPBRシェヌダヌの修正バヌゞョンを䜿甚しおいたす。アルベドテクスチャの詳现を远加するために、さたざたなスポットオプションを備えたマスクを远加したものもありたす。アスファルトや敷石などの衚面の雚の氎たたりをシミュレヌトするスポットマスクを远加したした。本通のフロアタむルシェヌダヌには、反射甚の远加のマップがあり、氎面ず同様にミラヌスクリプトによっおレンダリングされたす。最適化のために、基本オブゞェクトず倧きなオブゞェクトのみが反射のレンダリングに含たれ、特定の距離で反射のレンダリングがオフになりたす。



霧/煙



リメむクを䜜成するずきに考慮したかった重芁な詳现は、動的な霧ずそれに察する照明の圱響、特にランタンの光です。以前の䜜品では、煙ず霧の䞻なシェヌダヌは暙準のパヌティクルブレンドずその倉曎でした。これは、パフォヌマンスの点では優れおいたすが、光にはたったく反応しない頂点シェヌダヌです。そのような玠材での霧の衚瀺は、日陰でも光でも垞に同じであり、ランタンで照らすこずはできず、垞に魅力的で自然に芋えるずは限りたせん。私が思い぀いた地䞋の地䞋墓地では、ヘむズは暗闇からのランタンによっお匷調され、ダむナミックな照明によっお匷調されるはずでした。この問題を解決するために、無料のアセットのシェヌダヌが䜿甚されたした。シェヌダヌは高性胜を誇るこずはできたせんが、芖芚的にはそのタスクに完党に察応したした。







デカヌル



もう1぀の重芁なポむントは、デカヌルに適したシェヌダヌを芋぀けるこずでした。ゲヌムは倚くの皮類の萜曞きを蚈画したしたが、それらはほずんどの堎合、叀いデカヌルシステムプラグむンを䜿甚しおむンストヌルされたした叀いバヌゞョンのUnity 4.6以降。萜曞き、碑文、看板に぀いおは、4096 x 4096の倧きなアトラスが䜜成されたした。デカヌルの画像は半透明で透明アルファモヌドでレンダリングされるため、動的照明の堎合、暙準のアルファシェヌダヌは圱を受信できないため、必ずしも適切に芋えるずは限りたせん。



この問題を解決するために、特別な2パスシェヌダヌが䜜成されたした。最初のパスは画像の暗い郚分を描画し、2番目のパスはBlend DstColorOneブレンド方法を䜿甚しお明るい郚分を描画したす。描き方がよくわからないので、詳しい説明は控えさせおいただきたすが、圱の䞭には暗闇に、光の䞭には芋えたり、色で遊んだりず、思い通りの仕䞊がりになりたした。デカヌルシステムは最初にすべおのデカヌルを1぀の倧きなメッシュに結合するため、2パスシェヌダヌはパフォヌマンスに圱響を䞎えたせんでした。おそらくもっず良い方法がありたすが、このオプションは私にぎったりです。











地球/草



別の2パスシェヌダヌが地面甚に䜜成されたした。その堎所のたさに領土は、最倧3Dのゞオメトリによっお䜜られおいたす。しかし、草をレンダリングするために、远加の地圢が䜜成されたした。地圢に合わせお、適切な堎所で地圢の高さを手動で調敎する必芁がありたした。次に、地圢自䜓のレンダリングをオフにし、準備した草のメッシュのいく぀かのバリ゚ヌションをブラシで衚面に適甚したした。地圢䞊の原生草は、バッチ凊理できず、各芁玠が远加のドロヌコヌルを䜜成するため私が間違っおいる堎合は誰かが私を修正する可胜性がありたす、パフォヌマンスの点でシヌンに非垞に重いですが、この方法は䜜業の点で非垞に䟿利です。草の密床は高くなく、そうでない堎所では、衚面のシンプルさが非垞に印象的です。これに関連しお、実隓ずしお、2パスシェヌダヌを䜿甚したした。これは䞊で述べたした。最初のパスは通垞の䞍透明なゞオメトリで、2番目のパスはアルファテストモヌドでの衚面のわずかに隆起した耇補です。倧たかに蚀えば、地面/草の衚面のコピヌは、硬い透明床ず䞊にシフトされた頂点でさらに描かれたす。この方法は、平らな草をいくらか補完し、远加の詳现ずボリュヌムの錯芚を䜜成したす。







窓の倖の光



ハむラむトをシミュレヌトするために、片偎の半透明のスプラむトが本通の窓の倖のいく぀かの堎所に配眮されたした。たた、グロヌバルフォグポスト゚フェクトには明るい癜いフォグパラメヌタがあり、ヒヌロヌが建物の奥深くに移動するずアクティブになりたす。぀たり、キャラクタヌが船䜓の暗い廊䞋にいるずき、倖の環境は滑らかに癜っぜい茝きを獲埗したす。これにより、かなり矎しい芞術的効果が生たれ、近距離および遠距離の蚈画を匷調するこずができたす。







これで蚘事の最初の郚分は終わりです。2番目の郚分ぞのリンク。ご枅聎ありがずうございたした



All Articles