2010年12月13日月曜日

ゲームの世界観とはなにか

 

...play a game...photo © 2010 Andreas Firyn | more info (via: Wylio)

ゲームデザインのお勉強として「ヒットする」のゲームデザイン――ユーザーモデルによるマーケット主導型デザインという本を読んでいる。マーケット主導云々というとなにやらおもしろいゲーム作りたいという目的から外れたことやらせようとしてんじゃないかという感じがするが、「あるデザインはこんなユーザーは喜ぶが別のユーザーは喜ばないかも」という至極まっとうな説明のために、最初にこんなユーザーモデルがありますよと説明しているというものであった。まあ、こう売りたかったらこういうユーザーに受けるように作ってね、という話ももちろん入っているが。ゲームがどういう要素で構成されててそれらがどんな名前で呼ばれててどういう事を考えてデザインするのか、というのがざっくり説明されててなかなか良い本だった。値段も技術書としては平均的なところ。

そのなかでふむふむと唸って読んだ章がⅡ部8章のゲーム世界観という箇所だった。ゲーム世界観というのはいわゆる世界設定の事ではなく、ゲーム内の世界のルールのことを指すらしい(少なくともこの本では)。ゲーム世界観はゲーム世界の性質、プレイヤーと世界のやり取り、世界の表現方法などのルールで、ゲームでは様々な制約や都合により現実世界とは異なる抽象化された世界が表現されるため、これを定める必要がある。すべてのゲームには世界観が存在し、たとえば本の中で例に挙げられていたパックマンで言うなら「世界は2Dの迷路で構成されていて、パックマンがこの迷路を動きまわってドットを食べて点数を上げる。カラフルなモンスターと接触すると死ぬ。迷路の端まで移動すると反対側に現れる。」というようなものだ。

パックマンの要約はほぼゲームプレイの部分の説明だが、世界観を構築することはより難しい作業であり、紙の上ではよく見えたものが実際には技術や予算(時間)の制約から実現不可能であったりプレイに適さなかったりという落とし穴があるので、これらを回避しなければならない。そして実現可能であるだけでなく、ゲームの長所を引き出し、ターゲットユーザーに合った世界観をゲームデザイナーは構築しなければならない、らしい。

以上のような話のほかに、世界観に関わる内容(リアリティ・視点・アバターとエージェント・世界の分割・時間の扱いなど)がこの8章で扱われている。それらの表象を組み合わせ、調和の取れて首尾一貫したゲーム世界観を創り上げることが重要だ。それに失敗した場合、プレーヤーはゲーム内の世界の論理を学習できず、予想がしばしば裏切られ、苛立ちを募らせることになる。

2010年11月11日木曜日

読んだ:ゲームデザイン脳 ―桝田省治の発想とワザ―

なるほどゲームデザイナってこういう事考えて仕事してんのねと素直にするする読めた。

  • 思いついたネタの自分なりに推したい点を短いフレーズにして、タイプが違う複数人に面白そうか聞いてみる
  • ゲームはテーマをシナリオで語るのではなく、システムやバランスをコントロールすることでプレイヤーの体験を通して伝えることも出来る
  • 大義名分でプレイヤーの枷を外す
  • プレイのモチベーションが落ちるほどウソくさくなければ、リアリティなどさして重要ではない
  • 仕様を書く段階でバランス調整の方針や起きそうなトラブルへの対処法も考えておく
  • 問題が起きた時はリカバリーの達成条件をあせらず見極める
  • 最終的にクリア出来るように調整されていても、途中での失敗や敗北にプレイヤーが耐えられない場合もある
  • 普通の人が目配り出来る不確定要素はせいぜい3つまで
  • 何をどう妥協してもかまわないが、ゲームの根幹になる面白さに関わる点を安易に妥協すべきではない
  • ゲームはプレイヤーにジレンマを提示し、どうするのか問いかける
  • 戦闘は戦力的にはプレイヤーがやや有利だが、ミスや事故が2つ重なるか3つ続けば敗北するぐらいが理想的

2010年11月9日火曜日

ゲーム感想:Medal of Honor (2010)

トレーラーを観たら好みっぽかったので発売してすぐにxbox360のアジア版買ったものの、シングルやってほったらかしという状態のMoH。BFBC2とMW2のいいとこ取りを目指してるだろうと見なされていたので、両方と差別化しなければいけないという難しい立場のゲームだったように思う。その観点で言うとシングルプレイはおおむね成功でマルチプレイは失敗だ。

シングルプレイの演出・ストーリーは結構ストイックに戦争映画してて個人的には結構好きな佳作という印象。現場を知らない上の指示による無謀な作戦の結果、取り残された仲間を助けるために過酷なミッションに挑むことになるBHD風味(合間のプリレンダムービーもどことなくBHD風味の色使い)の王道ストーリーが、控えめながらリアリティにこだわった演出で語られる。ただ化学調味料てんこ盛りといった趣のMW2の後だとちょっと薄味に感じるかもしれない。

シングルプレイは前半は集落とか空軍基地跡等でのミッション、後半はアパッチのガナーやるミッション除くとほぼ山岳戦オンリーという構成で、ボリュームはヘタレの自分がMediumでやって5時間弱ぐらい。スクリプトがゴリゴリの進行でマップの分岐も殆ど無いが、ほぼ山だけど微妙に変化に富んだ地形と攻撃機の誘導や狙撃にアパッチのガナー等多彩なミッションがあるためそれほど飽きない。少し飽きる。全体としては空気感がかなり良くておすすめな出来。ただっぴろいマップで好き勝手にルート探して目的達成してくような、BFBCやFarCryみたいな自由度高いミッションもあったらよかったのになーとちょっと思った。

難易度はそんなに高くなく、Mediumだと4~5発程度同時に貰うか至近距離で爆発物食らうと死ぬぐらいの耐久力で、MW2ノーマルよりほんのちょっと柔いかなという程度。敵は結構ちゃんと遮蔽物に隠れながら攻撃してくるので、はみ出した頭や手足撃つなり爆発物当てるなりというイメージになる。銃のリコイルがかなり小さく遠くの敵にもフルオートでそこそこ当たるようになっている。スライディングで遮蔽物を変えながら移動して敵の側面取って倒すのが楽しい。敵はプレイヤー狙い始めてから2斉射目ぐらいからは結構な精度で当ててくるので、ちょっと強引に動くとすぐ死ぬ。接敵距離は0~200m程度で、後半は山岳戦メインなので遠目になることも多い。

グラフィックが相当良いし、最近珍しくリーンアクションがあるようなので、ゲーム用にPC保守してるならPC版がおすすめかもしれない。音もかなりよくてドスが効いた銃声が楽しめる。ゴア表現はM82でヘッドショットが決まると頭が潰れる話ばかりされてるけど、個人的には銃創から血がぴゅーっと出ながら倒れる表現(プライベート・ライアンのスナイパー倒したちょっと後に、倒れた角材が壁ぶっ壊しちゃっての遭遇戦で座った姿勢で死んだドイツ兵を後ろに倒したときみたいなの)があるのが珍しいなと思った。

マルチプレイはルールがMW風味のBFBC2以外の何者でもなかった。シングルプレイはちゃんとBFBC2と差別化出来立てただけに、マルチプレイの操作感はほぼBFBC2のままなのがかなり惜しい。スライディングも無いし。それがつまらないかというとまあ決してつまらなくはないけど、既視感がすごくてあんまりやらないままになっている。定点野郎キルする手段が減った代わりに裏取りしやすくなったBFBC2という雰囲気。

2010年11月8日月曜日

UnityでのAI実装:任意のオブジェクトの方向を向かせる

UnityではTransform.LookAt()があるので、これに向かせたい相手のTransformを渡すと実現できる。Quaternion.LookRotation()を使ってもほぼ同じことが出来る。

以下Transform.LookAtの公式サンプルとほぼ同じ内容。targetに任意のオブジェクトを割り当てるとその方向を向くようになる。

public var target : Transform;

function Update () {
transform.LookAt(target);
}

ただし、この方法では実行した時点で回転が完了する、つまり回転速度が無限になってしまうのが場合によっては問題となる。一定速度以上では旋回しないようにするにはどうするか。

これはQuaternion.Slerp()に面倒事はお任せで実現可能。ただドキュメントが微妙でspeedに何入れるとどれぐらいに制限できるのかというところが分からない。

var speed = 0.5;
public var target : Transform;

function Update () {
var relativePos = target.position - transform.position;
var rotation = Quaternion.LookRotation(relativePos);
transform.rotation =
Quaternion.Slerp (transform.rotation, rotation, Time.deltaTime * speed);
}

2010年8月30日月曜日

X06HTのその後

device

半月ちょっと使ってみての、X06HT関連アップデート。

追加したアプリケーション

 

  • 縦書きビューワ+青空プロバイダ:青空文庫ビューワアプリ。パソコン創世記を通しで読んだが快適に読めた。
  •  

  • RTM:牛乳忘れるべからずのAndroidクライアント。iPhone向けと比べても遜色なく機能する。
  •  

  • Note Everything:いい感じのメモアプリ。
  •  

  • ThinkingSpace:マインドマップアプリ。すごく良いわけじゃないがちゃんと使える。
  •  

  • Launcher Pro:ランチャーアプリケーション。シンプルでスムーズに動く。
  •  

  • S2 カレンダーウィジェット:カレンダーウィジェット。ふつう。
  •  

使った感想

 

  • 当たり前ではあるが、ソフバンの電波が弱い点は携帯替えても相変わらず。
  •  

  • 最初はiPhoneと異なるところが気になって仕方が無かったがだんだん慣れてきた。
  •  

  • 負荷が高い処理をさせると端末が熱くなる。充電中に操作すると相当熱くなる。
  •  

  • Wnnの日本語変換があまり賢くない。ATOK来ないかなマジで。
  •  

  • プリインストールのアプリを消すには面倒な手続きを経てrootedつっこんでシェルでrmして消すしかないらしい。Androidのユーザーが自由にカスタマイズ出来るというイメージを損なうのであまり好ましくないと思う。
  •  

  • バッテリーの持ちはよくないとは思うが、使い物にならないというほどでもない。
  •  

  • wifiオンにしておくとお外で鍵ナシのアクセスポイント見つけたときに勝手につなぎに行こうとするのが怖いのでやめてほしい。
  •  

X06HTを買ったそもそもの理由は、Googleがその理想を追求したハード(とだいたいおなじハード)にAndroidを搭載したものはきちんとiPhone対抗となりうる製品に仕上がってるのかが気になったからというものだが、かなりいい線いってるのではないだろうかという感想になった。ただ、削除できないプリインストールアプリと独自UIの搭載はちょっとイタダケナイなあと思う。サードパーティは差別化のつもりでそういうもの入れたがるが、結局使われないのだ。メシのタネだからあんまそういうふうに言いたくないけれど。

2010年8月8日日曜日

iPhone 3G -> X06HT

X06HT

iPhone3Gの液晶が砕け、修理代が高くて修理を諦め、iPhone4発表直前ぐらいにX06HTを予約してから[だいぶながいじかん]が経ち、ようやく手元にX06HTがやって来ました。

X06HT(HTC Desire)は、Nexus OneというGoogleブランドのスマホとほぼ同じハードにAndroid2.1(+HTC SenceというHTCの余計な独自ランチャー)を搭載した端末です。11月をめどとしたAndroid2.2のアップデート提供もアナウンスされています。でもMMSとかどうでもいいので海外Desire向けに既に配布されているイメージ入れちゃおうかなとも思っていたり。

触った印象

 

  • iPhone3Gより横幅が狭くてほんの少しだけ重い感じ。スペック上もそんな感じ。
  •  

  • 画面は綺麗。有機ELは直射日光下ニガテと聞いていたがそれほど問題ない印象。指紋はもうベッタベタつくけど画面点灯中はそれほど気にならない。
  •  

  • バッテリーやSIM、SDカードにアクセスするためのでっかい裏蓋が開けにくい。Dev Phone 1もそうだったしHTC製端末はそういうもんなのかもしれない。
  •  

  • SIMカードおよびSDカードはバッテリーを外さないと抜けない設計。SIMはともかくSDカードは電源ON状態でも着脱できていいのでは。
  •  

  • 左上にある電源ボタンでしかスリープ状態の切り替えが出来ないのがちょい不便。マナーモード切替も物理ボタンあったほうがうれしかったかも。
  •  

  • キーガードが上に引っ張って欲しそうなデザインしてると個人的には思う(写真参照)のだが、下に引っ張って解除する方式。
  •  

  • iPhoneみたいなiPhoneじゃないのが欲しいという人のための有力な選択肢ではあるがiPhoneのほうがいろいろこなれてるよねえというAndroidに対する認識を覆すには至らない。
  •  

iPhone3Gからの移行

メインで使う情報端末をiPhone3GからX06HTに変更するための作業。iPhone3Gで出来てたことをひととおり出来るようにするのが目標。

  • フリック入力可能なIME:フリック対応版Wnnがアプリマーケットにあるのでインストール。
  •  

  • ついった:デフォで入ってるPeepというアプリが悪くなさげなのでコレで行く。でもNatsuLionのほうが好きだなやっぱり。
  •  

  • yammer:Android向けクライアントが公式から提供されてるので問題なし。
  •  

  • 路線検索:なんでもいいっちゃなんでもいいのだがとりあえず路線ドロイドというアプリを使ってみる。
  •  

  • 英和辞書:ちゃんとしたやつは高そうなので見送り。ホントはiPhoneみたいに英辞郎あればサクっと金出していいんだけど。
  •  

  • マップ:プリインストールされておるよ。
  •  

  • オンラインストレージ:DropboxもSugarsyncもAndroid向け公式アプリが無料提供されている。閲覧操作はiPhone版のほうがこなれてるのでそれが少しうらやましい。
  •  

  • 音楽再生:doubleTwistを用いればiTunesのプレイリストがインポート可能。要登録でPC側ソフトはIE7以上必須だったりとかPC側ソフトが幾分ださい。Android側のプレーヤーが300円。
  •  

2010年6月27日日曜日

Unity3D学習の1

XNAでもまだめんどくさい気がしたのでUnity3Dはじめました。とりあえず用語と基本的なワークフローと参考リンクをメモする。

Unity3Dとは

3Dゲームやインタラクティブコンテンツの為の統合開発環境。

用語

Project > Unityで作られるゲームはプロジェクトから成る

実体としては何か管理ファイルとかがあるわけでなく、ゲームの部品を入れておくためのただのディレクトリ。構成に制限は無いが、アセットの種類ごとにフォルダ分けするよう推奨されている。

Scenes > プロジェクトはシーンと呼ばれるドキュメントを1つ以上含む

シーンは1つのゲームレベルや画面などを定義する単位となる。外部ツールやUnity内の各種エディタで部品作ってシーンに配置するという流れでゲームを作っていく。

GameObjects > Unityの基本ブロック

ゲームオブジェクトは、コンポーネントと呼ばれる機能やその他の部品のコンテナになる。すべてのゲームオブジェクトは自身の位置や向きを定義するTransformコンポーネントを含む。ゲームオブジェクト間で親子関係を持つことが出来る(子ゲームオブジェクトのTransformは親からの相対になる)。

Components > GameObjectの構成要素

コンポーネントとは、メッシュやマテリアル等の描画要素や、カメラやライト等の抽象的なものとか色々である。単体では存在せず、常にゲームオブジェクトに付加される。パーティクルシステム等、コンポーネントの種類によっては1つのゲームオブジェクトに同じ種類のものを複数持たせられない場合がある(ゲームオブジェクトを階層化してそれぞれに持たせるのはOK)。

Assets > プロジェクトにインポートされた部品

プロジェクトペインに表示される各種部品の総称。マテリアルやテクスチャ、オーディオファイルやプレハブ等。プレハブは以下で説明。

Prefabs > テンプレート定義されたアセット

ある目的で組み上げたゲームオブジェクトを雛形として保存したもの…と言っていいかわからんけどそういうイメージ。プレハブをシーンに追加した場合、コピーではなくリンク(インスタンス)が作成される。プロジェクトペインでプレハブの設定を変更すると、シーン内のすべてのインスタンスに即座に反映される。シーン内のインスタンスの設定を変更することも出来るが、その場合オリジナルのプレハブとのリンクが切れる。

基本的なワークフロー

Unityのインターフェースの説明はここ(インターフェースの学習 日本語訳版)参照。

①とりあえず空またはなんか入ってる適当なGameObjectを作成する。作成すると開いてる最中のSceneに追加され、SceneビューとHierarchyビューで確認できるようになる。

UnityScreen_01

②作成したGameObjectにConponentや別のGameObjectを追加(2a)したり、Assetsを作るか外部からロード(1.5)してGameObjectに追加(2b)などしていって、作りたいものを作る。

UnityScreen_02

③あとはSceneで確認しながら納得行くまでいじればGameObjectが出来る。これをゲームが出来るまで繰り返すとゲームに!

UnityScreen_03

そのうちもうちょっとまともに書くんじゃないかと思います。

参考

2010年1月30日土曜日

Hello XNA

今回は開発ツールのXNA Game Studioをインストールしてこんちゃするところまで。

情報の入手先

XNAの開発にかかわる公式情報は以下のサイトに存在する様子。

  • XNAデベロッパセンター

http://msdn.microsoft.com/ja-jp/xna/default.aspx

  • msdn

http://msdn.microsoft.com/ja-jp/library/bb200104.aspx

  • XNAクリエーターズクラブ

http://creators.xna.com/ja-JP/

 

Visual C# 2008 EE

  • XNA Game Studioのインストールの前にVisual C# 2008 EEかVS2008のインストールが必要になる。
  • 前者がタダなのでこれをダウンロードしてインストールする。

http://www.microsoft.com/express/Downloads/#2008-Visual-CS

ひっついてきたSQLサーバだかのインストールが失敗したっぽいが、とりあえず気にせず進む。

 

XNA Game Studio 3.1

  • 09/07/02にXNA Game Studio 3.1の日本語版が公開されていて、現在このバージョンが最新のようである。

http://creators.xna.com/ja-JP/japan/

  • これをダウンロードしてインストール。特につまづくところ無し。

 

作成したゲームの実行について

  • WinPC及びZune上でのゲームの実行にはメンバーシップが不要だが、Xbox360上での実行及びLIVEサービスの利用には各種メンバーシップが必要となる。

http://creators.xna.com/ja-JP/XNAGS3.1readme

 

こんちわXNAブルースクリーン

  • VC#EEを起動してファイル->新しいプロジェクト->XNA Game Studio 3.1のWindows ゲーム(3.1)を選択してOKをクリック。

screen

テンプレートが生成される。

  • テンプレートの各ファイルやディレクトリの説明は本家のmsdn参照。

http://msdn.microsoft.com/ja-jp/library/bb203928.aspx

 

  • 生成されたテンプレートをF5キーにてビルド実行。

screen

青い。