グィザッド(開発中)
ゴブリンは奴隷種族であり、魔法使いによって捕らえられ、労働力として飼育されている。ゴブリンは地下の巨大建造物に閉じ込められ、永遠の滅亡を運命づけられている。グウィザードが彼らを救わない限りは。
期間: 03/25 - 現在
チーム: 6人
ジャンル: ブーマーシューター
役割: 唯一のプログラマー
長さ(プロトタイプ): 3 つのユニークな銃、2 つのレベル、属性の相乗効果、敵 AI を備えた 30 分間の体験。
働き時間: 60時間
責任
武器システム
敵AI(開発中)
目標
継続的な開発のためのコードベースを構築する
Unreal Reflection System を学ぶ
ブループリントとC++の違いを理解する
武器システム
ブーマーシューターである私たちにとって、ユニークな操作感を持つ複数の銃はゲームの核心です。この利点を最大限に活用するために、私は様々な入力構造(自動、チャージ、セミオートなど)をサポートし、単一のロジックシステムで管理しながら異なるコードを記述できる武器とダメージシステムを作成しました。
ここでのプロセスは他のプロジェクトとは異なり、スケッチ段階を省略して直接実装に進むことができます。
まず、デザインチームが指定したデータ構造とデータアセットの作成から始めます。これは、実装を開始する際に、データの圧縮方法や整理方法をリファクタリングする必要がないようにするためです。次に、アクタ、コンポーネント、そしてUnreal Engineサブシステム間の様々な機能を整理するためのクラス構造の構築を開始します。完全に動作するようになったら、デザインチームからフィードバックを得て、最終的な構成を行い、デバッグ作業に取り掛かります。
データ的設計
武器は、武器データと武器攻撃データという2つの主要なデータアセットに分類されます。
武器データは、武器の使用に関する情報(入力、弾薬数と予備弾薬数、アニメーションなど)を保存します。攻撃データは、武器のダメージの与え方、ダメージ量、弾薬消費量に直接関連するデータを参照します。
これらの武器は、武器と武器の切り替えに関するすべてのロジックと入力を処理するアクターコンポーネントによって制御されます。
ダメージシステム
ダメージはアクターコンポーネントによって処理されるため、既存のアクターに適用できます。基本クラスは体力と属性のシナジー検出を処理します。Environmental の派生クラスはオブジェクトの破壊に関するカスタム VFX を処理し、Animated は死亡シーケンスのアニメーションを可能にします。これは、プレイヤー、敵、その他のアニメーション化された死亡シーンに役立ちます。
反省
Gwizzardは私にとって大きな飛躍でした。それまでUnrealでC++を使ったことがなかったからです。しかし、ブループリントのプロトタイプを使うことで、直接参照できるものがあったので、学習に非常に役立ちました。C++コードを実装し、変数へのアクセスを管理するUnreal Reflection Systemを学ぶことができ、ブループリントとC++を統合する最適な方法も学びました。
今後は、発射物の処理、オブジェクトのプーリング、データ管理、大きな方程式など、プログラマーのみで実装する部分にC++を使用する予定です。ブループリントは、実装アイデア(特にUnrealの変数名変更を回避するためのデータアセット)のプロトタイプ作成や、デザイナーによる頻繁なイテレーションや編集の対象となるシステムのプロトタイプ作成に最適です。これにより、アートアセットとそのタイミングを効果的に変更できるようになります。