主なコンテンツ

〜主なコンテンツ〜

1. Unityで製作したゲームと製作Tips
  1. 三月精チャレンジ(東方Project二次創作)
    1. 作り方
  2. 英語学習2D(オリジナルスマホアプリ)
2. UE4
3. ゲームアプリ見学
4. Bitbucket & SourceTreeでの一連の流れ
  1. 前半
  2. 後半
5. Tips
  1. UnityのTips
  5. SQL文のTips
  6. Final IK
  7. GearVR+Unity

2023年1月18日水曜日

38. Camera and Spring Arm

 おかえり。


これで、キャラクター クラスとキャラクター ブループリントができました。


カメラ コンポーネントやスプリング アーム コンポーネントなどのコンポーネントの追加を開始します。


それでは飛び込みましょう。


ロビー マップに移動して、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 に設定します。そうすれば、ここの中央に取り付けられます。 カメラ ブームを少し上に移動することもできます。 それはあなた次第です。


コンパイルして再生ボタンを押すと、キャラクターから正しい距離にいることがわかります。


もちろん、まだ動き回ることはできません。


これは、その機能をプログラムしていないためです。


それが次のステップになります。


この講義では、カメラ コンポーネントとスプリング アームを追加し、それらのアタッチメントをセットアップして、カプセルであるルート コンポーネントではなく、メッシュにスプリング アームを取り付けました。


そうすれば、後でしゃがんでカプセルのサイズを変更しても、スプリング アームの高さには影響しません。


これで、移動機能をプログラムする準備が整いました。次にそれを行います。


また後で。


37. Blaster Character

 いらっしゃいませ。


キャラクタークラスの作成を開始する準備ができました。


そのため、このビデオでそれを行い、C++ クラスのフォルダー構造を設定して、プロジェクトを整理します。


それでは始めましょう。


これが私たちのプロジェクトです。


これまでのところ、C++ クラス フォルダーには BlasterGameModeBase クラスがあります。

新しい文字クラスを作成します。 そのため、右クリックして [新しい C++ クラス] を選択することで、C++ クラスと Blaster 内からそれを行うことができます。


次に、キャラクターに基づいてクラスを作成します。


それでは、文字を選択して次へをクリックしましょう。


このプロジェクトでは、キャラクター クラスに [ブラスター キャラクター] という名前を付けます。このプロジェクト用にかなりの数のクラスを作成します。


そのため、それらを独自のフォルダーに整理したいと思います。

Character というフォルダーに Blaster クラスを作成します。


パブリック フォルダー構造とプライベート フォルダー構造を使用するかどうかは、あなた次第です。


個人フォルダは使わなくてもいいので、そのままにして、BlasterCharacter と専用のキャラクター フォルダを追加するだけにします。 では、クラスの作成をクリックしましょう。


ここで、キャラクター クラスと独自のキャラクター フォルダーを追加することを選択したため、Blaster モジュールを再コンパイルする必要があるというメッセージが表示されます。これは、自動コンパイラ エラーが発生するためです。 私の言いたいことをお見せしましょう。 [いいえ]をクリックします。


Visual Studio は、プロジェクトをリロードするかどうかを尋ねてきます。


[すべて再読み込み] をクリックします。


これがプロジェクトです。 BlasterCharacter.h と .cp を含むソース フォルダーの Blaster の下に、このキャラクター フォルダーがあることがわかっています。


BlasterCharacter.cpp には、インクルード エラーがあります。 キャラクター フォルダー内から BlasterCharacter.h をインクルードしようとしていますが、CP ファイルは既にキャラクター フォルダーにあるためです。


したがって、include ステートメントでこの Character を削除するだけで、エラーを取り除くことができます。


これでコンパイルできるはずです。


コンパイルが成功したので、エディターに戻り、新しい Blaster キャラクター クラスに基づいてキャラクター ブループリントを作成します。


次に、コンテンツを右クリックして、新しいフォルダーを作成します。


これは、このプロジェクトのために作成するすべてのブループリントに適用されます。


このフォルダを blueprints と呼び、blueprints フォルダ内に character フォルダを作成します。


ということで、これをフォルダキャラクターと呼ぶことにします。


そして、BlasterCharacter に基づいて新しい C++ クラスを作成できるように、ここにキャラクターのブループリントを配置します。

では、そうしましょう。


そして、Blueprint のキャラクターに貼り付けます。


ここで、この BP_BlasterCharacter に名前を付けます。


そうすれば、どれがブループリント クラスで、どれが C++ クラスであるかがわかります。


それでは、Create Blueprint Class をクリックしましょう。


これが CharacterBlueprint です。


これで、すぐにメッシュを選択できます。


メッシュを選択します。


骨格メッシュには、Learning Kit ゲームからキャラクターを選択します。


今、このように見えるエピックキャラクターがいます.


Y 方向を向いていることがわかり、X 方向に向けたいと思います。


というわけで、90度回転させます。


現在、その足はカプセルの中心にあり、カプセルの半分の高さは 88 です。


したがって、メッシュを 88 単位下に移動できます。


その位置 Z を取得して、-88 に設定しましょう。


これで、キャラクターが地面に置かれます。


というわけで、コンパイルして保存します。


これで、キャラクター クラスとブループリントが完成しました。


これでキャラクター クラスが作成され、このクラスに基づく設計図ができました。このクラスをキャラクター フォルダーに貼り付けました。


したがって、C++ ソリューションは整理されています。


今後のビデオでは、カメラとスプリング アームを追加し、いくつかの入力とプログラム動作機能を追加します。


また後で。