Min-Loon Chow:未知の4のために設計したもの。パート2

Uncharted 4ゲームの公式リリースはすでに行われています。このプロジェクトのために私が開発していたことをお伝えできます。 私は主に、シングルプレイヤーゲームのノンプレイヤーキャラクター(NP)とマルチプレイヤーのボットの人工知能の作成に携わり、いくつかのゲームロジックにも取り組みました。 記事のこの部分では、トランスポート管理、ダイアログ中のNPの動作、および中国語でのゲームのローカライズについて説明します。









記事の前の部分はこちらです。



医師



マルチプレイヤーモードの医師は、シングルプレイヤーゲームのシングルプレイヤーには見られないまったく新しいタイプの行動を求めなければなりませんでした。負傷した味方を監視し、シェルター内のプレイヤーの行動を繰り返します。







医師は、シェルター内のプレーヤーの行動を真似て、必要に応じてすぐに救助に来るために、できるだけ近くにいるようにします。 味方が近くで負傷した場合、メディックは彼を復活させますが、プレーヤーが現時点では負傷していないことを条件とします。 プレイヤーがRevivePak MODを持っている場合、医師は救助に走る前に応急処置キット(RevivePak)を投げます-これは回復時間を節約するのに役立ちます。 応急処置キットを投げるとき、手throw弾投げのロジックとアニメーションは完全に繰り返されます-手only弾の代わりに応急処置キットが使用されるという唯一の例外があります。







ステルス



ゲームのもう1つの目新しさは、草が多いエリアです。これにより、プレイヤーのステルス性が向上し、いつの間にか忍び込むことができます。 ゲームロジックの観点から、プレーヤーが見えなくなったときが明確になるように、草でエリアをマークしました。 当初は、草のパッチ用にMayaで衝突モデルを作成するようバックグラウンドアーティストに指示する予定でした。 ただし、アーティストとデザイナー間のコミュニケーションにより、反復時間が大幅に増加しました。 したがって、以下に示すように、別のアプローチを選択し、プロットのレイアウトを決定しました。 デザイナーは自由に新しいタグを使用できるため、エリアを高い精度でマークできます。 これらの追加データを使用して、ステルスポイントが草の中にあるかどうかに基づいて評価することもできます。 これにより、NPの動作が最適化され、プレーヤーがステルスモードになったタイミングを理解して、彼の後を繰り返すことができます。







不安レベル



Uncharted 4には、The Last of Usのように聴覚モードがないため、プレイヤーを驚かせないために、脅威についてプレイヤーに通知する方法を考え出す必要がありました。 そのため、環境の反対者の認識に関するデータに基づいた不安の色指標を導入しました。 インジケーターは、対戦相手が彼の近くで不審な動きに気づいている(白)か、すでに気づいている(黄色)か、プレイヤーを検出した(オレンジ)ことをプレイヤーに通知します。 インジケーターと一緒に、バックグラウンドでブザー音を使用し、緊張を生み出します。また、プレイヤーの存在が認識されたことを知らせるシャープで短い音(The Last of Usなど)を使用します。







検査の実施



これは、ゲームの最後の主要な機能の1つであり、開発に参加しました。 ブルース・ストレリまたはニール・ドラックマンの指導の下で、ほぼ毎週ノーティー・ドッグで集会が開催された時期がありました。 これらの会議では、ゲーム内のAIの開発に特別な注意が払われ、ほとんどの場合、検査システム内の何かを変更または修正する決定が行われました。 それを使用して、最終バージョンに最終的に入ったものを取得する前に、多くの反復処理を行う必要がありました。



敵が疑わしい何かに気づいたとき、彼らは対応するサイトを調べに行きます。 通常、2つの状況がこれを促します:見つかった体またはプレイヤーの直接的な存在の兆候。 疑わしい活動に気付いた敵は、近くの友人の1人に電話をかけて、一緒に検査を行います。 疑わしい活動の発生源に最も近い人が検査官になり、もう1人が観察者になります。 したがって、気づいた人は誰でもこれらの役割のいずれかを取得できます。特にこのために、ダイアログのさまざまなオプションを作成しました:「そこに何かに気づいたので、確認しに行きます」または「そこに気づいたので、確認に行きます」。



検査の開始と終了を自然に見えるようにするために、敵の行動とアラームインジケータを正規化する時間を多様化しました。 したがって、インスペクターとオブザーバーは機械的に動作せず、同時に同じアクションを実行します。







体が検出されると、検査官はプレーヤーが近くにいることをすぐに認識します。 彼は最終的に休息状態を離れ、残りの人にプレーヤーの検索を開始するように指示します。 検出された身体も強調表示されるため、プレーヤーは自分を裏切ったものを正確に知ることができます。







検査中の難易度が高いと、対戦相手はより積極的に行動することができ、芝生に隠れているプレイヤーを見つける可能性が高くなります。 クラッシュの難易度では、敵は検査時に常に攻撃的に振る舞います。



ダイアログの動作



対話動作とは、ジェスチャや外見などを使用して、キャラクターが互いのレプリカに特定の方法で反応するロジックを指します。以前は、開発者チームThe Last of Usは、すべてのダイアログの反応のためにキャラクターを手動で登録するのに数か月かかりました。 しかし、私たちは同じ量の仕事をしたくありませんでした。 手動で指定された動作を備えたダイアログがいくつかありましたが、残りのレプリカを処理するシステムが必要でした。 アニメーターは、頭の回転速度、最大回転角度、視線の長さなどを調整するためのパラメーターを受け取り、最終的には良い結果を達成することができました。







輸送管理



マダガスカルレベルでのテスト時に発生した駆動システムの最初の問題の1つは、プレイヤーが敵の壁や車に衝突したときに、プレイヤーのジープが急激に速度を失ったことでした。 その結果、プレイヤーは船団の背後にいて、レベルを失いました。



衝突時に一時的に角速度を制限し、線速度の方向を変更することを提案しました。 この単純なソリューションは、最終的に非常に効果的であることが判明し、現在、急激な速度の低下による損失のリスクは最小限に抑えられています。







車両損傷



Uncharted 4では、ラインナップ史上初めて、車両を運転することが可能になりました。 前の部分では、NPが運転しており、移動は厳密に固定ルートに沿って行われました。



損傷システムの開発を手伝いました。 敵の車両を無効にする方法はたくさんあります:十分な回数撃ち、ドライバーを殺し、オートバイまたはラムを倒し、ジープで敵のジープを回します。 選択した方法に応じて、このアニメーションまたはそのアニメーションが乗客とともに再生されます。 現実の絵は、物理学のすべての法則を考慮して、ラグドールを使用して作成されます。 その結果、アニメーションはデブリの物理シミュレーションにスムーズに変換されます。







衝突によるオートバイの破壊をシミュレートするために、2種類のデータを使用しました。XZ平面での不可視フレームの交差点(下の画像を参照)とプレイヤーの車との接触点です。 これらのデータに基づいて、システムは4つの破壊アニメーションのいずれかを選択します。



ジープのクーデターに関しては、このために、所望の移動方向からのジープの回転偏差がクーデターのしきい値で検証されます。







破壊アニメーションを再生すると、車やバイクが壁を通過する可能性があります。 これを解決するために、破壊されていないかのように、パスに沿ったトランスポートの理想的な位置のポイントから、トランスポート自体が直接配置されているポイントまで伸ばした球体を使用しました。 球体が表面と接触すると、透過度が必要とする限り、輸送は接触点に垂直な方向にシフトします。 これはすべて、多くのフレームにわたって徐々に行われるため、衝突は防止されます。







また、車両の破壊に関する特に壮観なビューを開発しました。このビューでは、状況に応じて環境と相互作用できる一連の特別な破壊アニメーションが作成されました。 アニメーターとデザイナーは、トランスポートの移動が想定される曲線に沿って配置され、一連のいわゆる窓です。 プレイヤーがそのようなウィンドウ内で敵車両のユニットを破壊すると、特別な破壊アニメーションが開始されます。 1つの例は、2015 E3デモでの壮大なジープ爆発です。



バイエル行列とディザリング



カメラが環境に近づきすぎたときに、環境のオブジェクトを単純に遮断したくありませんでした。 これは特に葉に当てはまりました。 したがって、ピクセルシェーダーがカメラに近づくにつれてピクセルをぼかすことにしました。 透明度を使用すると費用がかかりすぎます。また、ゲーム内には多くの群葉があり、パフォーマンスに影響する可能性があります。 私たちはディザリングに頼りました。 カメラからのピクセル距離データをベイヤー構造のマトリックスと組み合わせると一部のピクセルが完全に切り取られ、透明感が生まれました。







最初に、 ここで説明したように 、8x8 Bayerマトリックスを使用しました 。 しかし、私にはそれが小さすぎるように思われ、さらに、その後、同心円の形のアーチファクトが写真に残った。 16×16のサイズのBayerマトリックスを使用したかったのですが、インターネット上で見つけることができませんでした。 その結果、8x8マトリックスパターンの分析と処理を試み、そのパターンを明らかにしました。 もちろん、手動で行うこともできますが、私は少し楽しみたいと思い、2の累乗のベイヤー行列を生成するツールを作成しました。







マトリックスを置き換えることで、アーティファクトとの戦いが大幅に進歩しました。







爆発遅延



これは非常に小さな編集ですが、私はまだ言及したいと思います。 2015 E3デモのリリースの数週間前に、私は1つのことに気付きました。タワーの爆発中に、爆発の音がすぐに聞こえ、遅れることはありませんでした。 サリーとネイトは彼女からかなりの距離にいたので、これは間違っていました。 この誤算を報告した結果、ビデオの最終バージョンにサウンド遅延が追加されました。



繁体字中国語へのローカライズ



そのため、ゲームのリリースのわずか2週間前に、繁体字中国語のローカライズに慣れることができました。 驚いたことに、そこにいくつかのエラーが見つかりました。 それらのほとんどは英語からの文字通りの翻訳によるもので、その結果、テキストは不自然に見えました。 こんなに短期間で中国語のゲーム全体を独立して実行し、同時に翻訳エラーを特定することは期待していませんでした。 そのため、QA部門の数人に、ゲームの各章を中国語で読み、ビデオで録画するように依頼しました。 次に、すべてのビデオを調べて、それらのビデオで見つかったエラーに注意し、その後すべての資料をローカライズチームに転送しました。 したがって、すべてのエラーを時間通りに修正できました。



それだけです



私が伝えたかったのはそれだけです。 あなたが私の記事を楽しんでくれたことを願っています。



All Articles