Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

『ヘブンバーンズレッド』におけるフィールドギミックの裏側

 『ヘブンバーンズレッド』におけるフィールドギミックの裏側

GREE Tech Conference 2024で発表された資料です。
https://techcon.gree.jp/2024/session/TrackB-1

gree_tech

October 25, 2024
Tweet

Video

More Decks by gree_tech

Other Decks in Technology

Transcript

  1. ヘブンバーンズレッド ジャンル RPG リリース 2022/ 2/ 10 配信端末 iOS, Android,

    Steam フィールドを駆け回り、 かけがえのない日常を体験しながら、 命を賭した戦いに挑むドラマチックRPG 5
  2. ヘブンバーンズレッド ジャンル RPG リリース 2022/ 2/ 10 配信端末 iOS, Android,

    Steam フィールドを駆け回り、 かけがえのない日常を体験しながら、 命を賭した戦いに挑むドラマチックRPG 6 本講演は「フィールド」部分に着目した内容
  3. 仕様の概要 • マップに巣食う ボスが超遠距離から放つレーザー • 砲撃エリアに侵入すると起動 • 狙いを定めつつ、 レーザーのエネルギーを溜めて発射 •

    爆発に巻き込まれるとダメージ 23 【ゲーム中の役割】 ★ ボスの脅威を感じさせる ★ 危険な近道を突破するか、安全に遠回りするかといった進行ルートを考えさせる
  4. そもそもレーザーってどういう動きをするの? 24 ★ どんな体験を与えたいかコンセプトを明確にする - 前スライドの仕様や役割などに相当 ★ どんな動きを目指すかを決める - 他作品や映像作品など参考になるものは数多くある

    ★ どんなアセット構成や表現があれば実現できるかを考える - 参考作品を研究したり実装アイディアを組み合わせる レーザーと言っても世の中には色んな表現があるよね 目指すゲーム性によって求められるものは違うから 色々考えることがあるよ
  5. どんな動きを目指すか 【目指す動きに関わる仕様】 ・ 超遠距離から発射される ・ 発射口周辺でエネルギーが段階的に溜まっていき、発射とともに放出 ・ プレイヤーに狙いを定める 【そのためには何が必要か】 ・

    レーザーが遠くから近づいてくるのが分かる動き ・ 発射予兆がわかりやすいエフェクト遷移 ・ レーザーとは別に、照準を定めるアセットや挙動 25
  6. アセット構成 26 レーザー本体 発射口周辺 着弾 発射口周辺 + レーザー本体 + 照準ライン+

    着弾 のアセットで構成 (※ 照準ラインはスライド後半で別途説明します)
  7. レーザーのヒット判定 32 ★ 速度によってすり抜けが発生 ★ パフォーマンス面で不利 ★ どこに当たるかを視覚化しづらい ★ 形状や作りによって位置ズレが起こることがある など

    どうやってつくろうかな? レーザーをでっかい当たり判定で囲んで試してみよう うーん、出来なくはないけど あまり良い手段じゃないかもしれないなぁ
  8. レイキャストについて - 補足 - 33 FちゃんAから、FちゃんBに向かう光線 = Ray 壁 位置: 0

    [m] 10 [m] 20 [m] Hit! 得られた情報 オブジェクト名:壁 位置:10 [m] Fちゃん A Fちゃん B 得られた情報 オブジェクト名:Fちゃん B 位置:20 [m] 当たった物体の情報を取得できたり、 間に障害物がはさまっているのかといったことを判断できる Hit!
  9. レーザーのヒット判定 - フロー図 - 34 ・先端は目標地点へと徐々に近づく ・地形コリジョンへのレイキャスト > ヒット地点を割り出す 目標設定(プレイヤー) ヒットまで繰り返し

    根本から先端へ レイキャスト 目標更新(ヒット箇所) 各種イベント 地形ヒットイベント / プレイヤー被弾判定 など > カメラシェイク、着弾エフェクト、ダメージ処理 着弾 ヒット箇所を目標地点に設定 > 複数ヒット時は発射地点に最も近い箇所を優先 流れを図にしたよ 発射
  10. プレイヤーの被弾判定 - フロー図 - 37 プレイヤーと着弾地点間の距離で判定 > 前スライドの黄色の球体範囲 地形ヒットイベント 判定繰り返し 爆発範囲内か

    遮蔽されているか 判定消滅 一定時間で判定消滅 > トランスポートで避けたりもできるように時間は短め 判定時間経過 プレイヤーから着弾地点へのレイキャスト > 『間に壁や床があった = 爆風が遮られている』   として被弾判定にしない 被弾判定開始 こっちも図にしたよ
  11. ヒット判定のまとめ 38 ★ レイキャストを上手く使いこなす ★ 状況に応じて、コリジョン同士の判定と使い分ける ★ 判定を視覚化できると調整・デバッグ時に便利 ★ 判定は納得感のあるものだと良し

    レイキャストを上手く使うと、色んな表現ができるんだね システムの制約によって実装が難しいこともあるけど、 応用の効く考え方だから覚えておこうっと
  12. 照準ラインの構成 - 補足 - 40 レーザー本体と似た作りだね 【シェーダー】 ・主要素は UVスクロール + Fresnel

    ・ノイズ やボロノイによる粒子の拡散  伸縮しても破綻の少ない見た目 【ボーン】 ・根本と先端の2箇所に仕込む  伸縮する動きの作りやすさに繋がる
  13. 照準の動き - だんだん激しく - 【時間経過で激しさが増す】 ・ターゲットの切り替わり速度 上昇 ・追尾強度 上昇   減衰追従に影響 ・解析が急速に進んで行くかのような表現

    ・プレイヤーに発射が迫る危険性を伝える 45 実際には 移動速度やトランスポート中か、 といった状況に応じてさらに細か く設定されているんだよ
  14. 照準のヒット判定 - フロー図 - 46 レーザー本体と基本の流れは統一化 目標設定(プレイヤー) 発射まで繰り返し 目標へレイキャスト 照準先端の位置更新 (ヒット箇所)

    照準消滅 発射 内部ステート変更に伴った レーザー側の処理 + 照準側の処理 >エフェクト変更や照準の動きなど 照準生成 照準のターゲッティング 内部ステート変更 また図にしてみたよ
  15. ギミック制作のまとめ 47 - 大切なこと- ★ どんな体験を与えたいかコンセプトを明確にする - 仕様や役割などに相当 ★ どんな動きを目指すかを決める

    - 他作品や映像作品など参考になるものは数多くある ★ どんなアセット構成や表現があれば実現できるかを考える - 参考作品を研究したり実装アイディアを組み合わせる ★ 表現したいことを限られた時間内で実現できる実装方法を模索する 続けることで引き出しの量も徐々に増えてくる 大事なので再掲!
  16. 参考 - その他の処理 - 48 ★ 今回は見た目や動きを中心に話したが、他にも色々やっていることがある • ギミック挙動 - 攻撃エリア外に出たりバトル突入等したら攻撃をキャンセルする等

    • UIやステータスへの反映 - 被弾時にHUDを更新したり、バトルのステータスに反映させる • 演出用機能 - インゲーム外でスクリプトから指定地点へレーザーを発射するAPI • 3Dサウンド - 距離や遮蔽に応じた音の減衰など • ダウンロードが発生しにくい仕組み • その他、既存システムで動かすための色々なお作法 紹介しきれなかった 部分はブースで聞けるかも
  17. 参考 - 全体の調整用パラメータ - 49 設定値は非公開だけど、 画像に入り切らないくらい パラメータがあるのがわかるね • ほぼ全てのパラメータを調整可能 -

    UnityのScriptableObject を利用 リアルタイムに調整 & 保存できる • インゲーム内外で読み込むパラメータを変 えている • 作ったらドキュメント化もしよう
  18. まとめ 50 ★ アップデートにより3Dフィールドを駆け回るゲーム性へと進化 - 自由な移動やカメラ操作に耐えられる見た目や凝った仕組み、 演出等が求められるようになった ★ レーザーの作り方に絞って制作の裏側を紹介 -

    実現にあたっての考え方、アセット構成、具体的な実装方法を説明 - 3Dゲーム全般に応用できる考え方なので、 引き出しを増やす、実装のヒントを得る機会へ繋がったら嬉しい おつかれさまでした!