Game Development with Unity, 1st Edition

Game Development with Unity, 1st Edition

2011-03-07_1410 - lexmaniajp's library
第1章 序章
この本が企画されて、出版にいたるまでのあらましが述べられている。
ことの始まりは、Microsoftという会社のPopfly Game Creatorというソフトウェアの使い方を取り扱った教材を作ろうという話だった。しかし、このプロジェクトが4分の3ほど仕上がってきたところで、Microsoftがこのソフトウェアへのサポートをやめるということが決まった。乗りかけた船は降りられないということで
Unityの解説本を書くことにした。完成までに費やした歳月は2年。
読者は是非とも、ゲーム制作の試みを投げることなく最後までやり抜いてほしい。

第2章 導入
Unityで開発したゲームがインストールできる端末
ウェブ Wii スマートフォン

このゲームエンジンを開発に使用している会社
 Ubisoft Disney ElectronicArts

この本が扱っている内容

 ゲーム開発の概略

この本が想定している読者
ゲーム開発の概要を一覧できる本を所望している人
将来の開発プロジェクトに手頃なゲームエンジンを探している人
ゲーム開発を趣味にしたい人。
学生(もしくは学生になろうとする人)が、自分にはゲーム開発の適性があるかどうかを知りたいというケース。
本格的なゲームエンジンで自分のゲームソフトを動かしてみたい人。
本書で使用するプログラムやデータファイルはすべて付属のDVDに入っている。


第3章 Unityエンジンの概要について

Unityは、強力でありながら、優美に素朴で、統合されたエディターであり、ゲームを開発して、公開するために必要なすべてのツールをあなたに与えるエンジンです。3次元1人称シューティングからカジュアルな2Dのパズルゲームまで開発可能です。

そのすべての機能は、異なったタブのウィンドウのビューに組織されています。それぞれが所用のタスクをこなすための異なった編集と操作の機能を提供しています。
エディターは徹底的にアセット中心です。すべてのタイプのオブジェクト、プログラミングコードのようなものですら、物理的なリンクと参照を生み出します。
Unityのライセンスの条件と、オプションになるアドオンは、あなたが必要とする時と場所に、最適化と力を提供します。個人の趣味開発者から大きな規模の開発チームのどちらにでも、このエンジンが使用されるように柔軟性が与えられています。

第4章 あなたの第一作
ゲームデザインというものをどうやってやるのかのオリエンテーションになっています。
まず、自分がつくりたいゲームの概要を一つの文章で説明できるコアステートメントというものをつくり、そのゲームを構成する特徴を列挙していく。ゲームの名前、コアステートメント、ゲームの特徴リスト、世界観の描写、ゲームの目的、初期状態の記述などを書き込んでいくテンプレートもついています。
ゲームのアイディアというものはいろいろなところにころがっている。だからありとあらゆる可能性になるものをどんどんノートに書き込んでいくとか、いろいろなゲームで遊んでみるとか、そういったことからはじめましょうと。そんなことが書いてあります。

参考文献

Rules of Play: Game Design Fundamentals

Rules of Play: Game Design Fundamentals

Challenges for Game Designers

Challenges for Game Designers

A Theory Of Fun For Game Design

A Theory Of Fun For Game Design

Patterns In Game Design (Game Development Series)

Patterns In Game Design (Game Development Series)


第5章  Terrainでステージを構成する。
ゲームの舞台となる「舞台」を設定していく方法のチュートリアルになります。
何も設定していない単なる「地面」に「地形」の属性を与えるファイルをインポートして、さらにでこぼこを加えていくための方法を学習します。「形状」の設定が
できるようになったら次にその「舞台」に「彩り」を加えます。牧草地帯のような「テクスチャ」をはりつけたり、パームツリーのような「木」を「植林」して
手軽に「森」のグラフィックを追加したり、「木」とセットになる「草」の
「植林」もできます。最後に、「舞台」の「空」になるテクスチャの貼り方や、
地面への「水面」の貼り方なども学習することができます。

Introducing Maya 2011

Introducing Maya 2011

Stop Staring: Facial Modeling and Animation Done Right

Stop Staring: Facial Modeling and Animation Done Right

Digital Texturing and Painting

Digital Texturing and Painting

Digital Lighting and Rendering

Digital Lighting and Rendering

第6章 君自身のオリジナルステージを作成しよう
5章の基本を踏まえて、オリジナルステージの作成のスキルを学習。ステージデザインの手法の解説から始まり、テクスチャのインポート、メッシュのインポート、
3Dグラフィックの基本の学習(シェーダやマテリアルについての概説)、ステージ作成を円滑に進めるためのテクニックの紹介などが続きます。筆者がDVDに用意したステージにデザインを参考にして、3Dゲームのステージを開発するということがどういうことかが体験できるようになっています。

第7章 ゲームキャラクターを作成する
ステージの作成が一通りできあがったので、次にそのステージで動き回るプレイヤー・キャラクターを作成する方法を学びます。モデリングソフトからキャラクターをインポートする。キャラクターのアニメーションデータの扱い方、キャラクターをシーンで登場させる方法、キャラクターのメッシュデータ、アニメーションデータのそれぞれの変数についての解説があります。章の終わりには、ステージの中で、様々な動きを見せるゲームの主人公WidgetをSceneの中に登場させることができます。

第3部 キャラクターに生命を吹き込む
第8章 Unityでのゲームプログラミング
使える言語はJavaScript Boo C#の三つになる。この章で取り扱うのはJS。3つの言語を併用することができるのが特徴。一つに絞る必要がない。この章ではWidgetというゲームサンプルを直接扱うことは少ない。プログラミング初心者を想定した、解説。しかしゲームプログラミングを記述する際に必要となる数学的知識は他書に譲っている。
基本的な文法の解説。変数 演算子 比較 If文 if-else文 switch構文 Loop構文 While構文 条件演算子 関数 変数のスコープ といった事柄についての簡単な説明がある。

Javascript: The Definitive Guide (Definitive Guides)

Javascript: The Definitive Guide (Definitive Guides)

JavaScript 第5版

JavaScript 第5版

Just Enough Programming Logic and Design

Just Enough Programming Logic and Design

Essential Mathematics for Games and Interactive Applications: A Programmer's Guide, Second Edition

Essential Mathematics for Games and Interactive Applications: A Programmer's Guide, Second Edition

第9章 キャラクターの動作とステータスをプログラミングする。
プレイヤーのインプットによってキャラクターのWidgetが左右回転、前進、ジャンプ、加速といった動作をするようにする。そしてエネルギーポイントのような属性を与えて、
イベントが起こることによってポイントの増減がおきるように関数を設定する。またWidgetがプレイヤーの入力に従い、ステージに中を動き回る動きを、スムーズに追うカメラのプログラミングも行い、実装するところまで学習します。

第10章 アニメーションを付属させるプログラミング
「入力待ち」「ゆっくり回転」「高速回転」「かがむ」「ジャンプする」「落下する」
Widgetが、プレイヤーの入力により様々な仕草をしているように、アニメーションを付加
していくプログラミングの学習をします。外部ソフトウェアで作成したアニメクリップをそのまま使うこともできるし、Unityの機能だけで、アニメーションをつくり、設定した入力に応じて、そのアニメーションが再生されるようにすることもできます。
Widgetを操作するプログラムファイルと、Widgetのアニメクリップを管理するプログラムファイルの2本を書き上げていきます。

第11章 イベント・トリガー
Widegetが、一定のエリアに入ると設計したイベントが起きるようにプログラミングする。アイテムをステージにおく。そのアイテムにWidgetがふれるとアイテムが消える。どのアイテムを拾ったのかわかるようにする。Widgetが水面にさわると、ダメージが低下して死亡する。死亡したWidgetが、「復活」する場所の設定をする。
アイテムを拾い上げるプログラムファイル
Widgetの所持するアイテムを管理するプログラムファイル
Widgetがダメージをうける条件を管理するプログラムファイル
Widgetが復活する場所をきめるプログラムファイル
などを新規作成する。

第12章 ゲーム中の敵キャラの設定
ゲーム中に敵キャラ(Electronic Bunny)を登場させる。敵キャラの挙動を、まるでキャラが自ら考えて動いているように見せるためのプログラミングを組むにはどんなことに留意する必要があるか、一般論を提示する。
敵キャラの動きを制御する。(WidgetとEAの距離が一定の値を下回るとEAがWidgetの追撃を開始するようにする。)
敵キャラの残存ポイント等の状態(ステータス)を管理する。
Widgetが敵キャラの攻撃を加えることができるようにする。
Widgetに撃破された敵キャラが、特定の場所からもう一度復活してWidgetに襲いかかるようにするための実装の仕方まで学びます。

第13章 ユーザーインターフェース
Widgetの生命ポイントと、エネルギーポイントの増減が画面左上に表示される
バーの伸び縮みでわかるようにする。同様に、敵キャラのBunnyが、Widget
を中心とするサークルの中に進入すると、Bunnyの生命ポイントとエネルギーポイントの増減がわかるようにする。Widgetが所持しているアイテム数の表示を
画面左右下のアイコンで可能にする。StoreにWidgetが立ち寄り、買い物をすることを選択すると、お店の品揃えウィンドウが表示されるようにする。
このゲームのメインメニューウィンドウを作成する。

第14章 ゲームステージにおける照明の設定と陰(シャドウ)の設定
シャドウをつけられるようにするには「基本的」にはUnityProを購入する必要がある。しかし、プロジェクターとライトマップという手法によりフリーバージョンでもステージのキャラクターや建物に陰をつけることは可能であるという話。
ゲーム作りにおける照明一般についての解説。UnityでLightを使用するときの
変数の説明。照明がゲームで果たす機能についても概略が書かれている。
1方向の照明 点照明 スポットライトにわけて解説がある。

第15章 パーティクル
ゲームの中で、煙がモクモクと立ち上がったり、星が輝いたり、火花が散ったり、火炎が燃えさかる様子を再現したり、雲が浮かび上がるような現象を再現したい場合のプログラミングについて解説されている。ParticleEmitter(パーティクルの位置や速度の調節)、PariticleAnimator(パーティクルの外見や動きの制御),ParticleRenderer(パーティクルを出現させるときに用いるマテリアルやテクスチャの調節)にわけて概説。Widgetというゲーム中に具体的に実装。
落ちているアイテムの位置を示すパーティクル。
ゲーム中のチェックポイントが使用可能か表示するパーティクル。
主人公のキャラWidgetが電撃攻撃をするときのパーティクル。
敵キャラのElectricBunnyが、生命ポイントゼロになり、死亡するときの爆発と発煙を表現するパーティクル。

第16章 効果音と音楽をゲームに追加する
YamahaCVP401とAdobe Auditionというソフトで音源ファイルを作成。
Unityで使用できる音源ファイルのフォーマットはaif wav mp3 ogg
ステージの川に近づいたら水音が聞こえるように設定する。
Javascriptファイルへの書き込みによって音源ファイルのオンとオフを制御できるようにする。
Widgetのレーザー攻撃の効果音を追加。
Widgetが生命ポイント0になり、死亡(オブジェクト消去)したときに鳴る効果音追加。
ゲームのBGMが演奏されるようにする。
Welcome to Yorkshire Pianos
http://www.adobe.com/jp/products/audition/

第17章 Unityを使ったデバッグ作業と最適化のコツ
Unityのコンソールウィンドウには、典型的な文法ミスのようなわかりやすいバグが表示されるようになっています。ゲームのログファイルを開いたら、バグやクラッシュがいつ起きたかの記録を調べることができます。UnityのProライセンスを取得すると、Profilerという機能がつきます。書き上げたゲームコードがどのようにコンピュータの資源を使っているかがわかるようになっています。Unityでゲームを書き上げる上で、留意すべきテクニックについても記述があります。
静的変数か動的変数か? 必要な時に必要な関数を呼び出すようにする。
開発したゲームをインストールさせることを想定している端末のハードやネットワーク環境を仮想的に設定したエミュレータを使うことができます。
音源ファイル、グラフィックのデータをなるべく少ない量ですますためのテクニックについても概略が書かれています。

第18章 書き上げたゲームファイルをビルドする
書き上げたゲームを公開できるようにするための手順が書かれている。Unityの機能には、パソコン単体で遊べるStandaloneという形式と、ブラウザで遊べるようにするWebPlayerという形式がある。Standaloneという形式では、ゲームをロードするときに表示する画像を自由に設定できる。バナーやアイコンもカスタマイズ可能。ゲームのユーザがグラフィックやインプットの仕方を変えることができるようにすることもできる。完成したゲームに、コンテンツを追加できるようにする仕掛けも用意されている。

http://www.gamebusiness.jp/article.php?id=3215
Disney acquires gaming engine startup to build HTML5 games outside of App stores | TechCrunch

報道によれば、ディズニーはHTML5でのゲーム開発エンジン「Rocket Engine」を提供するスタートアップRocket Packを買収したとのこと。HTML5Flashに変わるリッチコンテンツを様々なプラットフォームをまたいで提供する手段として注目を集めています。

Rocket Packはフィンランドヘルシンキに拠点を置くスタートアップ。今後はウォルトディズニーの中でゲーム事業などを統括するディズニー・インタラクティブ・メディア・グループに所属することになります。買収金額は1000万〜2000万ドルと推定されます。

「Rocket Engine」はiOSAndroidそしてPCやMacといったプラットフォームのブラウザ上で動作するHTML5ゲームを開発するためのエンジン。アニメーション、レンダリング、オーディオ、コリジョン判定、AIなどゲームに必要な要素は全てカバーし、当然ながらネットワークとの統合や、仮想通貨のサポート、ユーザーのアナライズ機能まで実装されています。

Rocket Packは設立されてまだ1年で、「Rocket Engine」を利用した自社ゲームとして『Warimals』という犬と猫が戦うゲームをリリースしたばかりでした。



Blog Portal | News - Sony Smartphones

Sony Ericsson and Havok have announced the availability of Havok’s product suite to Android developers, optimized for the Sony Ericsson’s revolutionary Xperia PLAY. Havok reigns as the preferred tools and interactive software partner to the world’s best developers. As part of its overall support for the Android platform, Havok has a build of its product line optimised for the Xperia PLAY that is ready for licensing by Android developers.
Check out a demo video after the jump!

wikipedia:コミュニティーエンジン
【ITベンチャー社長に聞く!】 コミュニケーションの仕組みを良くしたい〜コミュニティーエンジン代表取締役/CEO 中嶋謙互氏(前編) -INTERNET Watch
コミュニティーエンジン代表取締役社長 中嶋謙互氏インタビュー

Gamasutra - Sony Ericsson's Xperia Play Confirmed For March - Verizon, Unity As Partners

Also partnering with Sony Ericsson on the Xperia Play is major game engine provider Unity Technologies, which has 350,000 registered users worldwide who will more easily be able to bring their Unity-based games to the Xperia Play. It's the first time that Unity has partnered with a platform manufacturer like Sony Ericsson.

http://www.gamebusiness.jp/article.php?id=2581

開発環境にはiOSAndroidの両方で同時開発を行える5つの環境が推奨されます。

・VIVID Runtime(アクロディア社)
Adobe(R) AIR(R) for Androidアドビ システムズ社)
・Titanium Mobile(Appcelerator社)
Unreal Engine 3(Epic Games社)
・Unity(Unity Technologies社)

集客面では提携するKDDI(au)の展開する「IS03」にウェブアプリへのショートカットがプリインストールされます。また、総額数十億円規模のテレビCMなどの支援を行うとのこと。

そのほか、データセンター、動作確認、カスタマーサポートなども提携先を紹介するほか、「GREE FUND」を通じて資金提供や、海外展開についてもサポートを行っていくということです。

グリー株式会社 (GREE, Inc.) - ニュースリリース - プレスリリース 2011年 - グリー、マルチOS開発を支援する3Dゲーム開発ツール「Unity」を提供するUnity Technologiesと技術提携

グリー株式会社(本社:東京都港区、代表取締役社長:田中良和、以下グリー)は、3Dゲーム開発ツール「Unity」を提供するUnity Technologiesと技術提携を行い、2011年3月1日より、「Unity」向けのプラグイン「Unity Plugin for GREE」を、開発パートナー(以下GREEパートナー)様向けに正式に提供開始します。これにより、GREEパートナー様は、Unityで開発するアプリに対し、GREE SDK(※1)が提供する機能を簡単に組み込むことが可能になり、iOSiPhone/iPod touch ※2)とAndroid(※3)の両OSに対応したソーシャルアプリの開発負担を大幅に軽減できます。
「Unity」は、本格的なインタラクティブ3Dコンテンツの開発を容易にする、Unity Technologiesが開発・販売する、オールインワンのゲーム開発ツールです。通常のコンテンツ開発では、仕様が異なるプラットフォーム毎に開発を行う必要がありますが、「Unity」と「Unity Plugin for GREE」を併用することで、「GREE」のSNS機能を組み込んだiOSアプリとAndroidアプリをひとつのソースコードから生成できるようになります。「Unity」によって開発されたゲームはトップヒットを記録しており、「Skee-Ball」は2009年度のApp Storeのトップセラーの1つで、米国のゲーム開発者向け月刊誌「Gamasutra」によって選ばれた年間トップ5のiPhoneゲームです。また、「Zombieville USA」はAppleの「iTunes Rewind 2009」において選ばれた、トップセールスゲームの1つです。
グリーは、「GREE Developer Center」( http://developer.gree.co.jp/ )にて、iOS向け「Unity Plugin for GREE iOS SDK」を2011年3月1日より公開し、Android向け「Unity Plugin for GREE Andorid SDK」についても近日中に公開します。また、「Unity」と「Unity Plugin for GREE iOS SDK」を用いて開発したiOS向けカジュアルゲームアプリ「CosmoLightning」を、3月中旬に公開予定です。
今回の連携を皮切りに、グリーとUnity Technologiesは、GREEパートナー様が最新の技術を利用したコンテンツを効率よく迅速に提供することができるよう、さらなる開発支援をしていきます。
グリーは、今後も国内外の有力なパートナーと連携を進めることで、世界中のあらゆるユーザーが利用するナンバーワンコミュニティサービスの提供を目指します。