2010-08-31 :-)
_ [CEDEC]CEDEC 2010 - CESA Developers Conference 1日目
オープニングと基調講演は CEDEC の存在意義を確認するものだった。
オープニングスピーチ
- 和田洋一(CESA会長)
- 日本ヤバいとよく聞かれるけど日,米,欧,アジアと比較するとそれほどでもない
- でも違いはある
- ディスカッションする場があるか無いか
- 日本には無い
- 情報や知恵は自分から与えたぶんだけ返ってくる
- 「このひとに話しておけばもっと教えてくれそう」
- クリエイターは 0 から 1 を創りだす、と思われている
- そうじゃない
- まったく 0 というものはもはや無い
- 知恵の積み重ねだ
- なにを what どうやって how 作るのか
- what は自分の中にだけあるもの
- how をみんなで共有すればいい
CEDECとは? −そのもたらす価値の追求−
- 松原健二(CEDECフェロー)
「CEDEC を身近に感じてほしい」
- 元エンジニア
- 1980 - 1990
- IT 業界にいた
- ( マイクロプロセッサを作ってたということだから {N, F, T, H}か )
- 当時 日本はメインプレイヤーに成り損ねた
- もともとメインプレイヤーじゃなかったけど
- 欠けていたもの 3 つ
- 危機感の欠如
- 「日本はこれまでうまくやってきたから大丈夫!」大丈夫じゃない
- 戦略の欠如
- 全体が「トップを追え」という姿勢だった
- トップ = IBM
- みんな IBM を追いかけていた
- そんなではトップになれるわけがない
- 課題共有の欠如
- 持ってる課題はみんなだいたい同じ
- でも顕在化できてなかった
- 海外は課題共有が盛ん
- そーいうのは全部 hp から学んだ
- 危機感の欠如
- 開発者がやること
- 進化の確認
- 危機感の共有
- 進むべき方向性の確認
- 自分を高めるのは自分だけ
- CEDEC とはなんぞや
- ゲームに関わるひとたちのためのイベント
- プログラマがプログラミングスキルを上げるだけではない
- ゲームは開発者のマスターベーションではない
- ビジネスとして考えよう
- 売れなきゃ話にならない
ゲームサウンドにおける理想的なサラウンド体験提供への挑戦~技術交流の取り組み事例~
- 藤澤森茂(ヤマハ)
- 大橋紀幸(ヤマハ)
- 矢島友宏(スクウェア・エニックス)
- 土田善紀(スクウェア・エニックス)
スクウェアのひとからの「RPG の音楽は上下の音を削りまくって圧縮してるんだが FF13 を作るときにそれが不満だった、どうにか出来ないかヤマハさん」という愚痴により始まった技術交流。ソフトウェア担当とハードウェア担当のひとが実現したいことを実現するために妥協点を探す、という取り組みの紹介だった。家庭用の環境向けにチューニングしてイイ感じに出力できるアンプを作ってみました。ということで FF13 をプレイしながらその効果を紹介していた。んだが、違いがあまりよく分からなかった。
抽象化すると:
入力→処理(アンプ)→出力
こんだけっていう
Dub the future of game sound! ~ゲームサウンドの歴史と将来ビジョン~
- 田中宏和(クリーチャーズ)( 田中宏和 - Wikipedia )
- 近藤広明(Dolby Japan)
田中宏和さんに近藤広明さんがインタビューしていく、という形式で進んでいった。途中は会話が途切れそうになったりしてハラハラしたんだがそれでもやはり伝説的なひとの話題なのでけっこう盛り上がった。
田中「横井軍平からの遺言『初対面のひとと ラブテスター すること』ということなのでラブテスターやりましょう近藤さん」
- 田中宏和の歴史
- 最初は任天堂でプログラマやってた
- 音源を設計したり
- そのうち作曲するようになった
- 2000 年にクリーチャーズ作った
- よく「ゲーム音楽のひと」とか「音楽のひと」と言われるけど「サービス業」なんです
- エンターテイメント、娯楽、サービス業。そーいったことをやってるんです
- Dub
- レゲエの Dub
- 完成させずに音を 1 つ 2 つ抽出して音楽を作る(?)
- ゲーム音楽専門なわけじゃない
- ゲームがあっての音楽
- ゲームすべてを 1 人で作ってたころからの人間なので、まずゲームありきで考えている
- ネタ帳
- つねに(エンターテイメントの)ネタを考えている
- 1 曲作るために 20 曲をボツにするくらい
- パッと 1 曲だけ作れる、というわけじゃない
- 背景にたくさんの曲があり、それらを積み重ねて 1 曲を作る
- こういう姿勢を続けていきたい
- 自分が変化していないと見えないものがある
- 走ってるときの風景と止まっているときの風景が異なるように
- 自分がエンターテイメント、娯楽、サービス業をやるために自分は右往左往しておく
質疑応答
- 任天堂時代の印象的なひとは誰?
- 「宮本さん」( 宮本茂 - Wikipedia )
- とにかく徹底している
- 四六時中ゲームのことを考えている。あのひとはおかしい :-)
- 横井軍平との仕事
- 「仕事は遊び」について
- ムダと思えることでも省かなかった
- 仕事のうち 2, 3 割りはムダなことをやっていた
- でもそれがよかった
- ( デマルコの「ゆとりの法則」か )
- それが維持できてるときはうまくいっている
- BGMとSEの作り方
- BGM
- 最初にテーマを 3 つ決める。それから着手する
- 例: めざせポケモンマスター の場合
- 好きなコード進行
- 「アニソンは自分にとって初めての仕事。初めて好きになったコード進行をここで使ってみた」
- 転調
- あともう 1 つ。言葉で表現できない
- 好きなコード進行
- SE
- ユーモアを持たせる
- 場面と音楽があってる、ぐっときた音楽は?
- 初期のナムコ作品。ディグダグ等
- ゲームと音楽とのバランスが絶妙だった
- 20 歳のころ仕事始めたときの環境は印象に残るものだ
- 宮本さんも一目置いていた、と思う
- MOTHER2 の音楽ではメモリなど開発者とモメたか?
- モメてない
- 自分が偉そうにしてたので文句言われなかった :-)
- 自分は自分のイヤな部分から出来ている
- 任天堂は任天堂のイヤな部分から出来ている
- ガンコとか、強さとか。そーいうのが特徴を作る
- どうなるか分からない状況に飛び込め
- 未知のことが起きるときはチャンス
- これまでの経験がまったく役立たない状況を楽しめ
- それは岐路だ。重要な岐路に差し掛かっている
セガ社も認めた静的解析 − ゲーム開発からバグを取り除く方法
- 節政暁生(セガ)
- 内田洋一(セガ)
- 安竹由起夫(コベリティ)
PR トラックなので Coverity のひとが最初に製品紹介。そのあとにセガのひとが事例紹介。静的解析は私も以前客先でやってたんだが、お客によるとやはり最初はみんなあまり乗り気じゃなく、しかしそれでも解析しておくとそれなりに効果あったらしい。
- Coverity紹介
- よくある警告
- バッファオーバーラン
- 変数の未初期化
- 未到達コード。論理演算を誤っている
- 単純ミスはコード流用時に多い
- セガ事例
- 2006 - 2007 開発が大規模化。静的解析やろうぜ
- 携帯、自動車、組み込み業界では割りと使われている
- PSU( ファンタシースターユニバース )で実践してみた
- すでに運営してるのである程度動的解析は出来ている
- 再現性が低いバグがある
- 静的解析してみたら発見できた
- 自動化のメリット
- 人に言われるとムカつくけど機械に言われるとムカつかない :-)
- 毎日実行
- チェックチームは機能チェックに時間を割けるようになった
- 社外開発にも適用
- 最初は「面倒くさい」「ほんとに効果あんの?」と懐疑的だったが実際にやってみせると納得してもらえる
- ライブラリ、ミドルウェアにはよくバグがある
- 運用実績
- PC, Xbox360, PS3, PSP....
- アミューズメントにも使い始めた
社外事例としてファンタシースターポータブルでのアルファシステムとの開発事例。こんな感じだった。アルファシステムからセガへソースコードをコミットして、セガ社内で解析して解析結果を保存しておく。アルファシステムからセガ社内の解析結果をブラウズする。
It's a showtime!! -DISSIDIA FINAL FANTASYのAI設計-
- 下田翔大(スクウェア・エニックス)
AI と言っても学習させていくようなもんじゃなくて、条件 => アクションの組み合わせなのね( awk のように )
- AIの要件
- 短時間のバトルで特徴、味を出す
- 対 AI 戦はショーである
- FF キャラらしさを醸しだす
- 性格とスキル
- 性格
- 時間、場面ごとにアピールすることを明確にする
- 朝、昼、晩など。デートを想定してみよう
- スキル
- スキル発動の要因は単純にしておく
- いろいろな要素をからめると分かりづらくなる
- 性格とスキルをタイムラインに当てはめる
- 弱いAIはこういうアルゴリズムを適用させない
- 性格
移動(性格) ↓ 攻防(スキル) ↓ 反撃(性格) ↓ 移動(性格) ↓ 攻防(スキル)
- データとプログラム
- キャラにはデータ 4 つのみ持たせる
- 射程距離
- 避け方
- 攻撃の間合い
- あとなにか
- プログラム
- 移動の仕方は共通
- 相手のベクトルの手前に向かう
- 曲線を描く
- タイミングによってはエアダッシュ
- これによりプレイヤーと AI が様子をうかがいあうということが出来るようになった
- 人間くささを演出する
- キャラにはデータ 4 つのみ持たせる
- アルゴリズム実例
- 全体構成
- 自分と相手の HP などの組み合わせごとの行動を決める
- 基本アルゴリズムを組み合わせて行動セットを作る
- 攻撃の基本は移動して攻防するだけ
- 他はエラー、例外処理
- 反応型にはバグがあった
- 学習させることにした
- プレイヤーの攻撃を回避 or ガードの成功率によって行動させる
- バトル開始後から学習させる
- (ファイルに保存させずメモリに持つのみということか。そりゃそうか)
- 全体構成
質疑応答
- 参考にしたものは何?
- スマッシュブラザーズ
- プレイヤーキャラをまったく動かさずに AI の動きを観察するなど
- 他に参考にできるゲームがあまり無いのでみんなどんどん発表しようず
- ワークフロー
- プログラマの隣で作業
- AI の仕様( Excel で組み合わせの表を作る )をひたすら作る
- 実装
- ゲーム中での強さの設定
- ゲーム中に設定画面はあるけど、設定させるために仕様を作ったわけじゃない
- せっかくの仕様があるからプレイヤーに見せよう、ということになった