HK-87@UEのブログ -4ページ目

HK-87@UEのブログ

UE4で理想のVRゲームを作るまでの軌跡

進みが悪い・・・。

システム的な修正やらテストやら、地味ーな作業が続いているので
気分転換に敵キャラ作る。

最初のザコ敵といえばゴブリン。
いつも通り 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

で発動。
こんな感じか。
 

できたー。


動画