進撃の巨人のようなゲーム
- Teo Tyxant
- 2024年6月23日
- 読了時間: 4分
『進撃の巨人』にインスピレーションを受けた、立体機動装置のメカニズムを完全に実現した、 ゲーム デモです。
モチベーション
プレイヤー自身の意図的な入力におけるアニメのシーンを体験できるように(事前に定義されたモーションやクイックタイムイベントではなく)、最も自己表現を可能にしたいと考えています。
個人的に、これは私が最も誇りに思っている作品の1つであり、空中をスタイリッシュに巧みにスイングするという私の夢を本当に実現しました。このプロジェクトで唯一残念なのは、キャラクター コントローラーが標準以下で、キャラクターが走行できる地形の種類が制限されていること、非物理的なロープ、そしてレベルと敵が不足していることです。
プロジェクトの目標/範囲
目標は、アニメで見られるスタントを忠実に再現しながら、進撃の巨人の立体機動装置を正確に制御できるゲームを作ることでした。要約すると、
カットシーンやクイックタイムイベントはありません
プレイヤーを空中に浮かせておくためのあらかじめ決められた経路などの 近道を使いません
プレイヤーがすべての行動に責任を持つようにします
ただし、これはゲームに慣れるのがかなり難しいことも意味しており、参入障壁が高くなってしまいます。ただし、これは個人的なゲームであり、誰と共有できるものではないため、楽しんでいると認めざるを得ない、後ろめたい喜びになるでしょう。
プロジェクト情報
役割: プログラマー
チーム人数: 1人
期間: 6週間 (2022年3月 - 2022年6月)
ツール: Unreal Engine、Blueprint (Unreal Visual Scripting)、 SuperGrid (マテリアル アセット)、Mixamo (アニメーション アセット)
立体機動装置の機能
面白いことに、ゲームのデザインは操作方法から始まりました。立体機動装置には 2 つの部分があり、それぞれの機能は次のとおりです。
ガス
空中で動くことができない人間を空中で押し出すための作動(垂直方向の推進には WASD、スペースバー、Shift キーを使用)
緊急加速(移動キーをダブルタップ)
アンカーとワイヤー
アンカーの打ち込みと表面への取り付け(マウスの左/右クリック)
ロープの長さ調整
ユーザーをアンカーポイントに引き寄せる(マウスの親指ボタン 1)
最大長さ延長(マウスの親指ボタン2)
瞬時に巻き取る(スクロールホイールをスワイプ)
理想的には、ロープとアンカーの両方の長さを個別に調整して、より細かく制御できるようにしたいのですが、そのためには指を自然な位置から動かす必要があり、特定の動きが不自然になります。また、直感的に不自然な位置に配置される可能性があるため (左のアンカーをマウスの左ボタンで撃ち、右のアンカーも同様に撃つ場合など)、両側のロープの長さを同じボタンで制御することで十分です。

「ワイヤー」の相互作用は、配置されたアンカー ポイントに関するフックの法則に基づいています。プレイヤーが自然な長さを超えると、プレイヤーはアンカー ポイントに引き込まれ始め、プレイヤーが遠くなるほど、力が強くなります。また、最大伸長長さがあり、プレイヤーがそれを超えると、アンカー ポイントに対するプレイヤーの外向きの速度 (Project on to Vector 関数によって実行) が直ちに停止します。表示されている物理的なロープは、Unreal のケーブル コンポーネントを使用した視覚効果にすぎませんでした。
私が追加したかったのは、コライダーと相互作用する物理的なロープですが、単に物理的な制約を使用すると、システムが不安定で予測不可能になり、ロープの調整可能な特性も大幅に制限されます。時間があれば、ロープの物理学に関する研究論文を調べていたでしょう。減衰機能も含めたかったのですが、当時はスプリングダンパーモデルの完全なメカニズムを知りませんでした。
レアルタイムにアニメーションを編集して「爽快感」を高める
私は楽しいアニメーションが大好きなので、「単純なメカニズムを実装するだけでは不十分だ」と考えました。
この方程式には 2 つの部分があります。
入力に応じて胴体を傾ける
入力の応答性を高めるために、加速がゆっくりと始まる前にプレイヤーのアバターに意図を伝え、入力が受け取られたことを示す信号として、いくつかの追加ポーズが実装されました。

プレイヤーキャラクターは、この傾斜機能を使用して、スイング中にアンカーポイントに向かって傾きながら垂直に向きを変え、腰に取り付けられたグラップルフックをスイングするリアルさを高めます。プレイヤーキャラクターは、左フックと右フックのどちらが表面に近いかに応じて異なる方向を向きます。
回転することで失われた勢いを方向転換し、スイング動作を高める