プレイヤーが水中に行くことができる多くのゲームでは、画面の上半分が空中にあり、画面の下半分が水の中にあるように見えるとき、それはほとんど水が存在しないようで、プレーヤーは...水の音でゆっくりと飛んでいますか?
これを解決する論理的な方法はありますか?アルゴリズム?多くのゲームがまだこれを持っているので、解決策がまだ登場していないようです。同じ間違いをしたくありません。
プレイヤーが水中に行くことができる多くのゲームでは、画面の上半分が空中にあり、画面の下半分が水の中にあるように見えるとき、それはほとんど水が存在しないようで、プレーヤーは...水の音でゆっくりと飛んでいますか?
これを解決する論理的な方法はありますか?アルゴリズム?多くのゲームがまだこれを持っているので、解決策がまだ登場していないようです。同じ間違いをしたくありません。
回答:
この状況を単純に許可しないのはどうですか?
ゲームの作り方がわかりませんが、ビューの一部が水中になることを検出した場合、カメラを水面より上に強制的に移動できます。ビュー全体が水面より下になる場合にのみ、水中ビュー。
方法によっては、これは、ダイビングを開始した瞬間から、実際に水面下からシーンを表示するまでに追加の遅延があることを意味します。これは実際にはUXの観点からは良いことかもしれませんので、自由に実験してください。
別の関連するノートで、なぜほとんどの水中シーンがクリスタルクリアにレンダリングされるのか疑問に思います...頭を水中に置いた場合、あなたの目は水中視界のために設計されていないため、すべてがぼやけているように見えます。実際に水中をはっきりと見るにはゴーグルを着用する必要があります。
さらに、水中では物が見た目(および聞こえる)が水中とは大きく異なります。水は空気よりもはるかに速く光を吸収するため、光が遠くに進むほど、目に届く光は少なくなります。これは、深く行くほど青いものが見えることを意味します(赤い光はエネルギーが少ないため、青い光よりも簡単に吸収されます)。実際、わずか12メートルの水中では、血は赤ではなく黒に見えます。
私はまだ水中環境を正しくしようとする特殊なゲームを見たことはありません...
あなたが言及している問題は、カメラのビューボリュームが水面を切り抜けていることに関係しています。典型的な「水中効果」は、フルスクリーンのポストプロセスエフェクトを介して行われ、ビューがこのようにクリップされると正しく表示されません(逆の問題になります)。
クリッピングケース(潜在的に難しい)を検出し、水中シーンのみに適用されるようにフルスクリーンの水中効果をはさみまたはクリップする(これは探索可能な解決策です)場合でも、実際の水上飛行機自体の問題。そこへの移行は、依然として耳障りな視覚的アーティファクトです。その平面を検出し、それを大きくぼかすことができます。これはおそらく、部分的に沈められたカメラレンズを通して見ることができるものの現実世界の類推に到達できる最も近いものです。
または、これが完全に起こらないようにします。プレーヤーが水面の「上」にある場合はカメラを水面下に、水面下にいる場合は水面上に置かないでください。これは、水面上/水面下に個別のプレーヤー操作モードがある場合にのみ実際に機能し、物理的なボタンまたはプレーヤーが「水面で泳ぐ」と「下で泳ぐ」の間の遷移のために行うことができる明確で明白なアクションがある場合に最もよく機能します表面。」
飛び込むための明示的なキーストロークの代わりに、カメラが「飛び込む」ことを意味するように十分にピッチダウンしている間に、前方への動きを解釈できます。その後、グラフィック効果(スプラッシュなど)を使用して、通常は交差できない水面を通るカメラの遷移を非表示にできます。
ギルドウォーズ2では、このような手法を使用しました。
ゲームは通常、カメラが水中にあるときに、ある種の効果、主に青い霧をオンにします。ニアプレーンが水面をクリップする状況を処理するには、カメラが水面に近づいたときにフォグシェーダーをオンにしますが、それに対応するニアプレーン上のポイントを計算するコードをピクセルシェーダーに追加しますそのピクセルは、そのポイントが水面下にある場合にのみフォグをアクティブにします。
フォグがフルスクリーンパスをレンダリングすることにより後処理として行われる場合、これは特に簡単です-ニアプレーン上のフルスクリーンクワッドまたはトライアングルの各頂点のワールド空間位置を計算するだけですビュー/投影マトリックス)、およびこの値をピクセルシェーダーまで補間します。次に、その垂直成分を確認し、水上にあるか下にあるかを確認できます。
ボーナスポイントでは、同じ手法を使用して数ピクセルの厚さのテクスチャを追加し、水面のメニスカスを表すことができるため、シャープなラインのようには見えません。
2つの方法があります。1つはシェーダーを使用し、もう1つはGUIを使用できます。どちらも同じように起動します:
「簡略化」- If, Object(Camera) is in 3d Space(Water bounding box/whatever you choose) trigger a shader/GUI.
シェーダーはよりリアルになり、このような歪みを適用できます
霧のようなコム。少年は、GUIを介して適用できると述べました。部分的に透明な写真を作成し、カメラビュー全体でGUIとして使用します。あなたが提供した写真のために、私は茶色を試します。
これは、Drea D Outと呼ばれるホラーゲームで使用されています。プレイヤーがゴーストに近づくと、画面が霧に変わります。水の下では使用されませんでしたが、同様の効果がありました:)
常に両方の方法を選択するか、色を変更するシェーダーを作成できます。
Taken from : http://sahdan-share.blogspot.com/2013/04/dreadout.html