Library)を使わないのですかなぜGodotは例外処理を使わないのですか?GodotがRTTI(実行時型情報)を強制しないのはなぜですか?GodotがユーザーにDoD(データ指向設計)の実装を強制しないのはなぜですか?Godotの開発をサポートしたり、貢献したりするにはどうすればいいですか?誰がGodotで働いていますか。sourceベクトル演算¶はじめに¶このチュートリアルは、ゲーム開発に適用される線形代数の短くて実用的な入門書です。線形代数は、ベクトルとその使い方の研究です。ベクトルは2Dおよび3D開発の両方で多くの利用されます。Godotはそれらを広範囲に使用しています。強力なゲーム開発者になるには、ベクトル数学の十分な理解を深めることが不可欠です。注釈このチュートリアルは、線形代数に関する正式な教科書ではありません。それがゲーム開発にどのように適用されるかだけを見ていきます。使用して定義されます。3)などの値のペアとして書き込まれます。注釈コンピュータグラフィックスが初めての場合、数学のクラスで学んだように、正のy軸が上向きではなく下向きを指すのは奇妙に思えるかもしれません。これはほとんどのコンピューターグラフィックアプリケーションで一般的です。この方法で、2D平面内の任意の位置を1組の数字で識別できます。位置(4、3)は(0、0)ポイントまたは原点からのオフセットと考えることもできます。原点からポイントを指す矢印を描画します。ベクトルは多くの有用な情報を表します。点が(4、3)にあることを伝えるだけでなく、角度θと長さ(または大きさ)mとして考えることもできます。この場合、矢印は位置ベクトルです。これは、原点を基準とした空間内の位置を示します。ベクトルについて考慮すべき非常に重要な点は、ベクトルが相対的な方向と大きさのみを表すことです。ベクトルのには位置の概念はありません。次の2つのベクトルは同一です。両方のベクトルは、開始点から右に4単位、下に3単位の点を表します。平面上のどこでベクトルを描くかは問題ではなく、常に相対的な方向と大きさを表します。ベクトル操作¶いずれかの方法(xおよびy座標または角度と大きさ)を使用してもベクトルを参照できますが、プログラマーは通常、座標表記を使用します。300);Godotは、2Dおよび3Dの使用に対してそれぞれVector2とVector3の両方をサポートします。この記事で説明している同じ数学的ルールが両方のタイプに適用されます。メンバアクセス¶ベクトルの個々のコンポーネントには、名前で直接アクセスできます。1;ベクトルの加算¶2つのベクトルを加算または減算すると、対応するコンポーネントが追加されます。6)また、最初のベクトルの終点に2番目のベクトルを追加することで、これを視覚的に確認できます。aと同じ結果になることに注意してください。注釈ベクトルは方向と大きさの両方を表します。大きさのみを表す値はスカラーと呼ばれます。ベクトルにはスカラーを掛けることができます。2)注釈ベクトルにスカラーを掛けても方向は変わらず、大きさだけが変わります。これで、ベクトルの大きさを変更できます。実際の応用¶ベクトルの加算と減算の2つの一般的な使用方法を見てみましょう。移動¶ベクトルは、大きさと方向を持つ任意の量を表すことができます。速度ベクトルは、船が各ステップで移動する距離を表します。現在の位置に速度を追加することにより、ステップ2の位置を見つけることができます。ちなみに速度は、単位時間あたりの位置の変化を測定します。新しい位置は、前の位置に速度を追加することで計算できます。ターゲットへ向く¶このシナリオでは、砲塔をロボットに向けたい戦車があります。ロボットの位置からタンクの位置を引くと、タンクからロボットを指すベクトルが得られます。ちなみにAからBへ向くベクトルを求めるにはB-Aとします。大きさが1のベクトルを、単位ベクトルと呼びます。方向ベクトルまたは法線と呼ばれることもあります。単位ベクトルは、方向を追跡する必要がある場合に役立ちます。正規化¶ベクトルの正規化とは、方向を維持しながら長さを1に減らすことを意味します。これは、各コンポーネントをその大きさで除算することにより行われます。m;これはよくある操作なので、Vector2とVector3には正規化のためのメソッドがあります。正規化はベクトルの長さで割り算するので、長さ0のベクトルは正規化できません。単位ベクトルの一般的な用途は、法線を示すことです。法線ベクトルは、面の表面に垂直に配置され、その方向を定義する単位ベクトルです。これらは一般に、照明、衝突、およびサーフェスに関連する他の操作に使用されます。例として、動いているボールを想像してみましょう。ボールが衝突すると、残りの動き(表面に当たったときに残った量)を計算し、法線を使用してそれを反射させます。Godotでは、Vector2クラスにこれを処理するbounce()メソッドがあります。以下は、KinematicBody2Dを使用した上記の図のGDScriptの例です。内積は、ベクトル数学の最も重要な概念の1つですが、誤解されることがよくあります。内積は、2つのベクトルを演算してスカラーを返します。大きさと方向の両方を含むベクトルとは異なり、スカラーは大きさのみを持ちます。内積の式には、2つの一般的な形式があります。ほとんどの場合、組み込みのメソッドを使用するのが最も簡単です。2つのベクトルの順序は重要ではないことに注意してください。equivalent内積は、単位ベクトルと一緒に使用すると最も有用であり、最初の式からcosθを求めます。これは、内積を利用して、2つのベクトル間の角度について情報を得ることができることを意味します。正面¶これを利用して、オブジェクトが別のオブジェクトに向いているかどうかを検出できます。下の図では、プレイヤーPはゾンビAとBを避けようとしています。ゾンビの視界が180度であると仮定すると、ゾンビはプレイヤーを見ることができますか?緑の矢印fAとfBはゾンビの向きを表す単位ベクトルであり、青い半円はその視野を表します。ゾンビAの場合、P-Aを使用してプレイヤーを指す方向ベクトルAPを見つけて正規化します。このベクトルとゾンビの向きを表すベクトルの角度が90°未満の場合、ゾンビはプレイヤーを見ることができます。コードでは次のように表せます。内積と同様に、外積は2つのベクトルの演算です。外積の結果は、両方に垂直な方向を持つベクトルです。その大きさは、相対的な角度に依存します。2つのベクトルが平行である場合、それらの外積の結果はヌルベクトルになります。外積は以下のように求めます。b.x);Godotでは組み込みのメソッドが使えます。外積では、順序が重要です。a.cross(b)はb.cross(a)と同じ結果にはなりません。結果のベクトルは反対方向を指します。外積の一般的な使用法の1つは、3D空間で平面またはサーフェスの法線を見つけることです。三角形ABCがある場合、ベクトル減算を使用して2つのエッジABおよびACを見つけることができます。ACは両方に垂直なベクトルを生成します:これが表面の法線となります。三角形の法線を計算する関数は以下のとおりです。上記の内積セクションでは、2つのベクトル間の角度を見つけるためにそれをどのように使用できるかを見ました。3Dでは、これは十分な情報ではありません。どの軸を中心に回転するかを知る必要があります。これは、現在の向きとターゲットの方向の外積を計算することでわかります。結果の垂直ベクトルが回転の軸です。多くの情報¶Godotでのベクターについてのより詳しいことは以下の記事をご覧ください。