Transcript スライド 1
最新のコンピュータゲームで 使われている情報技術 甲南大学 知能情報学部 新田 直也 自己紹介 • 甲南大学 知能情報学部 講師 • ソフトウェアの作り方に関する研究を している. • 大学卒業後,ソフトウェア会社に6年 間プログラマとして勤める. 講演の内容 • お話すること – – – – コンピュータゲームの世界的動向 日本のゲーム開発における課題 ゲーム開発に必要な知識と技能 これからのゲーム 最新ゲームの例:Crysis (1/2) • 2007年,ドイツ Crytek社によって開発. • 一人称視点シューティングゲーム(ファースト パーソンシューティング,FPS) • 発売当時,最高スペックのPCでも完全には動作 しなかった. • 世界最高レベルの3DCG,高度な物理演算,人 間らしく振る舞うAI等の機能を有する. 最新ゲームの例:Crysis (2/2) • プレイ動画のデモ コンピュータゲームの 世界的動向(1/2) • 世界のゲーム市場の規模は日本の規模 の8倍以上(しかも差が開きつつある) 6000 • 世界はPCゲームが主流: – ゲーム専用機よりPCの 方が性能が高い. – ソフトを開発する環境が 整備されている. – 最初からインターネット が使える. 日本 海外 44000 単位:億円 コンピュータゲームの 世界的動向(2/2) • FPSを中心に3DCG,物理演算,人工知能等が 飛躍的に高度化. • 機能の高度化と並行して,ソフトウェアが大規模 化(開発コストが増大). – 開発コストは映画の予算を超える. – ただし,開発コストのほとんどは人件費 (プログラミングとCGデザイン). →ゲームエンジンを利用することで開発を効率化. ゲームプログラミング • ゲームの場合,C++が主流. • メタルギアソリッドで約100万行のプログラ ムが書かれたと言われる.(印刷すると, 約4000m!!) • 1000行当たり100万円,1人で1ヶ月分の 作業. →開発費用10憶円? →100人で10ヶ月? ゲームエンジン(1/3) • ゲームプログラムの土台 1つのゲーム エンジンから… シューティング ロールプレイング レーシング いろんな ゲームを 作ることが できる ゲームエンジン(2/3) • マルチプラットフォーム性 いろんなハード 向けに作られて いるので… PC用 Wii用 PS3用 PC用 Wii用 PS3用 いろんな ハードに 対応できる ゲームエンジン(3/3) • 欧米では多くのゲームがゲームエンジンを使って 開発されている. • 市販されているゲームエンジンも多い. • 代表的な商用ゲームエンジン: – UnrealEngine3.0 (Epic Games社, Gears of Warなど多数で使用) – CryENGINE2 (Crytek社, CRYSISで使用) • ゲームエンジンの宣伝用にゲームが開発されて いる. 日本のゲーム業界の現状 • 全体の売り上げは低下傾向. • 技術的には欧米に遅れをとっている. • 市販されているゲームエンジンはない. – カプコンのMTフレームワークは,ロストプラ ネット,デビルメイクライ4,バイオハザード5な どで利用されているが,基本的にカプコン社 内向け. • 優秀な技術者は欧米ほど多くない. 日本のゲーム研究の現状 • ほとんど研究は行われていない. • 「ゲーム=遊び」のイメージ? 研究としてあまり評価されない. • そもそもゲームで遊んでいる研究者が少 ない? • ゲームの開発現場を知っている研究者が いない? ゲームエンジンで 使われている技術 • ゲームエンジンにはゲームで必要とされるさまざ まな機能が組み込まれている. – 高度な3Dグラフィックス(影の計算,炎などの演出, 水面の表現,肌の表現など) – 物理演算(自由落下,衝突判定,力学演算) – AI機能 – 並列計算処理 – 通信機能 – 言語処理系 v1・v2 = |v1||v2|cosθ f = ma 3DCGのトレンド • 描画の高速化から,水面表現やさまざまなエフ ェクトなど表現力の向上へ.(西川善治「3Dグラフィックスマニ アックス」http://journal.mycom.co.jp/column/graphics/index.html参照) – グラフィックカード(GPU)の機能拡張ではなくプログラ マブルシェーダで対応. プログラマブルシェーダを 使った水面表現の例 (Half-Life 2) GPUとCPUの進化 • CPUはクロック数を上げることによる高速化が限 界を迎え,マルチコアなどの並列化へ. • GPUは高速かつ単純なベクトル演算から高度な 演算か可能なプログラマブルシェーダへ. →CPUとGPUの統合. • インテルのLarrabee. – GPUにCPUを搭載する. – 各CPUユニットは pentium 高速な物理演算(1/2) • リアルタイムでの物理的振る舞いを実現するた めには,高速な衝突判定処理と力学演算処理 が必要. – 衝突判定処理は「ゲームプログラミングのためのリア ルタイム衝突判定」参照.(ただし,2次計画法や凸幾 何などの知識が必要.) – 力学演算処理,特に剛体力学演算では,拘束力の計 算がポイント. 拘束力 • 運動方程式と拘束条件式から拘束力 を解く(線形計画問題)とO(n3). 重力 高速な物理演算(2/2) • ペナルティ法. – 剛体をいったん仮想的にめり込ませて,仮想的なバ ネとダンパを使ってめり込みを漸近的に解消させる. – 計算量はO(n) . – ただし,めり込みを解消するまでに時間を要する. ビデオゲームAI • AIは基本的に敵の動きで使う. • 従来のAI技術との違い. – リアルタイム性(将棋やチェスとは違う.) – ゲーム性と整合(賢すぎても駄目?) • 地勢的推論 – 3Dの空間を認識して,さまざまな条件下で自 分が進むべき方向(道)を探し出す. さいごに • ゲームに関連する研究分野は多岐にわた る. • 欧米諸国に追いつくには,日本でも学術 的な研究が必要.