序文
スキル システムを作成してみて、それが可能な限り完璧であることを望みます。現在考えられる要素としては、コントロール、モデル、アニメーション、効果音、特殊効果、当たり判定、イベント応答、ダメージ判定、バフ制御などが考えられます。すべての要素を 1 つのエディターにまとめられるため、企画やアートの運用に便利です。
入力制御
これをInput System
クロスプラットフォームとして使用して入力応答を受信し、それをCharacter
スクリプトに統合し、Character
イベントOnCharacterEvent
ノードを使用して対応する操作をリッスンします。
public void AddActionStarted(string actionName,Action<InputAction.CallbackContext> callback)
{
GetInputAction(actionName).started += callback;
}
public void AddActionPerformed(string actionName, Action<InputAction.CallbackContext> callback)
{
GetInputAction(actionName).performed += callback;
}
public void AddActionCanceled(string actionName, Action<InputAction.CallbackContext> callback)
{
GetInputAction(actionName).canceled += callback;
}
private InputAction GetInputAction(string actionName)
{
var action = _inputCharacterGamePlay.FindAction(actionName, throwIfNotFound: true);
return action;
}
スキルエディター
統合ツールとして使用すると、、、、 をスキルに追加Timeline
でき、いつでもプレビューできます。具体的な操作については公式チュートリアルを参照してください。1 つはトリガー条件として拡張されており、コンボ アニメーションの接続が可能な限り合理的になるように、一定のトリガー範囲が規定されています。动画
特效
音效
物体控制
扩展脚本
Scene
PlayableAsset
Combo
キャラクターエディター
複数のスキルを編集した後、すべてのスキルを調整するにはキャラクターエディターが必ず必要になります。スキルプレイのルールを統一し、当たり判定などの一連の操作を行い、キャラクターの操作ロジックを突き詰める。
ここでは、キャラクターのシリーズ情報を保存するのに便利なCharacter
継承によってScriptableObject
実装されており、CharacterEditor
キャラクターの一部の属性、スキル、制御ロジックを編集および保存するために拡張機能が使用されています。
スキルトリガー
キャラクター エディターでノードを作成しOnCharacterEvent
、Skill
ノードを作成して接続して、プレイ機能をトリガーします。イベントはInput System
トリガーをサポートしており、Input Action
名前を直接入力することで現在の入力によって返されるパラメーターを取得できます。
現在のスキルにスキル効果が必要な場合は、コンボを実行することで発動できるTimeline
複数のスキルを作成しますOnCombo
。マルチコンボアクションは次のとおりです。
- コンボA
- コンボAA
- コンボAAA
基本的なアニメーション
スキルアニメーションの他にIdle
、 、Walk
などJump
の通常のアニメーションもあります。もともと、スキルを使って一連のソリューションを実装したいと思っていましたTimeline
が、いつも少し場違いに感じていました。Animator
いくつかの基本的なアニメーションの切り替えをより合理的に行うために、ここでもデフォルトが使用されています。
に追加された値を入力して戻り値としてInput System
使用するmovement
と、キーボード、Xbox ジョイスティック、およびモバイル仮想ジョイスティックをすべて値にマッピングして、キャラクターを簡単に制御できます。基本アニメーションの表示Input Action
Vector2
WASD
Vector2
衝撃チェック
ここでは主にキャラクターのブロードソードにコリジョン ボックスをバインドし、Timeline
スキル キャスト アニメーションの特定の範囲内でコリジョン ボックスを開くことと組み合わせて、攻撃の衝突をより合理的にしました。また、エディターにテストエネミーを作成するためのショートカットボタンが追加され、Create Enemy
衝突を検知しながら現在のキャラクターが発動しているスキル情報を取得することができます。敵にダメージ判定を行ったり、ヒットアニメーションを再生したり、BUFFやDEBUFFを付与することができます。
コンボ スキルも別のスキルであるため、各コンボ アクションには独自の属性があり、さまざまなコンボ アニメーションに応じて敵により大きなダメージを与えることができます。
敵のヒット表示
バフシステム
Buff
主に、キャラクターの属性が常に変更されるタイマー駆動の状態です。これには多くの機能が含まれており、キャラクター自身の属性の一部を変更するだけでなく、キャラクターに対して无敌
、击飞
、击退
、沉默
、恐惧
、嘲讽
などの他の操作を実行することもできます禁锢
。キャラクターの再利用率が非常に高い
ため、ここにプールを設け、キャラクターがスキル攻撃を受けるとその中から1つ取り出して初期化し、現在いるキャラクターを全て巡回して優先順位を決定し、次に、対応するロジックを実行します。タイマーが終了すると、プールにリサイクルされます。継続存在期間中、基本属性+各種要素からキャラクターのリアルタイム属性が合成されます。Buff
Buff
Buff Pool
Buff
Buff
Buff
Buff
Buff
Buff
つづく
特定のニーズによっては、スキル システムの複雑さはそれ以上になります。現時点ではまだ設計や完成度が高くない点が多く、ポイントベースの解説となっており、今後も継続的に修正・更新していきます。
このブログはここでの紹介とみなすことができます。