教育事業部の事業内容 演劇、音楽のタレント並びに作詞家、作曲家、編曲家等アーティストの育成及びマネージメント、コンピュータ教室の経営等を行っています。
教育事業 パルテア

〜Unity Graphics カメラから所定の距離における錐台のサイズ〜 #ゲームプログラミング #ゲーム制作 #unity3d #unity3dgames

カメラから所定の距離における錐台のサイズ

カメラから一定の距離にある視錐台の断面は、可視領域を囲むワールド空間内の長方形を定義します。特定の距離でのこの四角形のサイズを計算したり、四角形が特定のサイズになる距離を見つけると便利な場合があります。たとえば、移動するカメラが常にオブジェクト (プレーヤーなど) を完全に映し続ける必要がある場合、そのオブジェクトの一部が切り取られるほどカメラに近づきすぎてはいけません。

特定の距離での錐台の高さ (両方ともワールド単位) は、次の式で取得できます。

…このプロセスを逆にすると、指定した錐台の高さを得るために必要な距離を計算できます。

高さと距離がわかっている場合は、FOV 角度を計算することもできます。

これらの計算にはそれぞれ錐台の高さが含まれますが、これは幅から非常に簡単に取得できます (逆も同様)。

カメラからの光線

「視錐台を理解する」セクションでは、カメラのビュー内の任意の点がワールド空間内の線に対応すると説明しました。その線を数学的に表現すると便利な場合があり、Unity はこれを Ray オブジェクトの形式で提供できます。 Ray は常にビュー内の点に対応するため、Camera クラスは ScreenPointToRay 関数と ViewportPointToRay 関数を提供します。 2 つの違いは、ScreenPointToRay はポイントがピクセル座標として提供されることを期待しているのに対し、ViewportPointToRay は 0..1 の範囲の正規化された座標を取ることです (0 はビューの下または左を表し、1 はビューの上または右を表します)。 。これらの各関数は、原点とその原点からの線の方向を示すベクトルで構成される Ray を返します。レイは、カメラのtransform.positionポイントではなく、クリッピング面に近いところから発生します。

レイキャスティング

カメラからの Ray の最も一般的な使用法は、シーンへのレイキャストを実行することです。レイキャストは、シーン内のコライダーに当たるまで、その原点からレイに沿って架空の「レーザー ビーム」を送信します。その後、オブジェクトと、RaycastHit オブジェクトでヒットしたポイントに関する情報が返されます。これは、画面上の画像に基づいてオブジェクトを見つける非常に便利な方法です。たとえば、マウスの位置にあるオブジェクトは次のコードで決定できます。

光線に沿ってカメラを移動する

画面の位置に対応する光線を取得し、その光線に沿ってカメラを移動すると便利な場合があります。たとえば、ユーザーがマウスでオブジェクトを選択し、そのオブジェクトをマウスの下の同じ画面位置に「固定」したままズームインできるようにしたい場合があります (これは、カメラが戦術を見ているときに便利かもしれません)たとえば地図)。これを行うコードは非常に簡単です。

    unity

  • 日時:// ~ //
  • 名称:
  • 場所:
  • 料金:¥0 (消費税込)