■氷の床滑るよ!
氷の床に乗っている間、滑りやすくなります。
氷の床の効果範囲に入ると、キャラクターの移動速度設定から「摩擦」のパラメータが変更され、
地面を滑ってしますようになります。
氷の床から出ると「摩擦」のパラメータは元に戻ります。
1.氷の床アクターの作成
右クリック→ブループリントクラス→アクター
ファイル名を「GM_Fleeze」に変更します。
「GM_Fleeze」ファイルを開きます。
1-1.コンポーネントの追加
コリジョンを追加します。
今回コリジョンはBox Collisionを使用します。
床なので薄く広く配置します。
0.05 10
テスト用に
Hidden in Gameのチェックを外しておきます。
Hidden in Game : ゲーム中は不可視化します。
チェックオンで不可視化。オフで可視化。
1-2-1.摩擦を下げる処理
氷の床に乗ると、滑るようにします。
左のコンポーネントより、
Box Collisionを右クリック→イベントを追加→On Component Begin Overlap
On Component Begin Overlapを配置します。
On Component Begin Overlap
コリジョン内に入るとイベントが開始します。
効果範囲に入ったのがプレイヤーであるか判定します。
Other ActorピンとGet Player Pawnをイコールでつなぎます。
Other Actor : コリジョンに侵入したアクターの情報を取得します。
Get Player Pawn ノード : プレイヤーキャラクターを取得します。
On Component Begin OverlapにBranchノードをつなぎます。
BranchノードのConditionとイコールノードをつなぎます。
オーバーラップしたアクターがプレイヤーであれば、Trueが処理され、
それ以外であれば、Falseが処理されます。
キャラクターの
Character Movement コンポーネント : キャラクターの動きをいい感じにしてくれるコンポーネント
そのパラメータにGround FrictionとBraking Deceleration Walkingがあります。
Ground Friction 地上での摩擦 8.0→0→8.0
Braking Deceleration Walking 歩行時のブレーキ能力 2048→0→2048
これを使用します。
Set Ground Friction ノードを配置し、Branchノードとつなぎます。
パラメータを「0」にします。
Set Braking Deceleration Walkingノードを配置し、
Set Ground Friction ノードとつなぎます。
パラメータを「0」にします。
Get Character Movement ノードを配置し、それぞれのターゲットにつなぎます。
Get Player Characer ノードを配置し、Get Character Movement ノードとつなぎます。
これで、氷の床に乗ると、滑るようになります。
一旦、コンパイルして、起動してみます。
アクターをレベル上に配置します。
1-2-2.摩擦を元に戻す処理
氷の床から出ると、滑らなくなるようにします。
摩擦を元に戻す処理
左のコンポーネントより、
Box Collisionを右クリック→イベントを追加→On Component End Overlap
On Component End Overlapを配置します。
On Component End Overlap
コリジョンから出るとイベントが開始します。
摩擦を下げる処理と同じなので、コピーして貼り付けます。
Set Ground Friction ノードのパラメータを「8.0」にします。
Set Braking Deceleration Walkingノードのパラメータを「2048」にします。
コンパイルして、起動してみます。
氷の床から出ると、滑らなくなりました。