プライベートな連絡先の最初の情報
送料メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
今回も引き続きスキルの最適化を進め、キャラクターに追加されたアクティブスキルをUIに同期できるようになりました。今回はスキルの消費(マナを減らすスキルの解放)と冷却の仕組みを改善していきます。
スキルクラスのデフォルト値で、冷却と消費GEを設定できることがわかります。
そこで次はGEを使って冷却とスキルの消費を設定していきます。
最初にブループリントを作成します。選択した親クラスは Gameplay Effect です。
火の玉のコストを意味する GE_Cost_FireBolt という名前を付けます。
継続時間を消費するには、インスタントを選択します。
次に、キャラクターのマナ量を減らす修飾子を追加し、スキルが使用されるたびに 20 ずつ減ります。
単純な消費 GE を作成し、スキルに適用します
次に、スキルの Commit Ability ノードを呼び出す必要があります。クールダウンがある場合、このノードはスキルに必要なマナを差し引きます。
コミットアビリティは、マナの差し引きと冷却のための統合されたノードです。もちろん、それを分離して、消費と冷却の差し引きのための個別のノードを設けることもできます。
テスト効果の実行
まず、マナが足りない場合にスキルが発動するかどうかを判断し、消費を処理する前にデータを出力します。
マナ量が十分であれば正常に印刷できますが、マナ量がスキルの解放をサポートできない場合は印刷されません。これは、十分なリソースがないとスキルが入力されないことを証明しています。コミット能力によって判断されることはなく、リソースノードの消費のみに使用されます。
ソース コードを見ると、それが呼び出すコードは K2_CommitAbility です。
CommitAbility が内部で呼び出されてロジックが実装され、消費量がスキルを提供するのに十分であるかどうかがチェックされ、リソースを差し引くために関数が呼び出されます。
CommExecute はリソース控除関数であり、内部でリソース控除と冷却を呼び出します。
「クールダウンの適用」を見てください。これにより、スキルレベルが取得され、GE が ASC に適用されます。
アプリケーションリソースも同様に消費され、スキルレベルも取得されます。
これで、スキル消費を使用すると、スキル レベルによって消費されるマナの量が変更できることがわかりました。テーブルを使用して、さまざまなレベルとマナ消費を定義できます。
そこで、さまざまなレベルでスキルのマナ消費を設定するための新しい曲線テーブルを作成します。
カーブ テーブルを作成し、タイプとして [定数] を選択し、各レベルのマナ消費を固定値に設定します。
CT_Cost という名前
Fireballのレベル1からレベル10までのスキルマナ消費量を内部的に追加します。
次に、GE でカーブ テーブルを使用し、作成した行を選択し、値を -1 に設定します。
次に、テスト用にコード内の初期スキル レベルを変更します。
スキル解放後のマナ量は3倍になっており、設定に問題がないことが分かります。
スキル冷却の原則は、冷却フェーズ中に ASC に冷却タグを適用することです。冷却タグが存在する間は、このスキルを再度使用することはできません。
そこで冷却を実装したいので、まず冷却用のラベルを作成します。
FGameplayTag Cooldown_Fire_FireBolt; //火球术冷却标签
次にタグマネージャーに登録します
GameplayTags.Cooldown_Fire_FireBolt = UGameplayTagsManager::Get()
.AddNativeGameplayTag(
FName("Cooldown.Fire.FireBolt"),
FString("火球术冷却标签")
);
GEを冷やすために火の玉を生成する
GE を時間制限のある持続時間に変更する
ここでわかるように、冷却時間は以前に値を変更するために使用したさまざまな方法を使用して設定できます。ここでは最も単純な方法を使用し、直接 1 秒に設定します。
ここではキャラクター関連のコンテンツを変更する必要はありません。この GE が有効になるときに冷却タグを ASC に追加するだけです。
このコンポーネントを通じてアクタに冷却ラベルを追加し、作成した冷却ラベルを追加します。
次にスキルにクールダウンを適用します
テストを実行すると、スキルは 1 秒間に 1 回しか解放できないことがわかりました。
通常、キャラクターに対してキャラクター スキルのインスタンスは 1 つだけ生成されます。スキルがトリガーされる前にクライアントがスキルをオフにできないようにするため、スキルのモンタージュ アニメーションが終了するか、ミックスインが終了したときにスキルを終了します。強制的にキャンセルされ、スキルが終了すると、モンタージュの再生を続行できるようになります。
また、インスタンス化アビリティの再トリガーをオンにして、再度トリガーしたときに前のトリガーをオフにする必要もあります。
フォローアップ: 消費量があり、UI 上に正しく表示されるようになりましたが、スキル使用後の冷却がまだ実装されていないため、スキルの冷却の進行状況をスキル UI に表示できません。今後の冷却スキルの変更をUIの上に表示します。