まだタイトルない

アウトプット用です

【本読んだ】FINAL FANTASY XV の人工知能 - ゲームAIから見える未来

こんにちは

今回はこの本を紹介しつつ、自分用のメモを後半に載せます。
旅行中に何らかの勉強になる本を読めないかということでこの本を買って読みました。

読んだ感想としては

  • そもそも期待してはいなかったが機械学習関係の話も含まれていてまだまだ凄いゲームが生まれるというワクワクを感じた
  • FFXVにはたくさんのAIが使われており、種類は多くてもその目的は一つ、プレイヤーを没入させて楽しませる
  • ここまでユーザビリティを考えているかと感動したと同時に自分がプレイ時に汲み取れな過ぎて申し訳なく感じた
  • もう一回遊びたくなった
  • ゲーム内の画像も、開発画面もある
  • 数式もあるがFFXVについてもっと知りたい人は読むべき一冊と思った

という感じです。

下の写真のように伏線を張りながら読みましたがメモも取りながらのほうが良かったかも
f:id:teyoblog:20200721193617p:plain:w400

それでは、以下自分用メモ

ゲームAIの3つの柱

1. キャラクターAI

NPCや味方キャラクター、敵の知識を表現する。

2. ナビゲーションAI

オープンワールドなので、移動中バトル中にあらゆる移動が発生する。そこで使われる地形に関する知識表現。

3. メタAI

神視点の知識。ゲームが面白くなるようにコントロールしている・

意思決定

意思決定処理は条件分岐を組み合わせることでも実装可能だが、分岐量が膨大になるので意思決定をAI(アルゴリズム)化した。

 障害物への対応

キャラクターの移動に関わる障害物は大きく3種類存在する。

  • 建物のような常にそこにあるもの
  • 多くの時間は止まっているがたまに移動するもの
  • 常に移動するもの(仲間キャラクターやNPC

常に移動するものに対しては、待機するなどの選択肢がある。
たまに動くものに関しては別の手法で対応。

フェイシャルアニメーションの技術

  • 人間の顔には約40の表情筋がある
  • 表情筋に寄る動きが見た目を支配しており、これを表現するためにFFXVのキャラクターには130本以上のジョイントが配置されている。
  • PSDという技術を用いて、3Dでの動きを表現している場面がある。
    • 顔をしかめた時眉間にシワを表現したり、腕を曲げた時力こぶを表現できる。

リップシンク

リップシンクとは、キャラクターの発する言葉に合わせた口の動きの表現のこと。
言語ごとに対応させることをローカリゼーションと呼ぶ。

  • FFXVは音声が4言語、文字が12言語に対応
  • ローカリゼーションの考え方は2種類ある
    • 1.主言語を決めたら(例えば日本語)他の言語の音をその口の動きになるべく合わせる(映画の日本語吹き替え的な感じかな?
    • 2.口の動きも音声の種類だけ用意
  • 現在販売されている多くのゲームは1
  • FFXVは英語と日本語を用意 他の2言語は日本語の口にあうように調整
  • 体と顔のアニメーションを分けている。
  • 目は口ほどに物を言うと言うことでまばたきの頻度や速さでキャラクターの状態を表現

参考動画 https://www.youtube.com/watch?v=jo2lYYov6o8&feature=youtu.be

複雑なアニメーションの品質管理

位置検索システム

PQS(Point Query System)
ナビゲーションAIが目指す目的地を決めるためのシステム

  • ゲームのローディング中にクエリを生成している

CX

  • 西洋のプレイヤーは説得力があるほど作品に入り込む
    • 華奢なキャラクターが大剣を振ることはリアリティがかけていて好まれない
    • 西洋のヒーローはムキムキになりがち
  • 人間がしない行動をなくしていく/人間らしい挙動を追加する
    • 仲間が不自然な距離(鼻の先)に近づいてこないようにする
    • 直立不動を避ける
  • 人間らしい挙動をランダムで発生させるのではなく、キャラクターの意識のもとに挙動を決定する
  • プレイヤーが移動の方向を変えた途端に仲間も方向を変えるのは不自然
    • プレイヤーの進行方向予測や、仲間が方向転換を認識しているかなどの判定を組み込んでいる
    • 例)プレイヤーがその場でぐるぐる回っても仲間は動かない
  • 敵の行動にも意思を感じさせるAIを
  • 魔導アーマーのAIには乱数を入れず、行動がパターン化するようにし、プレイヤーに攻略方法を掴んでもらうようにする

アンビエントAI

プレイヤーは好きな時間に好きな場所に行くことができるので(特殊なケースを除く)、それに合わせて自然な街を演出する必要があります。そこで、我々はゲーム演出のため、その都度NPCを配置するという考え方ではなく、「朝起きて仕事に行く」「お昼になったr食事に行く」「中のいい人がいたらその人と話す」など、現実の人間と同じように街のNPCを行動させ、プレイヤーが自然に溶け込めるような専用のAIシステムを設計しました。そのシステムを総称して「アンビエントAI」と呼びます。

  • キャラクターの生成、スケジュールの生成、特殊行動の生成等・・・
  • ゲーム中に自動で撮影される写真についても、スコア付けや、シーンのバランス等AIによる判断の元自動撮影されている。
  • でっち上げ写真も作られるらしいけど気付いた記憶なし
  • 顔が整っている人ほど記憶に残りにくいという観点から、モブは平均的な顔をベースに作成
  • 別々で生成された同じ人物が、あるき回ることで出会ってしまうことが起こりうるのでそれの対策のためのAIも作ったとのこと
  • データ分析のためのログ蓄積もするようにしている
    • mongoDB等

その他

どの攻撃の選択部分に関して機械学習を採用する未来も検討?

あとがき

本来なら自分用メモも含めて多くの人に読みたいと思わせたかったです。それほど読む前後でFFXVへの印象が変わりました。
技術書なら今後の自分のために覚えておくべきポイントをまとめるっていう方針のもと進めればズッコケはしないはずなのですが、興味があって読んだ本を読書感想文にならないように且つ自分のためのアウトプットをしつつ更に魅力を伝えるのは難しいですね。