ぺやろぐ

ぺやろぐ

焼きそばよりチャーハンが好き。

【steam】Colony Survival : 照明/テクスチャガイド(公式ブログ翻訳記事)

人気記事セレクション

スポンサーリンク

照明の語源って、「Show me」から来てるの知っていましたか?
どうも、ぺやんぐ(@peyangu485)です。

はい、嘘です。
今回は、11/23分の記事です。

steamcommunity.com




翻訳

先週は食料品店の力学に焦点を合わせました。
今週は幸福アイテムの背後にある力学に焦点を当てました。
すべての幸福アイテムは3つのステータスを取得します。

食品の場合:

  • 食品の価値/カロリー:どれだけの飢餓を満たす
  • 幸福:コロニストが食べ物を食べることからどれ程幸せになるか
  • 金額:VATの基準となる金額。

ジャガイモは安くて、幸福はほとんどないがカロリーは多いが、スパイスはカロリーは少ないが幸福と付加価値は高い。

すべての食品に適用される大きなスライダが1つあります。
「配給スライダー」。
コロニストが1日に消費する食糧の量を設定します。
あなたは、それぞれの食べ物アイテムを「計量」して、食べ物のどの部分がその食べ物タイプから成っているかを判断することができます。
たとえば、パンの重さが「10」、ベリーの「5」の場合、1日のカロリーの66%はパンとベリーから33%となります。

非食品の場合、食品の価値は「その商品がどれだけ幸せをもたらすか」と置き換えられます。
私たちが毎日食べるものがいくつかあります。
電気、インターネット、水。
トイレットペーパー、ガソリン、練り歯磨きなど、もう少し長い時間単位で交換する必要があります。
そして、時計、冬のコート、車など、他のアイテムは長年続くでしょう。

すべてのコロニストに新しいスマートフォン(またはより歴史的な選択肢のための時計)を使って日々のパッケージを届けても意味がありません。
しかし、1つのスマートフォンと365x3000カロリーの年1回のパッケージも適切ではありません。
したがって、「幸せ時間」の値は、毎日の要件を適切なレベルに調整します。
あなたが800人のコロニストを持っていると想像して、時計は200日間続くでしょう。
これは1日4クロックを生成しなければならないことを意味します。
それは合理的かつ現実的な結果のようです。

これらのプロセスを現実のものにするために、多くの作業がバックグラウンドで行われました。
アイテムの調整、新しいシステムの作成、新しい値の保存、サーバーへの対処方法の教え方。
悲しいことに、素晴らしいスクリーンショットやビデオで簡単に共有できるものはありません。
私はそれが事実であるまで待つことができない!

実生活とゲームでの照明

私は若い頃、直感的に私の目がレーダーのようなアクティブなシステムとして働いていると思っていました。
おそらく遠くにある物体をスキャンし、その結果を報告するために何かを送り出したでしょう。

https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/28352917/b515b600754b41d55669c5ccc15a21f9ad38692b.png

(引用元: https://steamcommunity.com/games/366090/announcements/detail/1697190633595714958)

私がフォトカメラを使い始めたとき、私は最初に被写体を研究し始めました。
どうやら、"写真"という言葉は、ギリシャ語の "写真"(光)と "グラフェ"(絵)から作成されました。
写真は光で描いています。
私にとって、写真は興味深い被写体と構図のある画像を作り出すことでした。
光の重要性はほとんど分かりませんでした。

しかし、手動でカメラを操作するとき、光の基本的な重要性は非常に明白になります。
あなたのカメラは基本的に光を「捕らえている」ので、あなたはどのくらいの時間の間に取り込むかを決めなければなりません。
利用可能な光がほとんどない場合は、センサーの感度を変更する必要があります。

https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/28352917/8b1aa24ef62ccbcb7506b5f18b5fb0773f821ec7.png

(引用元: https://steamcommunity.com/games/366090/announcements/detail/1697190633595714958)

上記のイメージは明らかでなければなりません。
太陽が旗に光を照らし、光が旗を目に跳ね返す。
目は旗を見る。
そういうわけで、私たちの目と写真のカメラは同じように世界を知覚しています。
しかし、多くの物体は太陽やランプによって直接照らされません。
それはどのように機能するのですか?

https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/28352917/488f4a0a481041964dd7a6bec2169bc0f041455c.png

(引用元: https://steamcommunity.com/games/366090/announcements/detail/1697190633595714958)

太陽はあらゆる方向に光を放つ。
そして、光が物体に当たったとき、それは部分的に吸収されるかもしれませんが、おそらく部分的に反映されるでしょう。
織物、紙、肌のような多くのオブジェクトは、あらゆる方向に光を反射します。
だから、光は私たちの周りに "跳ね返って"、私たちの周りの世界のイメージを作成するために私たちの目に多くのインプットを与えています。

これをシミュレートするには、すべての光源から放射された光線をすべて計算し、複数回の反射を追跡する必要があります。
これは光線追跡[en.wikipedia.org]と呼ばれ、フォトリアリスティックな画像や動画を生成するために使用されます。

あなたはおそらくこれがコンピュータにとっては非常に難しいと想像することができます。
Blenderのシンプルなシーンで限られたレイトレースを使用しても30秒かかります。
1つのイメージをレンダリングしようとしているだけであれば、問題はありませんが、1秒間に60フレームを生成するのは不可能です。
そういうわけで、CGIの予告編はしばしば実際のゲームプレイとはかなり違って見えるのです。

コロニーサバイバルや他の多くのゲームで使用されるソリューションは、直接照明と周囲照明の区別です。
それは実際の生活の中で見るときに我々が気づく主要な事柄です。
いくつかのものは、太陽やランプによって直接照明され、かなり明るく、他のすべてのものは比較的暗いです。
ゲームでどのように動作するのかすべてのブロックは、光源が近くにあるかどうかにかかわらず、既存の利点によって自動的に点灯されます。
ブロックが太陽やランプによって「ヒット」されると、ブロックはかなり明るくなります。

結果はあなたが外に立っているときに最も実生活に似ていて、太陽があなたが見るもののほとんどを直接照らします。
しかし、他の状況ではそれほど魅力的ではありません。
あなたが光源なしで地下にいるとき、世界は明るすぎます。
屋内でのコントラストの欠如があります。
曇りの日はこのシステムで正確にシミュレートするのも難しいです。

近代的なゲームの多くは、照明を焼くことによってこれを克服しようとしています。
ライティングはレイトレーシングで一度レンダリングされ、テクスチャに保存されます。
今や人々はほとんど完全な照明でリアルタイムで3D世界を探索することができます。
このような世界の例があります:

www.youtube.com

このビデオの静止フレームは現実とほとんど区別できません。
しかし、ベーキングにはかなり大きな欠点があります。
光源と環境の両方が変化しない限り、ベーキングの結果は正確です。
どちらもビデオでは安定していますが、Colony Survivalでは非常に不安定です。
太陽は永久に動いており、プレーヤーは世界のあらゆるブロックを変えることができます。
だからベーキングはコロニーサバイバルには適していません。

しかし、コロニーサバイバルに半現実的な照明を追加するために使用できる他のシステムもあります。
私たちは物体に当たった光とあらゆる方向に跳ね返る光について話しました。
これは、ほとんどのサーフェスが微視的レベルでかなり粗いために発生します。

https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/28352917/969b44664c8d647fbba076d2b85e7474ac5ace74.png

(引用元: https://steamcommunity.com/games/366090/announcements/detail/1697190633595714958)

しかし、それはすべてのオブジェクトについて真実ではありません。
物体の多くは、顕微鏡レベルでさえ、比較的滑らかな表面を有する。
プラスチック、金属、仕上げの木材や濡れた物は、しばしば非常に滑らかです。
これは、光がすべての方向に均等に反射されないことを意味します。

https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/28352917/a4abd48da348de6a946bf784a8bb926001a62d7c.png

(引用元: https://steamcommunity.com/games/366090/announcements/detail/1697190633595714958)

そのほとんどは同じ方向に反映されています。
これは、オブジェクトがほとんどの角度から暗く見えることを意味します(目/センサーに当たる光が少ないため)が、いくつかの特殊な角度からはるかに明るく見えます。

我々は真に微視的なレベルの粗さについて語っているので、実際の「物理的な」隆起とくぼみでこれをシミュレートするのは意味がありません。
ほとんどのゲームには、アイテムに光を反射する方法をソフトウェアに指示するために使用できる特定のテクスチャがあります。
コロニーサバイバルには「鏡面マップ」(オブジェクトがどれだけの光を反射するかを決定する)と「滑らかさマップ」(オブジェクトが微視的なレベルでどれほど滑らかで荒いかを決める)があります。
以下は、Blenderの例です:

https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/28352917/9f135447c87d9b3af1617145676ea3251e1aede2.png

(引用元: https://steamcommunity.com/games/366090/announcements/detail/1697190633595714958)

コロニーサバイバルのテクスチャは、 "steamapps \ common \ Colony Survival \ gamedata \ textures \ materials \ blocks"に移動して表示および変更できます。
albedo、emmissiveMaskAlpha、heigthSmoothnessSpecularity、normalの4つのフォルダが表示されます。
最も重要なテクスチャに焦点を当てます。

天体の外部からの入射光に対する、反射光の比

https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/28352917/98f0578228f134e84cead027457d64b899030885.png

(引用元: https://steamcommunity.com/games/366090/announcements/detail/1697190633595714958)

これは、反射のないブロックの基本的な外観です。
Paint、Gimp、Photoshopなどのソフトウェアで作成または調整できます。それはかなり簡単です。

高さ/滑らかさ/鏡面性

https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/28352917/b6fef7b6afdeba37c19a747c90ad2556de375ac5.png

(引用元: https://steamcommunity.com/games/366090/announcements/detail/1697190633595714958)

これはもっと複雑です。
3つの別々のグレースケールマップから構成されています。
0から100までのスライダーで高さ/粗さ/滑らかさの値を選択するのではなく、黒から白に変わるグレースケールマップで選択されます。

コロニーサバイバルのブロックは、6つの平坦な面を持つ単純なオブジェクトです。
しかし、あなたがよく見ると、彼らは3Dの詳細を持っているようです。
これは高さマップで行われます。
パフォーマンスに大きな影響を与えることなく、ブロックの高さをわずかに調整するのに使用できます。
例えば、爪はわずかに高く、クレートの中心は低くなります。

RGB画像は赤、緑、青の3つのチャンネルで構成されています。
各チャンネルに異なるグレースケールマップを配置して、1つのカラー画像を作成します。
これは、「高さ/滑らかさ/鏡面性」マップです。
GimpやPhotoshopなどのソフトウェアを使用して、さまざまなカラーチャネルを検査および調整することができます。

普通

https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/28352917/b19634ec431a68d22ac426e14c0a9dc79c2a77a0.png

(引用元: https://steamcommunity.com/games/366090/announcements/detail/1697190633595714958)

鏡面性と滑らかさのマップは、微視的なレベルで照明効果をシミュレートするためのものですが、法線マップは、より大きなスケールで凹凸をシミュレートするために使用されます。
ノーマルマップは、高さマップを「読み取る」特殊なソフトウェアによって作成され、上記のような青紫色の画像を出力します。

ゲームのライティングシステムは法線マップを使用しているので、ライティングは法線マップに記述されたバンプと尾根が実際にあるかのように動作します。
実際にはかなりシンプルですが、オブジェクトを詳細に見せる素晴らしい方法です。


一見するとかなり複雑に見えるかもしれませんが、これらのテクスチャを開いたり、それらを使いこなしたり、コロニーサバイバルの結果を確認したりすると、すぐに知る必要があるすべてのことが教えられます。
さらに、ヘルプが必要な場合はDiscord [discord.gg]に参加してください:)
テクスチャを実験する人が増えており、素晴らしい結果が見られます。

私のUnity /プログラミング実験に興味がある人のために、ここに私の最新プロジェクトがあります。[gfycat.com]

終わり

今回は、ものの見え方から、光の反射等々をゲームではどう表現されているか、何が難しいのかというような内容でした。
途中の動画は、ゲームか現実かぱっと見ただけでは分かりませんね。

あれほどのきれいな画質でゲームをしようとしたら、どんなスペックのPCがいるのやら……。
10年後にはあれぐらいの画質がゲーミングPCレベルで出てくるのでしょうか。

こういった話を見ると、開発が丁寧に仕事してるんだなぁと感心します。(どこの開発もそうなんでしょうけど)