[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SlideShare a Scribd company logo
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPAN
Unityを使った

ゲームデザイン超入門
Unity Technologies Japan合同会社
コミュニティエバンジェリスト
            小林信行
      2015/10/21
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
2
「ゲーム」と

Unityエディタ

の関係
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
「ゲーム」とはなんだろう?
3
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
「ゲーム」とはなんだろう?
4
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
「ゲーム」とはなんだろう?
5
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
• エンターティンメントであること
• インタラクティブにプレイヤーが介入できること

(インタラクティブにリソースのマネジメントができること)
• 障害物を乗り越えた先に、ゴールが存在すること
• ルールがあること(ゴールとルールがあることで「挑戦」が生まれる)
• 競合するアクティブなエージェントが存在すること
• 敵のパフォーマンスを阻害するために、「攻撃」という手段がとれること
「ゲーム」と呼ばれるための条件
6
クリス・クロフォードの「ゲーム」の定義に関する二分法を参考に
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
7
2×3レイアウトへの変更
• Layoutボタンから「2 by 3」を選ぶ
シーンビュー

シーンに配置されているオブジェクトを表示します
ゲームビュー

メインカメラの視点です。ゲームはこのビューで行います
ヒエラルキー

現在のシーンに配置さ
れているオブジェクト
を階層表示します

各階層は、対応するオ
ブジェクトの親子関係
(ペアレント)を表し
ます
プロジェクトブラウザ
現在のプロジェク
トに含まれている
アセット等のファ
イルを表示します
インスペクター
選択されているオブジェ
クトに付属するコンポー
ネント(機能)一覧です。
プレイ/ポーズ/ステップ
選択中のオブジェクトは
ギズモで囲まれます
Unityエディタの画面構成
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
• シーンとは、プレイヤーがゲームプレイを実現する場所の
ことです。
• プレイヤーがゲーム世界(シーン)にインタラクトするこ
とで、ゲームプレイが生まれます。
• シーン内には、必ずなんらかの機能を持ったオブジェクト

が複数配置されています。
Unityでの「シーン」とは?
8
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
9
ゲームシーン中にある代表的なオブジェクト
1.プレイヤーキャラクター
•プレイヤーが操作するキャラやオブジェクト
2.敵キャラクター
•敵キャラ/敵ボス/AIによって制御される、キャラクター性を持っているハザード
3.メカニクス
•プレイヤーがインタラクトできる仕組みそのもの(プラットフォーム/ドア/スイッチ…)
4.ハザード
•特に、プレイヤーにダメージを与えるメカニクスのこと。クリアできるパターンを持つ「罠」
5.アイテムオブジェクト
•報償やパワーアップなど、ゲームプレイを有利にするもの
6.ゲームコントローラやレフェリーオブジェクト
•勝敗管理や得点表示をする。GUI的なオブジェクトであったり、空のゲームオブジェクト
7.カメラ
8.ユーザーインタフェース(UI)
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
• Unityでは、シーン内に配置したオブジェクトに

「機能」(コンポーネント)をアタッチすることで、

各オブジェクトの振る舞い(ビヘイビア)を規定します。
• コンポーネントには、すでにUnityが用意しているものもあれば、自
分でスクリプトを作成することで新たに定義できるものもあります。
Unityエディタは、シーンを組み上げるエディタ
10
⇒シーン内での各オブジェクト間の連携のあり方が

 シーンの構成を形づくる
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
11
これらのシーン上のオブジェクト

を相互に連携させて、

一連のゲームプレイを創り上げる

ことが、ゲームを作る

ということです。
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
• エンターティンメントであること
• インタラクティブであること
• ゴールが存在すること
• ルールがあること(ゴールとルールがあることで「挑戦」が生まれる)
• 競合するアクティブなエージェントが存在すること
• 敵のパフォーマンスを阻害するために、「攻撃」という手段がとれること
ゲームプレイに必要なこと
12
後半の要素が加われば加わる程、

その「ゲームプレイ」はエキサイティングになる
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
インスペクターより各コンポーネントのヘルプを開く
13
ローカルヘルプを日本語オンラインヘルプに切り替えるブックマークレット

http://bit.ly/1M2HYBT
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
1.公式の学習ページ Learn
http://unity3d.com/jp/learn
こちらで日本語(一部英語)で、Unityの使い方をビデオプログラム等で学習する
ことができます。
2.Googleで調べる
世界中にUnity開発者コミュニティがあり、日本語だけでなく英語でも様々な情報
が得られる。「”知りたい内容” Unity」のようなキーワードで調べる。
3.AssetStoreをみる
https://www.assetstore.unity3d.com/jp/
特にプロトタイプ作成に入った時に、どんな要素が必要か分解して、まずそれら
がAssetStore等で利用できるか調べてみると る。
Unityの学習
14
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
15
ゲームデザインドキュメント(GDD)を作成すること
「まだ目の前にないゲーム」をデザインし、ゴールを示すこと
「まだ目の前にないゲーム」を頭の中で遊んでみて、

他のスタッフに面白さのポイントを伝えること
他のスタッフと相談しながら、必要な作業や素材をリストアップ
したり、作業手順をまとめておくこと
GDD作成の本質は、他のメンバー(スタッフ、パブリッシャーや
プレイヤーも含む)とのコミュニケーションの手段を用意すること
ゲームデザイナーの『仕事』
15
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
16
1.キャラクター : Character

プレイヤーキャラクターに基づくメトリクス

 シーンとのインタラクション(物理エンジン)

 世界観やシーンデザインとのすり合わせ(リアル/カートゥーン/SD)
2.カメラ : Camera

ゲームの視点および画面構成。3Dになるとポリゴンコスト
3.コントロール : Control

プレイヤーキャラクターの操作方法
ゲームデザイナーが最初に決める3つの『C』
ゲーム制作の後半に大幅に変更すると、

最悪、ゲームプレイがすべて再調整に!
16
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
17
GDDには、特定のフォーマットはない

「企画メモ」と「ラピッドプロトタイプ」でもよい
「自分で忘れた時の覚書」程度のものでも十分役に立つ

特に、企画の「目標」とか「ゴール」とかは明記しておくと、後
にブレなくてよい
2週間後には、自分で書いたコードですらわからなくなる

コメントに、簡単な説明を入れておこう
「一人でつくる」なら、GDDはいらない?
17
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
18
ゲームデザインドキュメント(GDD)

  ゲーム制作にあたって、プリプロダクションの指針とする

  ために書かれるドキュメントのこと
ワンシート(ペラいち、企画メモ、概要書)
テンページャー(企画書)
ビートチャート(各ステージ/レベル要項・キャラクター対照表)
ゲームデザインドキュメント(仕様書)
4つのゲームデザインドキュメント
18
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
19
「ワンシート」に書くこと
• ゲームのタイトル
• 想定しているゲームシステムやジャンル、プラットフォーム
• ターゲットとするプレイヤーの年齢や性別、人数
• 想定しているレーティング
• ストーリーの要約。特にゲームプレイに関する部分。
• 基本インタフェース(ゲームカメラの案)
• ゲームモードの種類(ストーリー/フリープレイ/アンロック…)
• ユニークセールスポイント(USP)/ゲームのウリ
• 競合/類似タイトルの例
ワンシートは、テキストファイルでもOK。
ゲーム全体をシンプルに短くまとめた概要書。
19
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
20
シーンを読み解く
ということ
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
1.シーンをじっくりとみる/プレイボタンから実際に動かしてみる
2.InspectorウィンドウのTagをみる
3.Projectウィンドウのスクリプトをみる
4.スクリプトの内容をチェックする
初期化に注目する
更新に注目する
イベント発生時処理に注目する
コンポーネントを探す/参照を取得に注目する
コンポーネント間のメッセージングに注目する
シーン中にあるオブジェクトの機能の調べ方
21
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
• プレイヤーの位置をみつけ、入力に対する反応(リアクシ
ョン)をみる
• プレイヤーが最初はシーンに存在せず、プレイボタンスタ
ート後に生成(Instantiate)されることもあるので注意
• 敵の行動をみる
• シーン内のメカニクスの動き方をみる
シーンをじっくりとみる/プレイボタンから実
際に動かしてみる
22
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
• Player

  プレイヤーオブジェクトやキャラクタ
ーについている
• GameController

  ゲームの制御をしたりするオブジェク
トについている
• MainCamera

  主として使われるカメラについている
• Respawn

  プレイヤーキャラの再出現位置とか
InspectorウィンドウのTagをみる
23
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
• 任意のスクリプトファイル名の
上で右クリック

>"Find References In Scene"で

スクリプトがアタッチされてい
るオブジェクトを探す
Projectウィンドウのスクリプトをみる
24
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
スクリプトの内容をチェックする
:初期化に注目する
25
Awake/Start (MonoBehaviorクラス)
•Awake 最初のシーンロード。Start関数の前およびプレハブのインスタンス
化直後に呼び出される。

シーン内の各オブジェクトに対して一度だけ。

GameObjectが有効でない場合には、有効になった直後に呼び出される。

•Start 最初のフレームのアップデート前。

スクリプトのインスタンスが有効になり、最初のフレームのアップデート前に
呼び出される。
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
スクリプトの内容をチェックする
:更新に注目する
26
Update/FixedUpdate (MonoBehaviorクラス)
•Update 1フレーム更新ごと、レンダリングする前に呼ばれる関数。

ほとんどのゲーム挙動に関するコードはここに書かれる。

1フレーム間の時間は一定ではないので、必ずTime.deltaTimeで進行する。

•FixedUpdate 主に物理エンジンの更新用に用意されている関数で、

フレーム概念と関係なく一定時間ごとに実行される関数(デフォルトで0.01秒)
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
スクリプトの内容をチェックする
:イベント発生時処理に注目する
27
イベント発生時処理(On∼の名前が付いているMonoBehaviorクラス)
⇒プレイヤーの操作で発生するイベント
	 ●	 OnMouseDown,OnMouseDrag,OnMouseUp…
	 

⇒物理エンジン&コライダーによる衝突&トリガーイベント
	 ●	 OnCollisionEnter,OnCollisionExit,OnCollisionStay
	 ●	OnTriggerEnter,OnTriggerExit,OnTriggerStay
プレイヤーからの入力(Inputクラス)
●	 GetAxis,GetButtonDown,GetKey
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
スクリプトの内容をチェックする
:コンポーネントを探す/参照を取得に注目する
28
あるタグが付いているコンポーネントを探す

(GameObjectクラス)
● FindWithTag,FindGameObjectsWithTag
コンポーネントへの参照を取得する

(GameObjectクラス)
● GetComponent,GetComponentInChildren,GetComponentInParent,
GetComponents,GetComponentsInChildren,GetComponentsInParent
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
スクリプトの内容をチェックする
: コンポーネント間のメッセージングに注目する
29
コンポーネント間でメッセージングをすることで、

別のコンポーネントにアタッチされているスクリプト内の

関数を呼び出す(GameObjectクラス)
	 ●	 BroadcastMessage,SendMessage,SendMessageUpwards,
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
30
ところで、
クラスってなに?
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
31
クラスとコンポーネントを

ガレージキットで例えてみよう!
原型 シリコンゴム型 キャスト注入 製品
画像は、Wonder Festival オフィシャルサイト『ガレージキットとは』より

http://wf.kaiyodo.net/knowledge/garagekit/
上が超簡単に説明した、ガレージキットの製作の流れ
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
32
Class / type / Instantiate / Componentの関係
原型 シリコンゴム型 キャスト注入 製品
クラス
オブジェクトインスタンス化
GameObjectにアタッチすることで

実体(インスタンス)化できるクラス

コンポーネント
コード本体 タイプ(型)
画像は、Wonder Festival オフィシャルサイト『ガレージキットとは』より

http://wf.kaiyodo.net/knowledge/garagekit/
※自分で書いたスクリプトも、
もちろん含まれる
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
33
ポストとメモリのカンケイ??
?
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
34
ポストとメモリのカンケイ??
「ポスト」とは?
•ポストには目的に応じて様々なタイプがある
•各々のポストには、住所がひも付けられている
•ポストを使いたい場合、まずポストを設置し、
郵便局に住所登録をしておく必要がある
•ポストに何か届けたい時には、届けものに

正確に住所を指定する必要がある
ポスト メモリと読み替えてみると…?
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
35
コンポーネント参照のための手順
コンポーネント
(GameObjectにアタッチされて

実体化したクラス)
ポストの用途やサイズ等(タイプ)を事前に決めて、設置する

「コンポーネント参照用変数を宣言する」
ポストの住所を指定して、郵便物等を送る/受け取る/利用する

「コンポーネントを参照する」
COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN
36
他にも、「カプセル化」「多態性」「継承」
「オーバーライド関数」「ドットシンタックス」
「名前空間」「スコープ」とか、

いろいろあるけど、それはまたどこかで(^_^;)
UnityのC#コーディングで、ビギナーが迷いやすい
のは、「Unity向けのスクリプトをC#の文法で書い
ている」というトコじゃないかなっ?

そこを「Unityならではのライブラリ機能」と、
「C#が元々持っている文法やライブラリ機能」を

意識して区別する練習をしてみると、コーディング
が急に楽になるよっ!

More Related Content

Unityを使ったゲームデザイン超入門

  • 1. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPAN Unityを使った
 ゲームデザイン超入門 Unity Technologies Japan合同会社 コミュニティエバンジェリスト             小林信行       2015/10/21
  • 2. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 2 「ゲーム」と
 Unityエディタ
 の関係
  • 3. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 「ゲーム」とはなんだろう? 3
  • 4. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 「ゲーム」とはなんだろう? 4
  • 5. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 「ゲーム」とはなんだろう? 5
  • 6. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN • エンターティンメントであること • インタラクティブにプレイヤーが介入できること
 (インタラクティブにリソースのマネジメントができること) • 障害物を乗り越えた先に、ゴールが存在すること • ルールがあること(ゴールとルールがあることで「挑戦」が生まれる) • 競合するアクティブなエージェントが存在すること • 敵のパフォーマンスを阻害するために、「攻撃」という手段がとれること 「ゲーム」と呼ばれるための条件 6 クリス・クロフォードの「ゲーム」の定義に関する二分法を参考に
  • 7. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 7 2×3レイアウトへの変更 • Layoutボタンから「2 by 3」を選ぶ シーンビュー
 シーンに配置されているオブジェクトを表示します ゲームビュー
 メインカメラの視点です。ゲームはこのビューで行います ヒエラルキー
 現在のシーンに配置さ れているオブジェクト を階層表示します
 各階層は、対応するオ ブジェクトの親子関係 (ペアレント)を表し ます プロジェクトブラウザ 現在のプロジェク トに含まれている アセット等のファ イルを表示します インスペクター 選択されているオブジェ クトに付属するコンポー ネント(機能)一覧です。 プレイ/ポーズ/ステップ 選択中のオブジェクトは ギズモで囲まれます Unityエディタの画面構成
  • 8. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN • シーンとは、プレイヤーがゲームプレイを実現する場所の ことです。 • プレイヤーがゲーム世界(シーン)にインタラクトするこ とで、ゲームプレイが生まれます。 • シーン内には、必ずなんらかの機能を持ったオブジェクト
 が複数配置されています。 Unityでの「シーン」とは? 8
  • 9. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 9 ゲームシーン中にある代表的なオブジェクト 1.プレイヤーキャラクター •プレイヤーが操作するキャラやオブジェクト 2.敵キャラクター •敵キャラ/敵ボス/AIによって制御される、キャラクター性を持っているハザード 3.メカニクス •プレイヤーがインタラクトできる仕組みそのもの(プラットフォーム/ドア/スイッチ…) 4.ハザード •特に、プレイヤーにダメージを与えるメカニクスのこと。クリアできるパターンを持つ「罠」 5.アイテムオブジェクト •報償やパワーアップなど、ゲームプレイを有利にするもの 6.ゲームコントローラやレフェリーオブジェクト •勝敗管理や得点表示をする。GUI的なオブジェクトであったり、空のゲームオブジェクト 7.カメラ 8.ユーザーインタフェース(UI)
  • 10. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN • Unityでは、シーン内に配置したオブジェクトに
 「機能」(コンポーネント)をアタッチすることで、
 各オブジェクトの振る舞い(ビヘイビア)を規定します。 • コンポーネントには、すでにUnityが用意しているものもあれば、自 分でスクリプトを作成することで新たに定義できるものもあります。 Unityエディタは、シーンを組み上げるエディタ 10 ⇒シーン内での各オブジェクト間の連携のあり方が
  シーンの構成を形づくる
  • 11. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 11 これらのシーン上のオブジェクト
 を相互に連携させて、
 一連のゲームプレイを創り上げる
 ことが、ゲームを作る
 ということです。
  • 12. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN • エンターティンメントであること • インタラクティブであること • ゴールが存在すること • ルールがあること(ゴールとルールがあることで「挑戦」が生まれる) • 競合するアクティブなエージェントが存在すること • 敵のパフォーマンスを阻害するために、「攻撃」という手段がとれること ゲームプレイに必要なこと 12 後半の要素が加われば加わる程、
 その「ゲームプレイ」はエキサイティングになる
  • 13. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN インスペクターより各コンポーネントのヘルプを開く 13 ローカルヘルプを日本語オンラインヘルプに切り替えるブックマークレット
 http://bit.ly/1M2HYBT
  • 14. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 1.公式の学習ページ Learn http://unity3d.com/jp/learn こちらで日本語(一部英語)で、Unityの使い方をビデオプログラム等で学習する ことができます。 2.Googleで調べる 世界中にUnity開発者コミュニティがあり、日本語だけでなく英語でも様々な情報 が得られる。「”知りたい内容” Unity」のようなキーワードで調べる。 3.AssetStoreをみる https://www.assetstore.unity3d.com/jp/ 特にプロトタイプ作成に入った時に、どんな要素が必要か分解して、まずそれら がAssetStore等で利用できるか調べてみると る。 Unityの学習 14
  • 15. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 15 ゲームデザインドキュメント(GDD)を作成すること 「まだ目の前にないゲーム」をデザインし、ゴールを示すこと 「まだ目の前にないゲーム」を頭の中で遊んでみて、
 他のスタッフに面白さのポイントを伝えること 他のスタッフと相談しながら、必要な作業や素材をリストアップ したり、作業手順をまとめておくこと GDD作成の本質は、他のメンバー(スタッフ、パブリッシャーや プレイヤーも含む)とのコミュニケーションの手段を用意すること ゲームデザイナーの『仕事』 15
  • 16. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 16 1.キャラクター : Character
 プレイヤーキャラクターに基づくメトリクス
  シーンとのインタラクション(物理エンジン)
  世界観やシーンデザインとのすり合わせ(リアル/カートゥーン/SD) 2.カメラ : Camera
 ゲームの視点および画面構成。3Dになるとポリゴンコスト 3.コントロール : Control
 プレイヤーキャラクターの操作方法 ゲームデザイナーが最初に決める3つの『C』 ゲーム制作の後半に大幅に変更すると、
 最悪、ゲームプレイがすべて再調整に! 16
  • 17. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 17 GDDには、特定のフォーマットはない
 「企画メモ」と「ラピッドプロトタイプ」でもよい 「自分で忘れた時の覚書」程度のものでも十分役に立つ
 特に、企画の「目標」とか「ゴール」とかは明記しておくと、後 にブレなくてよい 2週間後には、自分で書いたコードですらわからなくなる
 コメントに、簡単な説明を入れておこう 「一人でつくる」なら、GDDはいらない? 17
  • 18. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 18 ゲームデザインドキュメント(GDD)
   ゲーム制作にあたって、プリプロダクションの指針とする
   ために書かれるドキュメントのこと ワンシート(ペラいち、企画メモ、概要書) テンページャー(企画書) ビートチャート(各ステージ/レベル要項・キャラクター対照表) ゲームデザインドキュメント(仕様書) 4つのゲームデザインドキュメント 18
  • 19. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 19 「ワンシート」に書くこと • ゲームのタイトル • 想定しているゲームシステムやジャンル、プラットフォーム • ターゲットとするプレイヤーの年齢や性別、人数 • 想定しているレーティング • ストーリーの要約。特にゲームプレイに関する部分。 • 基本インタフェース(ゲームカメラの案) • ゲームモードの種類(ストーリー/フリープレイ/アンロック…) • ユニークセールスポイント(USP)/ゲームのウリ • 競合/類似タイトルの例 ワンシートは、テキストファイルでもOK。 ゲーム全体をシンプルに短くまとめた概要書。 19
  • 20. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 20 シーンを読み解く ということ
  • 21. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 1.シーンをじっくりとみる/プレイボタンから実際に動かしてみる 2.InspectorウィンドウのTagをみる 3.Projectウィンドウのスクリプトをみる 4.スクリプトの内容をチェックする 初期化に注目する 更新に注目する イベント発生時処理に注目する コンポーネントを探す/参照を取得に注目する コンポーネント間のメッセージングに注目する シーン中にあるオブジェクトの機能の調べ方 21
  • 22. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN • プレイヤーの位置をみつけ、入力に対する反応(リアクシ ョン)をみる • プレイヤーが最初はシーンに存在せず、プレイボタンスタ ート後に生成(Instantiate)されることもあるので注意 • 敵の行動をみる • シーン内のメカニクスの動き方をみる シーンをじっくりとみる/プレイボタンから実 際に動かしてみる 22
  • 23. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN • Player
   プレイヤーオブジェクトやキャラクタ ーについている • GameController
   ゲームの制御をしたりするオブジェク トについている • MainCamera
   主として使われるカメラについている • Respawn
   プレイヤーキャラの再出現位置とか InspectorウィンドウのTagをみる 23
  • 24. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN • 任意のスクリプトファイル名の 上で右クリック
 >"Find References In Scene"で
 スクリプトがアタッチされてい るオブジェクトを探す Projectウィンドウのスクリプトをみる 24
  • 25. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN スクリプトの内容をチェックする :初期化に注目する 25 Awake/Start (MonoBehaviorクラス) •Awake 最初のシーンロード。Start関数の前およびプレハブのインスタンス 化直後に呼び出される。
 シーン内の各オブジェクトに対して一度だけ。
 GameObjectが有効でない場合には、有効になった直後に呼び出される。
 •Start 最初のフレームのアップデート前。
 スクリプトのインスタンスが有効になり、最初のフレームのアップデート前に 呼び出される。
  • 26. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN スクリプトの内容をチェックする :更新に注目する 26 Update/FixedUpdate (MonoBehaviorクラス) •Update 1フレーム更新ごと、レンダリングする前に呼ばれる関数。
 ほとんどのゲーム挙動に関するコードはここに書かれる。
 1フレーム間の時間は一定ではないので、必ずTime.deltaTimeで進行する。
 •FixedUpdate 主に物理エンジンの更新用に用意されている関数で、
 フレーム概念と関係なく一定時間ごとに実行される関数(デフォルトで0.01秒)
  • 27. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN スクリプトの内容をチェックする :イベント発生時処理に注目する 27 イベント発生時処理(On∼の名前が付いているMonoBehaviorクラス) ⇒プレイヤーの操作で発生するイベント ● OnMouseDown,OnMouseDrag,OnMouseUp… 
 ⇒物理エンジン&コライダーによる衝突&トリガーイベント ● OnCollisionEnter,OnCollisionExit,OnCollisionStay ● OnTriggerEnter,OnTriggerExit,OnTriggerStay プレイヤーからの入力(Inputクラス) ● GetAxis,GetButtonDown,GetKey
  • 28. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN スクリプトの内容をチェックする :コンポーネントを探す/参照を取得に注目する 28 あるタグが付いているコンポーネントを探す
 (GameObjectクラス) ● FindWithTag,FindGameObjectsWithTag コンポーネントへの参照を取得する
 (GameObjectクラス) ● GetComponent,GetComponentInChildren,GetComponentInParent, GetComponents,GetComponentsInChildren,GetComponentsInParent
  • 29. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN スクリプトの内容をチェックする : コンポーネント間のメッセージングに注目する 29 コンポーネント間でメッセージングをすることで、
 別のコンポーネントにアタッチされているスクリプト内の
 関数を呼び出す(GameObjectクラス) ● BroadcastMessage,SendMessage,SendMessageUpwards,
  • 30. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 30 ところで、 クラスってなに?
  • 31. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 31 クラスとコンポーネントを
 ガレージキットで例えてみよう! 原型 シリコンゴム型 キャスト注入 製品 画像は、Wonder Festival オフィシャルサイト『ガレージキットとは』より
 http://wf.kaiyodo.net/knowledge/garagekit/ 上が超簡単に説明した、ガレージキットの製作の流れ
  • 32. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 32 Class / type / Instantiate / Componentの関係 原型 シリコンゴム型 キャスト注入 製品 クラス オブジェクトインスタンス化 GameObjectにアタッチすることで
 実体(インスタンス)化できるクラス
 コンポーネント コード本体 タイプ(型) 画像は、Wonder Festival オフィシャルサイト『ガレージキットとは』より
 http://wf.kaiyodo.net/knowledge/garagekit/ ※自分で書いたスクリプトも、 もちろん含まれる
  • 33. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 33 ポストとメモリのカンケイ?? ?
  • 34. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 34 ポストとメモリのカンケイ?? 「ポスト」とは? •ポストには目的に応じて様々なタイプがある •各々のポストには、住所がひも付けられている •ポストを使いたい場合、まずポストを設置し、 郵便局に住所登録をしておく必要がある •ポストに何か届けたい時には、届けものに
 正確に住所を指定する必要がある ポスト メモリと読み替えてみると…?
  • 35. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 35 コンポーネント参照のための手順 コンポーネント (GameObjectにアタッチされて
 実体化したクラス) ポストの用途やサイズ等(タイプ)を事前に決めて、設置する
 「コンポーネント参照用変数を宣言する」 ポストの住所を指定して、郵便物等を送る/受け取る/利用する
 「コンポーネントを参照する」
  • 36. COPYRIGHT 2015 @ UNITY TECHNOLOGIES JAPANCOPYRIGHT 2014 @ UNITY TECHNOLOGIES JAPAN 36 他にも、「カプセル化」「多態性」「継承」 「オーバーライド関数」「ドットシンタックス」 「名前空間」「スコープ」とか、
 いろいろあるけど、それはまたどこかで(^_^;) UnityのC#コーディングで、ビギナーが迷いやすい のは、「Unity向けのスクリプトをC#の文法で書い ている」というトコじゃないかなっ?
 そこを「Unityならではのライブラリ機能」と、 「C#が元々持っている文法やライブラリ機能」を
 意識して区別する練習をしてみると、コーディング が急に楽になるよっ!