進みが悪い・・・。
システム的な修正やらテストやら、地味ーな作業が続いているので
気分転換に敵キャラ作る。
最初のザコ敵といえばゴブリン。
いつも通り Houdini でモデリング。
すばしっこい、ちょこまかした種族のイメージで作る。
なのでサイズはちいさく、けどスケルトンはNPCと共用。
色は・・・緑でいいか。
Unreal はサイズの違うキャラでもモーションを流用できるのがいいね。
走りモーションと攻撃モーションを追加。
これも Houdini でNPCの歩きモーションと、前に撮っておいた剣攻撃モーションを飛び上がる感じに加工する。
・・・
できた。
----
今回、攻撃アクションは、Ability System で作ってみよう。
以前少しだけ使ったことはあるけれど、完全に忘れているので思い出しながら・・・。
まず下準備
- Gameplay Abilities プラグインを有効化
- C++モジュールに GameplayAbilities, GameplayTags, GameplayTasks への依存を追加
- Character クラスに UAbilitySystemComponent* プロパティを追加
- Character クラスに IAbilitySystemInterface を継承させる。
- IAbilitySystemInterface の GetAbilitySystemComponent() 関数をオーバーライドする。
- コンストラクタで UAbilitySystemComponent を生成する。
- BeginPlay関数で InitAbilityActorInfo() を呼ぶ
- PossessedBy関数でRefreshAbilityActorInfo() を呼ぶ
- UGameplayAbility を継承した、プロジェクト専用のAbility基底クラスを作成しておく。
--
各Ability の BP を作成する。
Ability 処理の中身は・・・
- Event Activate Ability でアビリティ発動開始
- 必ず Commit Ability を呼ぶ
- GetSkeletalMeshComponentFromActorInfo からの Play Montage でアニメーション再生
- End Ability で終了
--
各Ability は Character にあらかじめ所有させる必要がある。
初期装備の Ability は Character クラスのプロパティにリストで持たせて
BeginPlay() で GiveAbility() する。
--
Abilityの発動
- AbilitySystemComponent → Try Activate Abilities by Tag
で発動。
こんな感じか。
できたー。
HK-87@UE5@ue4master80
Goblins Attack. 第0089回 / ゴブリン攻撃 https://t.co/3gzOJ6T6BT #ue4 #ue5 #gamedev #indiedev #indiegamedev #indiegame… https://t.co/3MIxNfMyIE
2021年07月17日 15:44