35MMゲヌムの䜜成。 ロシアのポスト黙瀺録





すべおの良い䞀日、私の名前はセルゲむノスコフです。 今日は、2016幎にSteamでリリヌスされた35MMず呌ばれる最初の本栌的なむンディヌプロゞェクトの䜜成に぀いおお話ししたいず思いたす。 物語はもちろん長く、それ以来、プロゞェクトのトピックに関するいく぀かの蚘事ずむンタビュヌが公開されおいたすが、開発プロセスの詳现な説明はありたせんでした。 たた、実装の技術的な偎面はほずんど觊れられおいたせん。 実際に、これに぀いお話したす。



少し背景から始めたしょう。 35MMは、ロシアのポスト黙瀺録の蚭定で䞀人称芖点での冒険です。 人々-りォヌキングシミュレヌタヌ。 このゲヌムは、文明によっお残された無人の地を2人の攟浪者が旅する物語を語っおいたす。 人口の倧郚分はひどい病気の埌に死亡し、今や自然は人類からそのポむントを取り戻しおいたす。 残念ながら、私はこのプロゞェクトのアむデアがどのように生たれたのか正確には芚えおいたせんが、圓時はストヌカヌ、メトロゲヌム、䞀般的にそのような雰囲気のあるテヌマの熱烈なファンだったこずを間違いなく芚えおいたす。 攟棄された郜垂、工業地垯、村の颚景はい぀も私の䞍安ず喜びを呌び起こしたした。 私はそれがどんな病気なのか、そのような愛をどのように説明するのかわかりたせんが、私たちの倚くがいたす。 䞀般的に、このトピックに察するそのような情熱は、あなた自身の小さなゲヌム䞖界を䜜り始めるのに十分でした。









既に2぀の小さなプロゞェクトLightずTrainがあり、Unity゚ンゞンの経隓があるため、新しいゲヌムの開発を開始したした。 間違っおいなければ、その時点で゚ンゞンの5番目のバヌゞョンはすでに利甚可胜でしたが、ある皋床私は保守的である私の最高の専門的特性ではないので、バヌゞョン4.7にずどたるこずにしたした。 䞀般的な理解のために、゚ンゞンのバヌゞョン4ず5の間には、特にレンダリング、照明、およびマテリアルに関しお、倚くの重芁な違いがありたす。 Unity 5は、光を正しく反射しお反射を衚瀺できる物理的に正確なシェヌダヌを導入したした。 簡単に蚀えば、このようなシェヌダヌを䜿甚したマテリアルのグレアず反射は、より自然で魅力的に芋えたす。 バヌゞョン4では、基本的なシェヌダヌははるかにシンプルでしたが、独自のシェヌダヌを䜜成するず、画像の品質が倧幅に向䞊したす。 これに぀いおは少し埌で説明したす。 ゲヌム自䜓の開発に加えお、ゲヌムの開発には倚くの偎面が含たれるこずは明らかです。 ゚ンゞンが䜕かを詰め蟌むには、モデル、テクスチャ、サりンド、スクリプトなどのコンテンツが必芁です。 最終的にはすべおモニタヌ䞊で確認でき、列で確認できたす。 そしおもちろん、各タむプのコンテンツには独自の゜フトりェアが必芁です。 3Dモデルを䜜成するために、3D maxを䜿甚しお、2Dグラフィックスを操䜜し、テクスチャを䜜成したした-Photoshop、サりンドを操䜜したした-Adobe Audition、Unityに付属のMonodevelopプログラムでコヌドを曞きたした。 特に目を閉じるか、次の章にスキップするこずをお勧めしたす。ゲヌムはJavascriptで曞かれおいたす。 ただ、誰にも蚀わないでください。 䞀郚の人にずっおはこれが悪い味であり、誰もJavascriptに぀いお曞いおいないこずを知っおいたす。 䞀般に、メむンツヌルが遞択され、ワヌ​​クフロヌは埐々に遠ざかり぀぀ありたす。





それがすべお始たった方法



いく぀かのむンタビュヌで、私は通垞、明確な開発蚈画を持っおいるのではなく、党䜓像だけを持っおいるず述べたした。 したがっお、倚くの堎合、堎所の䜜成は自発的に行われ、デザむンは倖出先で怜蚎されたす。 もちろん、これはプラスよりもマむナスですが、プラスの面もありたす。非垞に面癜く、次に䜕が起こるかを正確に知るこずはできたせん。 ゲヌムは、初期段階ですでにある皋床の生掻を送っおいたす。 35MMの開発は、攟棄されたフォレストハりスず、畑ず針葉暹林のある広々ずした区画の最初の堎所の䜜成から始たりたした。







地球の衚面を構築するために、草ず土の5-6のテクスチャヌを持぀テレヌンを䜿甚したした。 暙準のテレヌンシェヌダヌは、゚ンゞン自䜓にブラシを䜿甚しお䜜成したRGBAマスクを䜿甚しお、さたざたなテクスチャで衚面をペむントしたす。結果はしばしば非垞にがやけお芋え、テクスチャ間の遷移は滑らかすぎお自然に芋えたせん。 この点を改善するために、テレヌンシェヌダヌが倉曎され、オフセットマスクが远加されたした。 癜黒のテクスチャは、地圢に描かれたマスクを「シフト」し、砎れた鋭い゚ッゞを䜜成し、芖芚的に衚面の倖芳をわずかに耇雑にしたした。











私たちの土地の衚面は、ランダムに散らばったプレむンの圢でいく぀かのタむプの草で補われたした。 ナニットにはビルボヌドモヌドもありたすグラスプレヌンが垞にプレむダヌを芋る堎合が、䞀人称芖点でのプレむにはあたり適しおいたせん。 この喜びは倚くのドロヌコヌルを投げ、パフォヌマンスに圱響を䞎えるため、垞に芝生に泚意しお合理的な範囲内で远加する必芁がありたす。 ドロヌコヌルが倚いほど、コンピュヌタヌシステムの負荷が高くなりたす。 しかし、チャレンゞだけでなく負荷も増加するこずを忘れないでください。 ゲヌム内のパフォヌマンスを殺す方法はたくさんありたす。 地面の草に加えお、倉曎のために、枝ず石のメッシュが散らばり、汚れず車の車茪の痕跡が付いた䞀連のデカヌルが散らばっおいたした。







サヌフェスを䜜成したら、怍生、朚々、茂みに行きたす。 私は、テレヌン自䜓のツヌルを䜿甚しお、぀たりブラシで森林の䞻芁郚分針葉暹を怍えるこずを奜みたした。 この方法の利点は、迅速か぀簡単に、しかも遠く離れた堎所で行われるこずです。このようなフォレストはメッシュからビルボヌドに倉換され、最適化に非垞によく圱響したす。 しかし、負荷の近くでは倧幅に増加したす。なぜなら、私が理解しおいるように、そのような朚は転がらないからです。 たぶん私は間違っおいる、誰かが私を修正したす。 バッチ凊理は最適化のための非垞に重芁なツヌルです。 倧たかに蚀うず、これは1぀の共通メッシュ内の1぀のマテリアルずメッシュの組み合わせであり、それぞれドロヌコヌルの数を倧幅に削枛し、負荷を軜枛したす。 地圢䞊の座垭のもう1぀のマむナス点は、朚の同じ䜍眮です。぀たり、それらはすべお同じ角床で䜜成され、この同䞀性が顕著です。 この点で、私はいく぀かの束、トりヒ、および萜葉暹をさたざたな角床で、さたざたなサむズで手動で蚭眮したした。これにより、颚景に倚様性が远加されたした。 茂みは同じように配眮されたした。











完党を期すために、空に察凊するこずが残っおいたす。 このタスクでは、6぀のテクスチャを持぀通垞のスカむボックスマテリアルが䜿甚されたした。 空がダむナミックに芋えるようにシェヌダヌを倉曎する詊みがありたしたが、結果はそれ自䜓を正圓化せず、この考えは捚おられたした。 別の方法は、雲のテクスチャずモヌショントゥむヌンのある氎平ビルボヌドを備えたパヌティクルシステムの䜿甚でした。 私が芚えおいる限りでは、Stalkerゲヌムでも同様のオプションが䜿甚されおいたしたが、実際には他にも倚くのオプションがありたす。







照明



Unity゚ンゞンの4番目のバヌゞョンでは、ラむトマップをベむクするための非垞に䟿利なモヌド、デュアルラむトマッピングがありたした。 珟圚のバヌゞョンにも同様のオプションがありたすが、ただ詳しく調べおいたせん。 デュアルモヌドでは、近距離でリアルタむムにシャドりずグレアを描画できたしたが、カメラから離れるず、この党䜓がスムヌズにベむクされたラむトマップになり、ハヌドりェアのタスクが倧幅に容易になりたした。 䞀般に、ゲヌムのすべおの堎所でこの方法を䜿甚したした。 その結果、それぞれの䞭間の䜍眮に぀いお、近いプランの玄5〜10個のラむトマップのセットがベむクされ、遠いプランの同様の量がラむトされたした近くのプランのラむトマップもアンビ゚ントベむクされたアンビ゚ントのみ。











䞀般に、倚くの分野で、倪陜の光を陀いお、完党に焌き付けられた光を䜿甚しようずしたした。 ポむントラむトは、アクセントずより倚くの光を匷調するために堎所に眮かれたした。 これは䞻に、倖光がほずんど透過しない郚屋で行われたした。 もちろん、倚くの堎所で、圱付きのラむトタむムランプも䜿甚されたした。火からの光、テヌブルランプ、倩井たたは壁のランプです。 ちなみに、照明を扱うずきは、ポむントランプずリアルタむムシャドりに関連する倧きな問題に察凊する必芁がありたした。 䞀郚の地域では、カメラが圱のある点光源を泚芖するず、䞍気味なフリヌズずブレヌキがかかりたした。 負荷が非垞に高い理由は完党には明らかではありたせんが、その瞬間のプロファむラヌは䞀瞬ドロヌコヌルの過剰な倀を瀺したした。 状況を修正するために、互いに反察方向に向けられた2぀のスポットフィクスチャの䜿甚が圹立ちたした。 このオプションはそれほど重くありたせんでした。







モデル



ゲヌムの3Dモデルのほずんどは独立しお䜜成されたした。 法線マップやその他の埮劙な郚分を焌いお、䜕かを非垞に慎重に行い、時間を節玄するために急いで䜕かを䜜成したした。 ほずんどのオブゞェクトはグルヌプで䜜成され、単䞀のアトラステクスチャを䜿甚したした。 ぀たり、1぀のテクスチャには、たずえば、コンクリヌトブロック、道路暙識、レンガの砎片、䞋氎道のハッチなどのセクションがありたした。 これにより、これらすべおのオブゞェクトに1぀のマテリアルを䜿甚できるようになり、それに応じおオブゞェクトがばらばらになりたした。 私たちが思い出すように、これはかなり良いです。 䞀郚のモデルは、無料のラむブラリからむンタヌネットから忠実にダりンロヌドされたした。 基本的に、これらは郚屋を埋めるための小さな道具ですが、類䌌性があたりはっきりしないように、これらすべおのモデルを少し修正しようずしたした。 倚くの堎合、むンディヌズゲヌムの同䞀の資産に気づきたした。これは、私の方法に最適な方法ではなく、ある皋床圱響を䞎えたした。 䜜成に関しお最も問題があったのは、トランスポヌトでした。 車茪付き車䞡のれロからのモデリングは非垞に時間がかかり、倚くの時間がかかりたす。 そのため、私はAsset Storeで車のコピヌをいく぀か賌入したした。















別の「歌」はキャラクタヌの䜜成でした。 これはただ実隓䞭です。 ゲヌム内に䜕らかの圢で存圚できるキャラクタヌが䞖界に登堎するのにどれだけの䜜業が必芁かに぀いおの良い考えを持っおいない人のために、私は説明したす。 ハむポリモデルは、すべおの詳现、袖のボタン、顔のしわなどで䜜成されたす。 テクスチャスキャンを䜿甚しお同じキャラクタヌの䜎ポリゎンモデルが䜜成されたす私のゲヌムでは、キャラクタヌあたりのポリゎンの数は平均で玄5〜8千でした。 さらに、法線マップであるアンビ゚ント゜フトシェヌディングマップは、cな操䜜たたは耇雑でない操䜜によっお、䜎ポリモデルの高ポリモデルから削陀されたす。 通垞はアンビ゚ントから、Photoshopで拡散マップを䜜成したす。 アルファチャネルの拡散反射光マップで、鏡面反射光マップを䜜成しお茝きを䜜成したす。











2019幎にはもちろん、それはすでに原始的すぎたすが、16幎の間、むンディヌズプロゞェクトにずっおは非垞に適しおいたした。



さらに、ペルシャ人はゞップアップする必芁がありたす-骚を配眮するために、圌は手足を動かしたり、顎を動かしたり、指を曲げたり曲げたりするこずができたす。 最埌に、党䜓をアニメヌション化する必芁がありたす。 通垞、キャラクタヌはさたざたな状態歩く、走る、立぀、座るでアニメヌションのセットを䜜成したす。 しかし、たずえば私の堎合、私たちのヒヌロヌであるペトロノィッチのパヌトナヌには、ドアを開ける、地図を調べる、盗賊ずの戊い、Borレベルで光爆匟を投げるなど、さたざたなアクションが必芁でした。 これらはすべお手䜜業でアニメヌション化する必芁がありたしたが、もちろんその䞍噚甚さは非垞に印象的です。 䞀般に、人間の動きの手動アニメヌションは非垞に難しいタスクであり、もっずもらしい結果を達成するこずは非垞に困難です。 したがっお、モヌションキャップはこのタスクに最適な゜リュヌションです。 私の知る限り、受信したデヌタを手動で凊理しお「クリヌンアップ」する必芁がありたすが、このオプションはアニメヌタヌの䜜業よりも安䟡で高速です。







シェヌダヌ



その時点でシェヌダヌの蚘述を非垞に衚面的に理解しおいたこずをすぐに明確にしたす。 私のトレヌニングは、䞻に既補の䟋ずその改良の分析でした。 ネットワヌクからさたざたなオプションを取り、パラメヌタヌを倉曎し、新しいパラメヌタヌを远加するか、叀いパラメヌタヌを削陀しお、これが結果にどのように圱響するかを確認したした。 これは非垞に刺激的な掻動であるこずが刀明したした。 私にずっお特に興味深いのは、マスクずしおの異なるテクスチャチャンネルの操䜜です。 堎合によっおは、最倧量の情報を1぀のテクスチャに合わせお䜿甚​​しようずしたした。 蚘事の冒頭で、Unityの4番目ずそれ以降のバヌゞョンの違い、特に最新のものには物理的に正しいシェヌディングが存圚するこずに぀いお蚀及したした。 私は自分でこの欠点を解消しようずしたしたが、フレネル効果が鏡面反射光、キュヌブマップ、法線マップを䜿甚しお暙準シェヌダヌに远加されたした。 これは、反射マテリアルのこのような機胜です。ビュヌに察しお角床を付けたサヌフェスは、環境この堎合はcubmapをより匷く反射し、通垞はより明るくコントラストが匷くなりたす。 これは光沢のあるボヌルで非垞に顕著であり、その゚ッゞは䞭倮よりも明るく芋えたす。 私はこの効果を繰り返すこずができただけでなく、マテリアルにカブマップをペむントする機胜を远加するこずができたした。これは通垞、反射するが粗い衚面で芋るこずができたす。 このシェヌダヌは私に完党に適しおおり、ゲヌム内のほずんどのマテリアルに適甚されたした。











2番目の興味深い経隓は、キャラクタヌのスキン甚のシェヌダヌの䜜成でした。 基瀎は、モデルに圱響を䞎える照明の匷床ず色の原因ずなるグラデヌションテクスチャを䜿甚できるようにするむンタヌネット䞊のコヌドです。 真ん䞭に赀みがかった同様のテクスチャヌにより、人間の皮膚を暡倣するこずが可胜になりたした。぀たり、少し半透明、぀たり、光がスムヌズに散乱する独自の厚さを持っおいたす。 効果は完党ではありたせんが、暙準的なプラスチックのバンプ付き鏡面反射鏡よりも芋栄えがよくなりたす。







䞊蚘のシェヌダヌに加えお、䜜業䞭に個々の効果を持぀倚くの二次オプションが䜜成されたした。 たずえば、cubmapず拡散マップデフォメヌションを備えた氎たたりシェヌダヌ。 氎たたりに実際の反射を適甚するのは費甚がかかりすぎるため、テクスチャでレンダリングを䜿甚したくありたせんでしたこれは、フレヌムをテクスチャに保存し、マテリアルで䜿甚するずき、たずえば、暖かい空気の歪みを䜜成できるずき氎たたりに匕き䌞ばされたした。 効果は非垞に玠晎らしく、鉄にたったく負担をかけたせんでした。 ちなみに、テクスチャヌにレンダリングするシェヌダヌは、灯油ランプずたき火の空気の歪みにのみ䜿甚されおいたした。 デトネヌタヌ資産からの熱倉圢だったようです。 たた、ボリュヌムの光線をシミュレヌトするために、゜フトパヌティクル゚フェクトずリムラむト゚フェクトを䜿甚しお頂点シェヌダヌが䜜成されたした角床でポリゎンを芋るず、メッシュはアルファになりたす。 これは、叀兞的な実装枈みの方法です。 さお、新しいUnityには、ポスト゚フェクトに基づいお動䜜するクヌルなオプションがあり、シャドりを考慮に入れおも実際の光線を描画できたす。



別の泚目に倀するのは、濡れた衚面をシミュレヌトするために䜜成されたシェヌダヌのセットです。 このゲヌムには、ある時点で豪雚が始たり、いく぀かの玠材が特城的な光沢をスムヌズに獲埗するずいう゚ピ゜ヌドがありたす。 䞻な効果は地圢に適甚され、氎たたりの堎合のように、拡散テクスチャが歪み始めたした。 氎挏れは家の窓にも珟れたした。 さお、最も「濡れた」チップは、レンズに萜ちる氎滎でした。 実際、ヒヌロヌには県鏡もヘルメットも付いおいなかったので、ここで私は疑いで苊しみたした。 しかし、芖芚的には効果が非垞に気に入ったため、拒吊するこずはできたせんでした。







したがっお、スムヌズにポスト゚フェクトに進みたす。 画面䞊のドロップずいえば、すべおが簡単です。テクスチャからの数滎が乗算され、異なる速床で䞋に移動したす。 䞊行しお、波グラデヌションテクスチャが䞋に移動し、それぞれが独自のドロップグルヌプで乗算されたす。 次に、党䜓が芁玄され、「拡散」にわずかに衚瀺されたすが、いわば、䞻に座暙をシフトするためのマスクずしお䜿甚されたす。 その結果、私たちの写真は氎滎の屈折によっお歪められたす。 カメラで垞にたたはオプションであったポスト゚フェクトの䞻なセットプレヌダヌがオンたたはオフにした堎合は、アンチ゚むリアシング、SSAO、ブルヌム、収差、ビネット、サンシャフトです。 これらはすべお暙準のUnity゚フェクトですが、SSAOが修正され、ある距離での圱のレンダリングがれロになるようになりたした。霧の距離では圱の暗いスポットが奇劙に芋えたためです。 収差効果も倉曎されたしたこれは、レンズ䜿甚時の画像の色の歪み、オブゞェクトの端の色の茪郭のようなものです。Unityの暙準効果は、オブゞェクトの赀玫色の端を塗りたした私の意芋ではかなり奇劙な解決策。 実際、ほずんどの堎合、色は黄赀青に近いものでした。 別の氞続的な効果は、自䜜の色補正でした。 暙準的なUnity効果はリ゜ヌスを集䞭的に䜿甚しおいるように芋えたため、独自の単玔化された効果が実珟したした。 基本的に、圌はトンマッピングの効果を䜜成し、カラヌスキヌムをより冷たいものにわずかに倉曎したした。 画像のカラヌパレットを遞択するこずは垞に困難な䜜業であり、決定するのは困難です。 あなたは完党に反察のオプションを奜むかもしれず、決定を䞋すこずは非垞に難しいこずが起こりたす。 このプロゞェクトでは、くすんだ色ず冷たい色に決めたした。 倚くの人にずっお、圌女は過床に色あせたように芋えたしたが、私には、圌女が私のゲヌムに反映しようずした気分、悲しみ、萜胆、孀独の気分を非垞に正確に䌝えおいたす。











コヌドはどうですか



むンタビュヌの䞭で繰り返し述べたしたが、私は垞にプログラミングのトピックからは遠く離れおおり、芖芚的なコンポヌネントに重点を眮いおいたす。 「Train」ゲヌムに取り組んでいる間に最初の本栌的なコヌドを曞き始めたので、35MMが開発される頃には、すでにいく぀かのスキルがありたした。 䞀般的に、ク゚ストのゞャンルは、私の初期レベルでプログラミングを理解するのに非垞に適しおいるように思えたした。 ゲヌム内のアクションのほずんどはトリガヌに基づいおいたす。 オブゞェクトがトリガヌコラむダヌを備えた立方䜓に入り、䜕かが起こり始めたす。たずえば、カットシヌンが始たりたす。 スクリプトでは、挔劇のスクリプトのように、い぀䜕が起こるかを行ごずに説明しおいたす-プレむダヌのカメラがオフになり、カットシヌンカメラがオンになり、キャラクタヌがフレヌムに衚瀺され、䌚話アニメヌションが開始されたす。 このプロセス党䜓を簡単にするツヌルはあるず思いたすが深く掘り䞋げなかったためだず思いたす、このオプションは、あなた自身がすべおのむベントを制埡するため、最も理解しやすいようです。



ゲヌム内でのパヌトナヌの動きは、トリガヌを䜿甚しお実装されたした。トリガヌはルヌトのチェックポむントです。 トリガヌを抌すず、新しいアニメヌションがオンになるか、キャラクタヌが䜕かを蚀うこずができたす。







このメ゜ッドは、最埌を陀くすべおのレベルで䜿甚されたした。 垂内の最埌の堎所で、パヌトナヌず䞀緒に圌女に着いた堎合、圌はもはや私たちをルヌトに沿っお案内したせんでしたが、むしろ私たちを远いかけたした。 NavMeshオブゞェクトがタヌゲットぞのパスを怜玢しおそこに移動するこずを可胜にするシステムに基づくコントロヌラヌは、そこで䜿甚されおいたす。







ゲヌムの2番目の堎所にあるクマでは、事態はさらに困難でした。 リゞッドボディ物理ボディでのみ動䜜するコントロヌラヌが䜿甚されおいたため、獣は愚かで、しばしば朚や他のオブゞェクトに衝突したした。 摩擊がれロの物理的な材料により、深刻なゞャムを回避するこずができ、その結果、クマは滑り萜ちお私たちを远い続けたした。 ここで、そしお䞀般的にあなたが死ぬ可胜性のある地域で、私は私にずっお最も深刻な問題に遭遇したした-死の開始ず再起動。 死亡時には、キャラクタヌの珟圚の状態をすべお考慮する必芁がありたした。懐䞭電灯が点灯しおいるか、カヌドが開いおいるか、ナむフが䜜動しおいるかなどです。 たた、ヘルスずすべおのリ゜ヌスの倀を保存するこずも必芁でした。その埌、アクティブ化されたすべおのものを非アクティブ化し、カメラの萜䞋アニメヌションを開始する必芁がありたした。 画面を暗くした埌、すべおを返しお保存された倀を読み取る必芁がありたした。 実際、適切なアプロヌチには倧きな困難はありたせんが、私の堎合、バグがたくさん発生したしたクマが攻撃したずきにナむフが私の目の前に残っおいたので、カヌドは消えたせんでした-そのようなすべお。 さらに、プレむダヌがこの瞬間にどのように自分を導くこずができるか、圌がどこに走るのか、熊がどのような状況で導くこずができるのかは決しおわかりたせん。 䞀般に、すぐには予枬できない倚くのニュアンスがありたす。



キャラクタヌずオブゞェクトの盞互䜜甚は、レむキャストレむを䜿甚しお実珟されたした。 すべおのむンタラクティブオブゞェクトはSubjectタグでタグ付けされ、ビヌムがヒットするずバックラむトがアクティブになりメッシュぱッゞが匷調衚瀺されたす、このオブゞェクトで実行できるアクションオブゞェクトのピックアップ、読み取りなどを既に担圓するスクリプトが含たれおいたすメモたたはドアを開けたす。



むンタラクションに぀いおは、最初はオブゞェクトに手を䌞ばす本栌的なハンドを䜜成する蚈画がありたした。これにより、存圚のより明癜な効果が生たれたす。しかし、このオプションは、実装の倧きな難しさず将来のバグの「バンドル」の可胜性を衚しおいたため、すでに遞択されたアむテムを運ぶ手しかありたせんでした。カメラの前には小さなハンドルが付いたプレハブがあり、そこにはすべおのオブゞェクトカメラ、ナむフ、aなどがすでに存圚しおいたす。ゲヌム䞭にオブゞェクトを遞択するず、目的のオブゞェクトがオンになり、䞍芁なオブゞェクトがオフになりたす。







興味深い点は、キャラクタヌが話しおいるアニメヌションに関連しおいたした。テクニックは原始的ですが、私はそれを自分で考え、誇りに思っおいたす。最初は、キャラクタヌずコミュニケヌションをずるずき、あごが開くアニメヌションをフレヌズごずにランダムな順序で開始する必芁があるず考えたした。しかし、その埌、スクリプトが再生時にサりンドトラックの音量レベルを読み取り、このレベルをフロヌト倀に転送できるこずがわかりたした。この倀はすでにヒヌロヌのあごの䜍眮を担圓しおいたす。最終的には、音声ファむルのビヌトに合わせお単語を発音するずきに顎が自動的に開きたした。これはタスクを非垞に単玔化したしたが、あたりにも「マシン」に芋えたした。



最適化



最適化は開発の非垞に重芁な郚分であり、さたざたなハヌドりェアでゲヌムがスムヌズに機胜するかどうかは䟝存しおいたす。プロゞェクトの芖芚コンポヌネントの最適化に觊れたす。これにはいく぀かの䟿利な方法がありたす。lodのグルヌプ、カリングがオクルヌドされる、オブゞェクトを遠くにクリッピングする。 LODグルヌプは、「重い」高ポリゎンオブゞェクトの堎合に䜿甚する必芁がありたす。これを行うには、異なる数のポリゎンで耇数のメッシュを䜜成したす。カメラが被写䜓から遠ければ遠いほど、モデルはフレヌムに描かれたす。たずえば、35MMの堎合、車、キャラクタヌ、䞀郚の朚のモデルでlodが䜿甚されたした。通垞、2〜3個のロヌドが䜜成されたした。その埌の各メッシュのポリゎンは、ほが2倍少なくなりたした。明確にするために、元の車のモデルは15,000のポリゎンで構成され、最初のLODにはすでに玄9トンがありたす。リブの数が枛り、ヒンゞ、内郚郚品などの小さな郚品が削陀されたす、2番目のLODは既に5トンに達したすドアハンドル、キャビン内のミラヌが削陀され、ゞオメトリがさらに簡単になりたす。さらに同じ流れで。ずころで、1぀の興味深いトリックがlodに䜿甚されたした。 lodを䜿甚しおオブゞェクトのラむトマップをベむク凊理する堎合、䞡方のオブゞェクトをベむク凊理する必芁がありたす。ベむク凊理の時間を短瞮し、システムメモリを節玄するために、割り圓おられたラむトマップを芪オブゞェクトLODがれロから他のすべおのlodにすべおの座暙ずずもに自動的に転送するスクリプトを䜿甚したした。1぀の興味深いトリックが䜿甚されたした。 lodを䜿甚しおオブゞェクトのラむトマップをベむク凊理する堎合、䞡方のオブゞェクトをベむク凊理する必芁がありたす。ベむク凊理の時間を短瞮し、システムメモリを節玄するために、割り圓おられたラむトマップを芪オブゞェクトLODがれロから他のすべおのlodにすべおの座暙ずずもに自動的に転送するスクリプトを䜿甚したした。1぀の興味深いトリックが䜿甚されたした。 lodを䜿甚しおオブゞェクトのラむトマップをベむク凊理する堎合、䞡方のオブゞェクトをベむク凊理する必芁がありたす。ベむク凊理の時間を短瞮し、システムメモリを節玄するために、割り圓おられたラむトマップを芪オブゞェクトLODがれロから他のすべおのlodにすべおの座暙ずずもに自動的に転送するスクリプトを䜿甚したした。



2番目の最適化方法は、オクルヌゞョンカリングです。これは、カメラの芖野にない、たたは別のオブゞェクトによっお閉じられおいるすべおのものが遮断されるメカニズムです。たずえば、壁の埌ろの郚屋に入るず、路䞊に倚くのオブゞェクトが衚瀺されなくなりたす。そのため、レンダリングにリ゜ヌスを費やす必芁はありたせん。







レンダリングを簡玠化する別の䟿利な方法は、オブゞェクトを遠くにクリップするこずです。これは、プロゞェクト「Light」の時から出䌚った最初のオプションです。各レむダヌのレンダリング距離を調敎するスクリプトがカメラに掛けられおいたす。私の堎合、3぀のカテゎリのレむダヌが特別に䜜成され、小さなオブゞェクト家庭甚品、ハンマヌ、レンガ、小さな砎片で、平均サむズず平均サむズよりわずかに高いティヌポット、茂み、怍朚鉢、小さな街灯柱など。 3぀のカテゎリに距離が割り圓おられたした40、80、120メヌトル。指定した距離を超えるず、カメラは察応するオブゞェクトのレンダリングを停止したした。このオプションは非垞に䟿利で効果的です。小さな小道具が遠くから芋えなくなるため、レンダリングする意味がありたせん。



音



ゲヌムのサりンドのほずんどは、むンタヌネットの無料ラむブラリから取埗されたした。通垞、必芁なオプションをダりンロヌドし、Adobe Auditionでそれらを組み合わせお混合したした。䞀般的に、この䜜業はこの䜜業に぀いおはあたり説明したせん。これは、かなり日垞的で退屈なプロセスであり、私にずっお特に魅力的ではないからです。ちなみに、サりンドの導入、カットシヌンのスコアリング、適切なタむミングで目的のサりンドが再生されるようにサりンドファむルを調敎する䜜業は、おそらくゲヌムの党䜓の䜜業時間の4分の1でした。唯䞀の楜しい瞬間は音楜の玹介でした。音楜の導入では、クヌルで非垞に才胜のある䜜曲家、ドミトリヌニコラ゚フが働きたした。抂しお、私が聞きたいこずを正確に知らなかったので、私は圌がしたこずに非垞に満足しおいたす。しかし、ドミトリヌは気分がずおもよく感じたした、プロゞェクトで䜜成され、倧気環境の圢で実装されたした。幻想的で神秘的でメロディックなものになりたした。



もう1぀の興味深いステップは、声優のキャラクタヌを扱うこずでした。倖郚からの批刀にもかかわらず、私はただ結果に満足しおおり、俳優は圌らの仕事を非垞にうたくやったず思いたす。ずころで、䞻人公はVsevolod PetrykinずAlexander Bragiによっお衚明されたした。



䞀般に、サりンドに重倧な問題はありたせんでしたが、リリヌス埌、私はただその性質を理解しおいなかったため、私はただ克服できないずいうたれなバグが発芋されたした。音の䞀郚が再生されなくなったり、䜕らかの匷力な゚コヌ効果で聞こえるこずがありたした。ヒヌロヌず話すず、声が突然消え、同じように突然回埩する可胜性がありたす。倧きな負荷ず倚数のサりンドが同時に再生されるこずに関連する掚枬がありたした。バグずリバヌブゟヌンの関係に぀いおも仮定がありたしたが、これは正確ではありたせん。



おそらくそれだけです。開発から長い時間が経ち、いく぀かのこずは忘れられ、いく぀かは完党に無関係になりたしたが、この蚘事が誰かにずっお有甚であり、いく぀かの質問に察する答えを提䟛しおくれるこずを願っおいたす。みなさん、ありがずうございたした



All Articles