おかえり。
これで、キャラクター クラスとキャラクター ブループリントができました。
カメラ コンポーネントやスプリング アーム コンポーネントなどのコンポーネントの追加を開始します。
それでは飛び込みましょう。
ロビー マップに移動して、BP_Blaster_character をドラッグします。
まず、ゲームモードを設定していないため、自動的にキャラクターを所有することはありません。
しかし、キャラクターを選択し、自動所有プレイヤーの詳細パネル検索に移動し、それを player_0 に設定した場合、プレイを押すと、このキャラクターが自動的に所有されます。
しかし、カメラはほとんどキャラクターの内部にあることがわかります。
そのため、キャラクターを所有しているときにビューを制御するには、カメラとスプリング アームが必要です。
したがって、これらのコンポーネントを C++ から追加します。
これが blasterCharacter.h と BlasterCharacter.cpp です。
いくつかの新しい変数を宣言します。
public セクションにコンストラクターがあります。 ここには、Tick と SetupPlayerInputComponent を含む 2 つ目のパブリック セクションがあります。
これらの公開機能をここの一番上にあるこの公開セクションに移動したいと思います。
また、この時点で、これらの関数が何をするかをすべて知っているはずなので、これらのコメントが必要だとは本当に思いません。 なので、それらのコメントは削除します。
ここでは、Tick と SetupPlayerInputComponent を [トップ パブリック セクション] に移動します。 および保護されたセクションの下。
プライベートセクションを希望します。
そこで一つ追加します。
この公開セクションはここに置いておきます。 この領域は、さまざまなメンバー変数の単純な getter と setter 用に予約します。
ここのプライベート セクションでは、ここにスプリング アームとカメラを追加します。
そこで、use spring arm コンポーネントを前方宣言します。
これを CameraBoom と呼ぶことにします。
さて、これには新しいプロパティ マクロが必要になります。
だから私はこれをどこでも見えるようにするつもりです。
そして、CameraBoom とカメラを 1 つのカテゴリに入れたいと思います。
これを CategoryCamera と呼びます。
そしてもちろん、実際のカメラ自体も必要です。これも前方宣言されます。
そして、これは UCameraComponent になります。
これを FollowCamera と呼ぶことができます。
さて、これもVisibleAnywhere、そしてCategoryCameraにします。 これで、変数を宣言しました。
しかし、これらを構築する必要があります。 これを行い、Blaster キャラクター コンストラクターを作成します。
現時点ではこれらのコメントは必要ないと思うので、ここでこれらのコメントを削除します。 彼らは初心者をスピードアップさせるためのものです. したがって、ここでコンストラクターでそれらを削除できると思います。
CameraBoom を作成しましょう。 だから私はカメラブームと言ってデフォルトのサブオブジェクトを作成します。
これは USpringArmComponent です。
テキスト マクロでは、これを CameraBoom と呼びます。
もちろん、ここではスプリング アーム コンポーネントを使用しているため、そのタイプのヘッダーを含める必要があります。 「GameFramework/SpringArmComponent.h」をインクルードします。
これで、アンリアル エンジンのドキュメントでいつでもクラスを検索して、このインクルードを確認できます。
通常、CameraBoom をルート コンポーネントに接続しますが、カメラ ブームをメッシュ コンポーネントに接続したいと思います。
これは、後でカプセル サイズを変更するしゃがみ機能を使用するためです。
カプセルは私たちのルートであり、スプリング アームがカプセルに取り付けられた状態でカプセル サイズを変更すると、スプリング アームが動きます。
ということで、代わりにスプリングアームをメッシュに取り付けます。
セットアップ アタッチメントを呼び出して、get mesh でアクセスできるメッシュを使用します。
次に、カメラ ブームのターゲット アームの長さを設定します。 それでは、cameraBoom->TargetArmLength としましょう。 これを 600 に設定します。
しかし、それを調整したいかどうか見ていきます。
現在、カメラ ブームにも bUsePownControlRotation があります。 これを true に設定して、マウス入力を追加するときにコントローラーと共にカメラ ブームを回転できるようにします。
これで cameraBoom ができました。 カメラを作成しましょう。 そのため、フォローカメラがあります。
createDefaultSubObject を使用します。 これは UCameraComponent です。 これを followCamera と呼びます。
setupAttachment を使用して、followCamera をカメラ ブームに取り付けることができるようになりました。
そして、use springArmComponent、静的メンバー変数ソケット名を使用して、カメラを cameraBoom の socketName ソケットに接続できます。
そして、カメラ コンポーネントを使用しています。 そのため、ヘッダーを INCLUDE する必要があります。 これは camera/cameraComponent.h にあります。
現在、フォロー カメラは cameraBoom にアタッチされているため、PownControlRotation を使用する必要はありません。 したがって、followCamera->beUseControlRotation = false と言えます。
それでは、先に進んでコンパイルしましょう。
カメラがあり、もちろん、カメラ ブームがメッシュに取り付けられていることがわかります。
下部にピボットポイントがあります。 ここでは、スプリング アームが下部に取り付けられていることがわかります。
さて、ここの BLUEPRINT を見ると、約 600 単位離れているように見えます。 私たちのターゲット アームはこの 600 のようなものだからです。
しかし、ここではそれがわかりません。 カメラが床に衝突する可能性が最も高いためです。
では、カメラ ブームを上に動かしてみましょう。実際には地面から取り付けたくないからです。
カメラ ブームを取り、Z 方向の位置を 88 に設定します。そうすれば、ここの中央に取り付けられます。 カメラ ブームを少し上に移動することもできます。 それはあなた次第です。
コンパイルして再生ボタンを押すと、キャラクターから正しい距離にいることがわかります。
もちろん、まだ動き回ることはできません。
これは、その機能をプログラムしていないためです。
それが次のステップになります。
この講義では、カメラ コンポーネントとスプリング アームを追加し、それらのアタッチメントをセットアップして、カプセルであるルート コンポーネントではなく、メッシュにスプリング アームを取り付けました。
そうすれば、後でしゃがんでカプセルのサイズを変更しても、スプリング アームの高さには影響しません。
これで、移動機能をプログラムする準備が整いました。次にそれを行います。
また後で。