この操作ガイドでは、レベル内のプレイ可能な、あるいはプレイ不可能なキャラクターに対してサードパーソン視点を作るために使用する Camera コンポーネントを ブループリント に追加する方法を説明します。このチュートリアルの最後まで進むと、Camera コンポーネントを Character ブループリントに追加し、二種類の視点間で切り替える機能をキャラクターに対してセットアップするプロセスを学ぶことになります。
ここでは スターター コンテンツ を有効にした状態で Blueprint Third Person Template プロジェクトを使います。
プロジェクトを開いた状態で、レベルでキャラクターを選択し、[Delete] を押してそれを取り除きます。
これはこのテンプレートに入っているデフォルトの Character ブループリントです。このブループリントには、Camera コンポーネントが既にアタッチされています。このキャラクターとしてプレイする場合に使用する視点のプレビュー ウィンドウがあります。このセットアップを新しいプレイ可能なキャラクターのタイプでゼロから再作成します。
コンテンツ ブラウザ で、 [Add New (新規追加)] ボタンをクリックします。次にメニューから ブループリント クラス を選択します。
[Pick Parent Class] ウィンドウで、 Character を選択し、そのブループリントに MyCharacter と名前を付けます。
新規作成したこのブループリントの保存場所を選んで名前を付けると、ブループリントのエディタ インターフェース が自動的に開きます。
[Components] ウィンドウで CapsuleComponent を選択して [Details] パネルで [Capsule Half Height] を 64 に変更します。
Capsule コンポーネント は、キャラクターのコリジョン検知 に使用します。
[Components] ウィンドウで [Add Component] ボタンをクリックして、 Static Mesh コンポーネントを検索して追加します。
スタティックメッシュ の [Details] パネルで、その Z 位置を -60 に設定し、Shape_NarrowCapsule をスタティックメッシュとして割り当てます。
カプセル位置の Z 値を調整することで、スタティックメッシュが Capsule コンポーネントの内側に入ります。
[Components] ウィンドウで [Add Component] ボタンをクリックして、 Camera コンポーネントを検索して追加します。
これがこのキャラクターに結び付けられるカメラであり、サードパーソン視点を与えてくれます。この例では、プレイ可能なキャラクターに焦点を当てていますが、どのブループリントに対しても Camera コンポーネントを追加することができます。例えば、プレイヤーが見るビューを作るセキュリティ カメラを作成することができます。
Camera の [Details] パネルで、その X 位置を -120 に設定し、その Z を 20 に設定します。
こうした値を使ってカプセルの背後にカメラを配置しましたが、ご自分が適切だと思う位置に調整することもできます。
[Add Component (コンポーネントを追加)] ボタンを再度クリックして、 Arrow コンポーネントを検索して追加します。
このキャラクターにサードパーソン視点を使わせるようにするだけでなく、プレイヤーがボタンを押してカメラを肩越しからのタイプのビューに移動できるようにします。Arrow コンポーネントを使って、ボタンを押したり、解放したりしたときにカメラに移動先を指示します。
Arrow コンポーネントの [Details] パネルで、その位置を ステップ 8 と同じように設定します。
これはボタンが解放されたら戻ってほしいデフォルトのカメラ位置への参照です。
[Add Component (コンポーネントを追加)] ボタンをクリックして、 別の Arrow コンポーネントを追加し、その 位置 を以下のようにします。
以下の例を作るために、 X を -40 に、 Y を 40 に設定しました。
Arrow コンポーネントの位置をお好きな位置に調整することができます。
Event Graph タブをクリックし、グラフ内で 右クリック して Right Mouse Button Event を検索して追加します。
Event Graph は、カメラを移動するスクリプト化された機能を提供する場所です。
[My Blueprint] ウィンドウで、Ctrl キーを押しながら、左クリック し、 Camera コンポーネントをグラフにドラッグします。
上記で参照を取得しているので、これでプロパティを設定するか、Camera コンポーネントに影響を与えることができます。
My Blueprint ウィンドウで、Ctrlを押しながら、左クリック し、両方の Arrow コンポーネントをドラッグします。
グラフで Camera ノードの出力ピンを 左クリック してドラッグし、 SetRelativeLocation ノードを検索して追加します。
これで、カメラをお好きな位置に動かすことができます。
Arrow 2 を引き出して、 Get Relative Location ノードを検索して追加します。続いてノードを以下のように接続します。
マウスを右クリック すると、カメラの [Set Relative Location ] を Arrow 2 コンポーネントの [Relative Location] (これは肩越しのカメラ位置) に設定します。次に、マウスの右クリックが解放されたときに、カメラをデフォルト位置 (Arrow 1 の位置) に戻すように設定する必要があります。
SetRelativeLocation をコピー / 貼り付けし、以下のように Arrow 1 に対して前の手順を繰り返します。
スクリプトが完成したので、マウスを右クリック / マウスを解放したときに、2 つのカメラ位置の間で切り替えることができます。
ツールバーの [コンパイル] をクリックし、次に [保存] をクリックし、ブループリントを閉じます。
これでキャラクターがセットアップされましたが、作成したキャラクターはゲームのプレイ時に使用するデフォルトのキャラクターであることをプロジェクトに対して伝える必要があります。これを行うには、Level World Settings (レベルのワールド設定) で、このテンプレートで使用している Game Mode (ゲーム モード) の設定を変更します。
メインのレベル エディタ ウィンドウで、ツールバーにある [Settings (設定)] ボタンをクリックし、[World Settings (ワールド設定)] を選択します。
[World Settings (ワールド設定)] ウィンドウの [Selected GameMode] で、 [Default Pawn Class] をクリックし、それを [MyCharacter] に変更します。
メイン ツールバーで Play ボタンをクリックしてエディタで再生します。
最終結果
エディタで再生すると、割り当てた Camera コンポーネントを移動することで二種類のカメラ位置の間を切り替えることができます。上の動画のキャラクターには、ThirdPersonCharacter ブループリント (「Content/ThirdPersonBP/Blueprints」 フォルダにあります) からのスクリプトを使い、それを MyCharacter ブループリントにコピーした移動機能もあります。
移動機能を追加したい場合は、ThirdPersonCharacter の以下のスクリプトをご自分の MyCharacter ブループリントにコピーしてください。
拡大表示するにはここをクリック
上のスクリプトは、キャラクターを移動、ジャンプさせ、カメラの視野角を操作するために使用します。
Camera コンポーネントを追加した後、通常はカメラをアタッチする Spring Arm コンポーネントを含めるようにします。これにより、狭いスペースを移動したり、オブジェクトがキャラクターとカメラの間で移動する場合にカメラが妨害されないようにします。