ラむトリメむクの開発履歎。パヌト2





読者の皆さん、こんにちはThe Light Remake開発に関する蚘事の最初の郚分では、ゲヌムを新しいバヌゞョンのUnityに移怍するプロセスの抂芁を説明したした。䜿甚されおいるシェヌダヌず゚フェクト、ラむトを操䜜するために実装された゜リュヌション、䜜成された远加コンテンツ、叀いバヌゞョンのコンテンツが䜜り盎されたものなどに぀いお少し話したした。第2郚では、開発の他の偎面、埌遺症、プロゞェクト構造、サりンドの操䜜、最適化、その他のニュアンスに぀いお説明したす。



パヌト2



埌遺症



プロゞェクトを新しい゚ンゞンに転送するずきに、以前のバヌゞョンのUnityで䜿甚されおいたポスト゚フェクトを実装する叀い方法を残すこずが決定されたした。圌らず䞀緒に仕事をするこずは私にずっおより理解しやすく、画像凊理のプロセスそのものに必芁な倉曎を加えるこずができたした。



ガンマ



元のゲヌムには倚くの埌遺症はありたせんでしたが、最も顕著なものの1぀は色ず明るさの補正でした。それから私はなんずか心地よい癜っぜい茝きずややクヌルな配色をランダムに達成するこずができたした。写真は察照的で、堎所の玠晎らしい雰囲気を匷調しおいたした。芖芚的なスタむルは、圓時のバトルフィヌルド3のカラヌパレットをいくらか思い出させたした。それは私には非垞に幞運な偶然のように思えたした。



興味深いニュアンスは、埌で元のゲヌムの埌で、この効果を完党に繰り返すこずができなかったずいうこずです。画像を元のように芋せない埮劙な点が垞にありたした。この点で、私はリメむクのカラヌスキヌムをより暖かく、よりポゞティブなものに倉曎するこずにしたした。緑がより明るく衚珟力豊かになり、蒞し暑い倏の日をより連想させる雰囲気になりたした。ボヌナスずしお、ゲヌムを完了した埌、オリゞナルず同様に色補正をオンにする機胜を远加したした。











䜓積光



このリメむクで非垞に重芁な芁玠は、光に関連する埌遺症です。 Unityの叀いバヌゞョンには、非垞に優れたSun Shaft3D効果がありたした。ただし、シヌン内の1぀の光源にしか関連付けられないため、その機胜は制限されおいたした。



いく぀かの点で、非垞に楜した䜓積照明効果容積ラむトが私の目を匕きたしたこれにより、さたざたな゜ヌスから発生する可胜性のある、非垞に優れた高密床のグロヌず光線を䜜成できたす。シヌンの雰囲気がよりボリュヌムになり、オブゞェクトが空気の軜いヘむズに沈み始め、それは私に倧きな感銘を䞎えたした。唯䞀の欠点は、効果のリ゜ヌス匷床が高いこずでした。それでも、それを䜿甚するこずにしたした。ボリュヌムラむトのおかげで、シヌン党䜓で倪陜から心地よい光を䜜り出すこずができたした。たた、ゲヌム開始時の廊䞋やスズメのいる郚屋など、特定の堎所で神秘的な指向性の光線を䜜り出すこずができたした。この効果は、倜に光る街灯柱のアクセントを匷調するためにも䜿甚されたした。プロゞェクタヌを䜿った゚ピ゜ヌドでは、ボむラヌ宀で窓からの光を増幅し、キャラクタヌが光に昇る最埌のシヌンで。







SSAOずSSR



他の最も重い効果はSSAOAmbient Occlusionです。これは、コヌナヌや衚面の䞋に゜フトなシェヌディングを䜜成したす。 SSRScreen Space Reflectionsも远加され、開発段階でも倚くの問題がありたした。 SSRは、光沢のある衚面での反射をシミュレヌトし、タむルや金属などでの反射を実珟したす。問題は、その圱響が非垞に倧きく、ハヌドりェアのFPSがほが半分になったずいうこずです。ポスト゚フェクトコヌドを操䜜するこずで、蚈算の品質をわずかに䜎䞋させ、パフォヌマンスをわずかに向䞊させるこずができたした。䞀般に、フレヌムレヌトは蚱容範囲内になりたしたが、䞀郚の条件Vsyncが有効になっおいる堎合などでは、SSRにより、キャラクタヌが移動したずきに定期的なフリヌズずゞャヌクが発生したした。







その他



リストされた効果に加えお、プロゞェクトはビネット、色収差、トヌンマッピング、アンチ゚むリアシング、グロヌバルフォグずブルヌムも䜿甚したす。最適化のために、ビネット、収差、トヌンマッピングが1぀のプロセスに統合されおいたす。







ちなみに、今、グラフィックスを扱うずき、オブゞェクトの䞋の察照的な圱を匷調し、オブゞェクトの衚面に反射を衚瀺し、空䞭の芖点を匷調するために颚景を扱うずきに地平線にヘむズを適甚するように教えられたアヌトスクヌルで勉匷した私の個人的な経隓をよく思い出したす。今では、それがすべおSSAO、SSR、およびグロヌバルフォグであったこずがわかりたした。



䜿い方



元のプロゞェクトは文字通り膝の䞊に組み立おられたした。圓時、私にはプログラミングのスキルがなく、ゲヌムのすべおの機胜はいく぀かの簡単なスクリプトに基づいお構築されおいたした。䞻なものは、暙準のUnityアセットで芋぀けたActivateトリガヌスクリプトでした。すべおの機胜は、キャラクタヌがトリガヌに入り、特定のオブゞェクトをオンたたはオフにし、必芁なアクションを匕き起こすずいう事実に基づいおいたした。保存やゲヌム内の蚭定に問題はありたせんでした。



システム



もちろん、リメむクを実装するには、ゲヌムシステム党䜓制埡システム、保存、蚭定、ゲヌム内の仕組みを最初から䜜成する必芁がありたした。䞀般的に、プロゞェクトシステムの有胜な構築は私にずっおただ難しい仕事です。通垞、私は耇数の子オブゞェクトを持぀基本システムオブゞェクトを䜜成したす。それぞれが独自の機胜グルヌプを実行し、すべお盞互接続されおいたす。



ゲヌムは基本的に1぀の堎所で構成されおいるため、シヌン、プレハブ、コンポヌネントの読み蟌みを気にせず、必芁なものをすべお1぀のメむンシヌンに配眮したした。必芁なものすべおを管理し、蚭定を切り替え、ゲヌムを保存しお保存されたデヌタを読み取り、ゲヌムのルヌトにある特別なファむルからサブタむトルずメモのテキストを読み取るなどのコントロヌラヌが䜜成されたした。以前のゲヌムず同様に、実装を容易にするために、チェックポむントで保存システムを䜿甚するこずが決定されたした。この堎所には、ドア、ゲヌムプレむアむテム、灯油ランプなど、数十のむンタラクティブオブゞェクトが含たれおいたす。保存ごずに、通垞はInt倉数であるオブゞェクト状態識別子を蚘録する必芁がありたす。たずえば、ドアが閉じられ、キヌでロックされおいたすDoorOpen-o、DoorLocked-1。この分野での私のスキルはやや具䜓的で衚面的なものであるため、プログラミングのトピックに぀いおは詳しく説明したせんが、自分のプロゞェクトを実装するには十分です。



2぀の決勝戊



私にずっお興味深いタスクは、終了オプションの1぀を達成するための仮想スコアリングの実装でした。リメむクのゲヌムプレむにチャレンゞの芁玠を取り入れたかったのですが、このアむデアをゲヌムのメむンシンボルである光ず結び付けるずいうアむデアが浮かびたした。いく぀かのパラメヌタによっお呚囲光レベルを分析するカりンタを䜜成するこずが決定されたした。ゲヌムの終了は、プレむダヌが明るい堎所たたは倪陜の䞋にいる時間によっお異なりたす。最初の段階は、シヌンに配眮された光プロヌブずその茝床レベルから情報を収集するこずです。このパラメヌタヌは平均に倉換され、float倉数に曞き蟌たれたす。







さらに、スクリプトは、近くに远加の光源ランプ、窓からの光、スむッチがオンになっおいるランタン、手元のラむタヌなどの存圚を考慮に入れたす。条件の1぀が存圚するず、すでに蚈算された光むンゞケヌタヌに特定の倀が远加されたす。そしお最埌に、盎射日光はキャラクタヌに最も匷力な圱響を及がしたす。レむキャストはキャラクタヌの倪陜光源から撮圱され、プレヌダヌが倪陜の䞋にいるかどうかをシステムに通知したす。



これらの倀はすべお合蚈され、カりンタヌによっおカりントされたす。カりンタヌは、ゲヌムの終了時にファむナルがどのようになるかを決定したす。プレむダヌが盎射日光の䞋でオヌプンスカむをめったに蚪れず、ランタンずラむタヌをめったに䜿甚しない堎合、最終的なパラメヌタヌは䜎くなりたす。システムは垞に照明のレベルを正確に決定するわけではありたせんが、䞀般的にはそのタスクに察凊したす。デバッグのために、そしお远加の芁玠ずしお、キャラクタヌの手の金属パむプに反射ペむントのスポットがありたす。これは照明の指暙です。



サブタむトルずロヌカリれヌション



リメむクでは、ロヌカリれヌションぞの新しいアプロヌチず、䞀般的にはテキストずメッセヌゞの衚瀺が考案されたした。より正確には、このアプロヌチは以前に第7セクタヌプロゞェクトで䜿甚されおいたしたが、内容ははるかに少なかったです。 hmlドキュメントにデヌタを保存する方法が基本ずしお採甚されおいたす。ロヌカリれヌション甚のすべおのテキスト情報は、最初はゲヌムのルヌトにあるxmlファむルに保存されたす。メッセヌゞはグルヌプに分けられ、個別にタグ付けされ、特定のカテゎリず特定の蚀語に属したす。改行には、文字*を䜿甚し、新しいメッセヌゞを開始するこずにしたした。







適切なタむミング蚀語を遞択しおシヌンを開始するずきに、コントロヌラヌはすべおのテキスト情報を読み取り、それを行ず個別のグルヌプに分割し、䞀皮のラむブラリヌたたは蟞曞に曞き蟌みたす。次に、個々のスクリプトがこの情報を読み取りたす。たずえば、メニュヌを開いたり、画面でサブタむトルをアクティブにしたりしたす。このシステムは私には個人的に䟿利で、最も重芁なこずに理解できるように思えたした。新しい蚀語を簡単に入力し、既存のテキストに倉曎を加えるこずができたす。



音



基本的なサりンドの䞀郚は、元の゜ヌスから匕き継がれおいたす。アンビ゚ント、鳥のさえずり、映画プロゞェクタヌの音など。プロゞェクトの認識を維持するために去るこずが決定されたした。ただし、倚くの新しいコンテンツが必芁でした。キャラクタヌ自身の音、ステップ、掻性化されたオブゞェクト、特定の瞬間のヒヌロヌの呌吞、ハヌトビヌトの効果などが远加されたした。呚囲の音のセットにさらに倚様性が远加され、バッタの鳎き声、萜䞋する物䜓のランダムな音、ドアを閉める音が远加されたした。ちなみに、暑い倏の日の雰囲気がずおも涌しい、蝉やバッタの音を加えるために、新しいハヌフラむフアリックスの颚景に觊発されたした。しばらくの間、YoutubeでCity17のアンビ゚ントレコヌディングを聎いたり芋たりしお楜しんだ。



ほずんどの音は無料の図曞通から借りたものです。フラグメントを組み合わせたり、゚フェクトを適甚したり、速床を倉曎したりしたした。



サりンドトラックの䜜成は、責任ある骚の折れる䜜業の局党䜓になりたした。元のプロゞェクトの䜜曲はラむセンスされおいたせんでした。それは、Ludovico Einaudi、䜜曲家のThomas Newman、そしおゲヌム「Afraidofmonsters」のOSTによる䞀連のトラックでした。それにもかかわらず、私たちは通垞、初めお聞いたものの魂に浞りたす。たずえば、少なくずも私にずっおは、トラックのオリゞナルはリミックスよりも心地よいように芋えるこずがよくありたす。この堎合、新しいコンポゞションを䜜成するずきは、元のトラックのスタむルず雰囲気を維持したかったのです。以前に35MMゲヌムに取り組んだ䜜曲家のDmitryNikolaevは、このタスクで玠晎らしい仕事をしたように思えたす。特に、講堂での映画䞊映䞭に響いたダむナミックな構図の新しい芋方に感銘を受けたした。トラックは元の゚ネルギッシュで少しサむケデリックなスタむルを保持しおいたす、新鮮に聞こえ始めたしたが、認識できたした。ちなみに、映画自䜓も倧幅に改蚂され、倚くの新玠材が含たれおいたした。ビデオのコンテンツは、著䜜暩䟵害を避けるためにより慎重に遞択され、䞀郚のフラグメントは独立しお䜜成されたした。



リンクは、元の2012ゲヌムで䜿甚された元のビデオを瀺しおいたす。







ゲヌム内での䌚話はありたせんが、声を出す堎所がありたした。レコヌディングは、以前に35MMプロゞェクトに参加し、䞻人公のペトロノィッチに声をかけたVsevolodPetrykinによっお支揎されたした。圌のスピヌチは、飛行機が珟れた瞬間のラりドスピヌカヌから、ミサむルの発射の゚ピ゜ヌドの受話噚から、そしお本通の2階にあるラゞオで聞くこずができたす。



最適化



最適化は、リメむクの䜜業で最も苊痛なトピックずタスクの1぀になっおいたす。以前に叀いバヌゞョンのUnity4.6で䜜成したほずんどすべおのプロゞェクトは、ハヌドりェアの負荷の点で非垞に単玔でした。いく぀かの堎所で私のGTX970で35MMを再生するず、かなり耇雑で忙しいシヌンで200〜300fpsが埗られたした。゚ンゞンのさらに以前のバヌゞョンで構築された元のラむトは、さらに高いFPSを瀺したした。ただし、Unity 2017に切り替えるず、フレヌムレヌトが2〜3倍䜎䞋したした。シヌンがはるかに耇雑になり、光ず反射の誀算、远加の埌遺症などが远加されたこずは明らかです。しかし、パフォヌマンスがこれほど劇的に䜎䞋するずは思っおいたせんでした。キャッチは、シヌンからほずんどすべおのコンテンツを削陀した埌でも、私のFPSが200〜300を超えなかったこずです。これは半分空のステヌゞです、カヌル䞀郚のゞオメトリの簡略化、Lodグルヌプの䜜成、オクルヌゞョンカリングの蚭定など、倚くの䜜業が行われたした。







たた、スクリプトを䜿甚しお、カメラに特定のレむダヌのクリッピング距離を割り圓おたした。実装には、Unityマニュアルの䟋を䜿甚したした。異なるサむズのオブゞェクトが別々のレむダヌに割り圓おられ、カメラが離れすぎるずレンダリングが停止したす。猶、ゎミ、朚の砎片、本などの小さな物䜓は、20〜30メヌトル埌に切り萜ずされたす。倧きいもの-60-80以降。䞊蚘のすべおの察策により、Drawcallの数が倧幅に削枛されたした。平均しお、シヌン内のドロヌコヌルの数は800〜2000DCの範囲です。フレヌム内のポリゎンの数は100䞇を超えたせん。







ルミネアクリッピング



最適化の䞀環ずしお、2〜3秒ごずに、灯油ランプなどの小さな動的光源たでの距離を決定する特別なスクリプトが䜜成されたした。カメラがランプから取り倖されるず、スクリプトはシステムに䞍芁なプロセスをロヌドしないようにランプをオフにしたした。たた、キャラクタヌが地䞋に降りるず、日光の源が消えたした。これにより、DrawCallの数が倧幅に削枛されたした。



詳现はほずんどありたせん



  • 地䞋の廊䞋では、氎が滎るコンクリヌトの䞋氎道のシャフトの䞋に立っおいるず、画面キャラクタヌの目/グラスに曇った滎が珟れるのを芋るこずができたす。シンプルに-ヒヌロヌがトリガヌをヒットし、カメラが䞊向きになるず、泥だらけのグラブパス玠材を䜿甚したパヌティクルシステムのプレハブがオンになりたす。たた、この瞬間、カヌドを手に取るず、カヌドの衚面に氎滎が芋られたす。






  • . . « », . . , .






  • , .


  • , , .






  • . “STALKER ” , . , , . , . , / .


  • , — 3 . , , . . .






  • , Half Life Alyx, . , . , . , «», . .






  • , , . , . , Graphics.DrawMeshInstancedIndirect .
  • . , , .








蚘事からわかるように、独自のプロゞェクトを開発するこずは非垞に骚の折れるプロセスです。これらは眠れない倜、解決策の絶え間ない探求、むンスピレヌション、敗北、そしお勝利の探求です。しかし、それは倧きな喜びず自己実珟の感芚をもたらしたす。これは単なる仕事ではなく、生き方だず思いたす。私たちの意識は玠晎らしく、時には珟実ず比范できない玠晎らしいものを生み出すこずができたす。誰の頭蓋にも宇宙党䜓があり、これは玠晎らしいこずです。映画であろうずコンピュヌタヌゲヌムであろうず、この宇宙があなたの掻動を通しお䜕らかの圢で衚瀺されるこずができるのは玠晎らしいこずです。それぞれの䜜品は個人的なものであり、ハヌドで疲れ果おた仕事を通しお䜜成されたものであり、たず第䞀に自分自身にずっお非垞に重芁で䟡倀のあるものです。



幞運、創造的なむンスピレヌション、そしお高いFPSをお祈りしたす。



All Articles