43.7K Views
June 21, 22
スライド概要
2020年6月15日に開催された UNREAL ENGINEエデュケーションサミットで弊社ソレイユ株式会社のプログラマー、野中和廣による講演に使用したスライドです。
動画が含まれているスライドなので、動画を再生する場合は、パワーポイントファイルをダウンロードして御覧ください。
ゲーム開発会社、ソレイユ株式会社が公開するドキュメントです。
アクションゲーム調整実装術 ソレイユ株式会社 野中 和廣 © 2022 SOLEIL Ltd.
この資料は 動画を多く含みます。 PDFでは再生されないので、ダウンロードしてからの閲覧を推奨します。 © 2022 SOLEIL Ltd.
はじめに アクションゲームデザイナーが求める機能と、 調整の実装について紹介します。 アニメーションを中心に UnrealEngine 機能の活用についても解説。 アクションゲームをどのように実装するのかを題材に、 ゲーム制作の楽しさを紹介します。 © 2022 SOLEIL Ltd.
自己紹介 野中 和廣(Kazuhiro Nonaka) ソレイユ株式会社 リードプログラマ ソーシャルゲームのサーバー、クライアントエン ジニアとして経験を経て、ソレイユ入社後はプロ ジェクトのリードプログラマーとして従事。 アクション、アニメーション、AI、UI、レベル、 システム、その他雑用なんでも担当しています。 グラフィックは苦手。 © 2022 SOLEIL Ltd. Twitter: @koorinonaka
ソレイユ株式会社 ソレイユ株式会社は、アクションゲームの開発を得意とするゲーム開発会社です。 国内外の多くのアクションゲームの開発に携わっています。 © 2022 SOLEIL Ltd.
ところで 弊社には、他ではあまり聞かない「アクションゲーム デザイナー」と呼ばれる職種が存在します。 何をやる人たちなのか、それは「アクションゲームの 手触りをよくする」ということに尽きます。 ※もちろんゲームバランスの調整、制作進行だったり 他の業務も兼任します。 こう書くと結構、普通のことかもしれないですね。 © 2022 SOLEIL Ltd.
それじゃあ何をやっているのか © 2022 SOLEIL Ltd.
購入アセットを調整しました 攻撃モーションで例えると、以下の動作を意識します。 初動 ... 少しゆっくり、タメ感を出す。敵の場合は攻撃の予備動作として扱う。 本体 ... 振りは素早く、かっこよく。 硬直 ... コンボ入力、もしくは攻撃後の隙、少し長めに。 戻り ... 待機ポーズに戻る。だいたいキャンセル可能。 ※アニメをどう調整するのかは、ゲームの仕様によります © 2022 SOLEIL Ltd.
もちろん実際の現場では 断わっておくと、実際にはアニメーターが要件に合わせて制作するため、 前ページのような基本的な調整は済んでいます。 しかし開発段階では 「避けやすくするために敵の溜めをもっと長くしたいな~」など、 アクション要望に合わせて調整が発生します。 それを都度アニメーターに直してもらうのは大変… © 2022 SOLEIL Ltd.
こうした調整やアニメーターへのフィードバックが、 アクションゲームデザイナーのお仕事です! © 2022 SOLEIL Ltd.
今日お話しすること 開発中のゲーム映像はお見せできないので、 趣味で制作したゲームを実例に紹介します。 © 2022 SOLEIL Ltd.
改めて目次 • アニメの速度調整 • アクション調整に使う AnimNotify の紹介 • アニメキャンセル • 予約入力 • 攻撃判定 • 移動の追従 © 2022 SOLEIL Ltd.
アニメの速度調整 調整をするには以下2つの方法があります。 • AnimComposite • AnimRateScale © 2022 SOLEIL Ltd.
AnimComposite アニメアセットを組み合わせて、一つのアニメとしてまとめるアセット。 各素材の再生開始/終了時間、再生速度などが調整できる。 アニメの一部で切り貼りして、再生速度の強弱をつける。 かなり強引にはなるが、別々のアニメを組み合わせて調整したりもする。 • アニメ A のタメ、アニメ B の攻撃部分を合わせる。 • プロトタイプの確認、アニメーターに発注する前に手早く試作したいときなど。 © 2022 SOLEIL Ltd.
AnimComposite の良い点と悪い点 PROS: • アニメーターに FB するときに、フレームを直接伝えやすい。 • 攻撃や回避など、厳密なフレーム指定がある場合は調整しやすい。 CONS: • 全体尺がズレる。フレームのスナップが効かなくなる。 • 手直しした際に上のレイヤー(Montage)で再調整が発生する。 © 2022 SOLEIL Ltd.
AnimRateScale スケルタルメッシュの再生速度を調整。 USkeletalMeshComponent.GlobalAnimRateScale を変更する。 AnimNotifyState で実装する。 © 2022 SOLEIL Ltd.
AnimRateScale の良い点と悪い点 PROS: • AnimComposite.CONS の解決。 • カーブで再生速度を調整できる。 CONS: • アニメブレンド再生の影響を受ける。 • BlendIn で AnimRateScale を変更すると、BlendOut で再生中のアニメにも Rate 補正が掛かる。 • AnimNotify.TriggerWeightThreshold にて、Blend 中は AnimRateScale を無効にした。 © 2022 SOLEIL Ltd.
一長一短あります どちらを使うかはプロジェクト内で相談してください。 © 2022 SOLEIL Ltd.
AnimNotify とは アニメーションからイベントを通知、実行するための機能。 © 2022 SOLEIL Ltd.
アニメキャンセル 指定フレームでアニメをキャンセルできるようにする。 アニメの自然さと、触ったときの気持ちよさのトレードオフ。 何度も触って調整する。とにかく触る。 © 2022 SOLEIL Ltd.
それぞれのアクションで要求されるフレームは異なるので、 行動毎に指定できるようにする。 • Combo ... 攻撃アニメのコンボフレーム。次の攻撃に繋げる。 • Attack ... コンボではなく、別の攻撃を開始可能なフレーム。 • Dodge ... 回避キャンセル。攻撃より手前に入れることが多い。 • Guard ... ガードキャンセル。同上。 • Move ... 移動キャンセル。戻りフレーム、つまりAllにまとめることが多い。 • All ... 全てのアクションをキャンセルできる。戻りフレームで設定する。 © 2022 SOLEIL Ltd.
予約入力 指定フレーム間で入力を予約する。 最後に入力したキーが最速で入力される。 ※ 連打でもアニメが繋がるようにするのか、 目押しで適切なタイミングでの入力を要求するのか、 ゲームの仕様による。 © 2022 SOLEIL Ltd.
攻撃判定 指定フレームで攻撃判定を行う。 Sphere、Box、武器コリジョンでそれぞれ形状を指定できる。 当たり判定毎に HitName を指定し、DataTable から攻撃情報を取得する。 © 2022 SOLEIL Ltd.
AttackHit データテーブル 攻撃が Hit したときの情報。 • Damage ... ダメージ計算に使う Base 値。 • ConditionalGameplayEffects ... Hit による GameplayEffect の発生。様々な効果の付与を定義する。状 態異常、HP 吸収、ダメージの加算など。 • Anim ... 攻撃に対応して再生されるアニメ。大中小のヤラレ、 ガードの指定など。 • HitEffect ... Hit によるエフェクト&サウンドの再生。 • CameraShake ... Hit によるカメラの揺れ。 UDefaultCameraShakeBase で再生する。 • HitStop ... 攻撃/防御したアクターをストップさせる。 Global ではなく ActorTimeDilation を使う。 © 2022 SOLEIL Ltd.
移動の追従 指定フレームでターゲットへの追従補完を行う。 目標に対してアニメの RootMotion を動的に調整する。 © 2022 SOLEIL Ltd.
MotionWarping は UE5 の新機能! 公式ドキュメント MotionWarping (モーションワープ) は、キャラクターのルートモーション をターゲットに合わせてダイナミックに調整できる機能です。 © 2022 SOLEIL Ltd.
色々な用途に使える • 崖登り、アクロバティックな移動の補正。動的に方向や移動量を変更する。 • ダメージを受けた時の回転。ダメージ方向に指定フレームで回転する。 本当に何にでも使えます! UE5で一番使ってる機能かも。 © 2022 SOLEIL Ltd.
※注意 • RootMotion の移動比率によって処理されるので、移動値が入ってないと そもそも機能しない。 • RootMotion がアセットに含まれているか、EnabledRootMotion に チェックが入っているか確認する。 • マーケットプレイス購入アセットでは、 InPlace と RootMotion 両方に 対応しているものが主流だが、たまに InPlace のみしか含まれていない 場合もある。購入前に確認してください。 © 2022 SOLEIL Ltd.
おまけ 個人開発編1 アクションゲームはキャラ&アニメアセットがないと始まらない。 VRM4U と UE5 のリターゲットで本当に便利な世の中になった。 VRM4U VRM 形式をイイ感じにインポートして くれるプラグイン。NPR 難しいのよ。 Booth などで様々な3D キャラモデル が販売されているので、ゲームに使え る選択肢が多い。 今回の資料には缶詰茶房さんのモデル を使用させていただきました © 2022 SOLEIL Ltd.
UE5でのアニメーションの流用方法について 【Compatible Skeletons, IK Retargeter】 IK Retargeter でリターゲットの 精度があがりました。 マーケットプレイス購入のアニメ アセットがきれいにそのまま流用 できるようになった。 © 2022 SOLEIL Ltd.
おまけ 個人開発編2 KawaiiPhysics で揺れものを設定しよう。 KawaiiPhysics : Simple fake Physics for UnrealEngine4 & 5 手軽に揺れものを設定できるプラグイン。 かわいいは作れる。 いつもお世話になっております。 © 2022 SOLEIL Ltd.
しかし スカートが長いキャラの突き抜けを解決するのは難しい。 → スカートを脚に合わせて回転させるリグを作るといい感じ。 ControlRig の導入にどうぞ。 これらは PostProcessAnimBP に設定する。 プレビュー画面でも、Physics 挙動が確認できるようになる。 © 2022 SOLEIL Ltd.
参考(雑なリンクですいません…) #UE4 のリギングシステム #ControlRig を使ってスカートの突き 抜けをしてみるテスト MetaHumanサンプル解体新書 【UNREAL FEST EXTREME 2021 SUMMER】 © 2022 SOLEIL Ltd.
ソレイユ株式会社では開発者を募集中です! © 2022 SOLEIL Ltd.