11.コンポーネント
🌟コンポーネントとは?
コンポーネントとは「アクタを構成する部品」の事です。アクタはコンポーネント(部品)から成っています。
🌟コンポーネントを追加してみよう
まず詳細パネルからコンポーネントを表示している場所を確認しましょう。アクタであれば何でもよいのですが、サードパーソンのテンプレートプロジェクトで配置されているキューブを選択し、詳細の一番上を確認しましょう。コンポーネントが表示されている場所があります↓
https://scrapbox.io/files/65b3d1f39f75db00253c3a06.jpg
そして画像で言う一番上のSM_ChamerCubeがアクタ本体にあたり、下のStaticMeshComponentがコンポーネントにあたります。
https://scrapbox.io/files/65b3d21a6ed78b0024886750.jpg
StaticMeshComponentとはメッシュを表示させる機能を持ったコンポーネントになります。アクタはこういった機能を持ったコンポーネントから構成されます。
コンポーネントを編集してアイテム風のアクタを作成してみよう
①まずは何もコンポーネントがついていないただのアクタを設置します。基本 > Actorをドラッグで追加します。
https://scrapbox.io/files/65b3d2dd197d4c0026cd859c.jpg
②追加したアクタを選択して詳細を確認しましょう。Actor(インスタンス)と書かれたものがアクタ本体を示しており、DefaultSceneRootがコンポーネントになります。
https://scrapbox.io/files/65b3d344be68ee0025ce24bc.jpg
DefaultSceneRootとは?
前提としてアクタは一個以上のコンポーネントで構成される必要があります。なのでアクタには必ずコンポーネントが必要な訳ですが、今回のように何も機能がないただのActorを追加した際にはDefaultSceneRootという何も機能を持っていないコンポーネントが追加されます。
③ここにコンポーネントを追加してみましょう。追加からStaticMeshコンポーネントを追加します。
https://scrapbox.io/files/65b3d44fbb5118002458d756.gif
Staticmeshコンポーネントを選択した状態で、スタティックメッシュを「SM_Cube_02」をセットします。
https://scrapbox.io/files/65b3d92c156b0800248c4101.jpg
コンポーネントも親子関係にできる!
コンポーネントも以下のようにドラッグする事で親子関係になります。親子関係にすると親のトランスフォームを基準に子のコンポーネントのトランスフォームが決定します。つまり子は位置や回転などが親のコンポーネントと相関関係になるという事です。
④もう一つStaticMeshコンポーネントを追加し、StaticMesh1を選択した状態でキューブのメッシュの少し上になるようにZ軸を移動させます。
https://scrapbox.io/files/65b3d567bb5118002458e269.gif
⑤StaticMesh1を選択した状態でスタティックメッシュにEditorHelpというメッシュをセットします。
https://scrapbox.io/files/65b3d6e9459f350025de6d6e.jpg
⑥次に追加 > PointLightコンポーネントを追加します。
https://scrapbox.io/files/65b3d64504c14d0025365045.jpg
⑦PointLightを選択した状態で、ライト > CastShadow(影の描画)のチェックを外します。その後Intencity(光の強さ)を13000あたりにして、LightColorも適当で良いので変更します。
https://scrapbox.io/files/65b3d775c23343002604be84.jpg
⑧追加からRotatingと検索してRotatingMovementコンポーネントを追加します。
https://scrapbox.io/files/65b3d841f504c10025b36d69.jpg
RotatingMovementコンポーネントとは?
RotatingMovementコンポーネントは、アクタを回転させる機能を持ったコンポーネントになります。実際に使ってみましょう↓
⑨RotatingMovementコンポーネントを選択した状態でRotationRate(回転速度)のZ軸を70にします。
https://scrapbox.io/files/65b3d8d3d994b100255552bf.jpg
プレイしてみましょう。アクタが回転するようになりました↓
https://scrapbox.io/files/65b3da580542ad00260c98fc.gif
🐈 このようにコンポーネントはアクタを動かす機能も持った物もあります。しかしながら、実際のゲーム開発では今回の様にRotatingMovementコンポーネントなどでアクタを回転させるといった事はしません。理由はブループリントで実装した方が何かと便利だからです。自動回転のやり方はブループリント編で解説していきます。
よく使用されるコンポーネント
table:コンポーネントの種類
StaticMesh スタティックメッシュ(椅子などアニメーションしないメッシュ)を表示するコンポーネント
SkeltalMesh スケルタルメッシュ(キャラクターなど)を表示するコンポーネント
Audio BGMなどの音を鳴らすためのコンポーネント
PointLight 光を球体上に照らすコンポーネント
ParticleSystem 火や煙などのパーティクル(エフェクト)を表示するコンポーネント
BoxCollision ボックス型のコリジョン(衝突判定)を追加するコンポーネント
SphereCollision 球体型のコリジョン(衝突判定)を追加するコンポーネント
Camera ゲームの映像を映すためのコンポーネント