一人UE4ゲーム制作入門アドベントカレンダー五日目です。
今日は攻撃をつくりましょう。ようやくゲームらしくなっていく気がしますね。
弾クラス(BP_Shot)の作成
まずは撃ち出す弾を作りましょう。PlayerフォルダにShotフォルダを作ります。Actorクラスを親にしたBP_Shotブループリントクラスを作成します。ウィンドウを開いて、コンポーネントのルートにSphereCollisionとProjectileMovementとStaticMeshを追加します。
StaticMeshはMaterialSphereを設定して、
Scaleを
X:0.5
Y:0.3
Z:0.3
に設定します。長細い楕円形になったらおっけーです。画像は違うけど気にしないでください
弾マテリアル(MT_Shot)の作成
戻って、次は弾の見た目をまともにすべくマテリアルをいじります。コンテンツブラウザで右クリックしてマテリアルを作成します。
名前はMT_Shotにします。
かなり手抜きですが、とりあえずで。エネルギー弾的なイメージなのでUnlitで自己発光できるようにしてもらいます。
左下の詳細ウィンドウからShadingModelからUnlitを設定します。すると選べるピンの数が一気に減ります。詳細は置いておいて、エミッシブが自己発光してくれるピンなので、VectorParamaterノードかConstant4Vectorを作った後、
R:1.0
G:1.0
B:0.0
に色を変えて一番上のベースカラーをエミッシブカラーに接続します。その後Applyをすると、左上のプレビュー画面のプリミティブなモデルが水色になります。
水色が気に入らない人は別の色でもかまいません。特に支障はないです。
弾クラスの完成
できたら、BP_Shotに戻ります。そして、StaticMeshからMeshのマテリアルの部分を先程作ったMT_Shotを選びます。すると、楕円形が水色に光ります。
その後、ProjectileMovementをきちんと設定して飛ぶようにします。
ProjectileカテゴリからInitialSpeedとMaxSpeedを1000.0に、ProjectileGravityScaleを0.0にします。
InitialSpeedは初速でMaxSpeedは最大速度で、ProjectileGravityScaleはこのアクターにかかる重力の係数になります。
設定ができたらコンパイルして、PlayerStartの近くにBP_Shotを置きます。その後、Playをして飛んでいったら成功です。
これをBP_Playerが飛ばせるようにしようと思いましたが、攻撃アニメーションをつけようと思いましたが、思った以上に面倒なことになったので明日に回します。
ちなみに、StaticMeshのコリジョンがHitのままになってるのでクマにうまいこと当てて、ひっかけられると地平の彼方へと飛んでいきます。


