ジャンプしようと、スペースバーを押しっぱなしにすると、ジャンプのアニメがループ再生されてしまいますし、スペースバーを連打すると、ふなっしーのような変な動きになってしまいます。波動拳でも同じ現象が起きます。
今回はこれを修正します。
アンリアル・エディタを起動し、テストMMDをダブルクリックして開きます。
BP_キャラクターアニメをダブルクリックして開きます。
ブループリントを見てみると、キーを押している間だけアニメーションが再生されるようになっているのが分かりますね。
変数ジャンプと波動拳のピンを右クリックして、ワイヤの接続を切断します。
接続が解除されました。
グラフ上を右クリックして、検索窓を開き、sequence と入力し、Sequence を選択します。
Sequence が配置されました。このSequenceは上から順番に実行していくというノードです。
グラフ上を右クリックして、検索窓を開き、ブランチと入力し、ブランチを配置し複製します。
グラフ上を右クリックして、検索窓を開き、do と入力し、DoOnce を配置し複製します。
この DoOnce は、一回だけ実行するというノードです。
さらにSequenceをふたつ複製して配置します。
グラフ上を右クリックして、検索窓を開き、delay と入力し、Delay を配置し複製します。
Delay が配置されました。
変数ジャンプと波動拳を複製します。
図のようにジャンプと波動拳のチェックボックスにチェックを一個づつ入れます。
Sequence と、ブランチを図のように繋ぎます。
DoOnceとSequenceも図のように繋ぎます。
Delay と変数ジャンプと波動拳を図のように繋ぎます。Delayに繋がる変数はチェックが外れていることを確認してください。
両方のDelay の Duration に0.8を入力します。
画像をクリックするとブループリントの全体を見ることができます。
キーを押すと、1回だけ0.8秒のアニメが再生され、キーを離すと、リセットされるというプログラムです。
波動拳を打つタイミングもこれに合わせる必要があります。
BP_キャラクターをダブルクリックして開きます。
Delay の Duration に 0.8 と入力します。
早速コンパイルして、プレイしてみましょう。
波動拳は修正されましたが、ジャンプが微妙な感じです。ジャンプの Delay も調整してタイミングを合わせます。
ジャンプに繋がる Delay の Duration を1.1に変えてみました。
コンパイルしてプレイしてみます。
正常な動きになりましたが、あるタイミングでたまに変な動きになったりします。
これを改善する方法は宿題とさせてください。