Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Unity ゲーム開発                東京開発グループ          リードソフトウェアエンジニア                    牧野 克俊
自己紹介• Aiming 以前  – オンラインゲーム、通信ミドルウェアの開発• Aiming では  – 仕事は技術監修、調査、研究  – MMO, MO といったオンラインゲームが    フィールド
概要• なぜ Unity なのか?• Unity 開発入門• Unity はどう使うべきか?
なぜ Unity なのか?   Aiming の場合
なぜ Unity なのか?• 要求 – スマートフォン(最低 iOS、Android) – ゲームジャンルは多岐  • SLG, RPG, etc – ネットワーク機能が必須 – ワンソース・マルチプラットフォーム   が理想
なぜ Unity なのか?• 結論 –Unity と C# を用いて作成する
なぜ Unity なのか?  では理由を
なぜ Unity なのか?• 候補 – Unity – UDK – Titanium – Corona – Marmalade – Flash(Adobe AIR)
なぜ Unity なのか?          Unity   UDK   Titanium   Corona   Marmalade   Flash  iOS      ○      ○       ○         ○          ○...
なぜ Unity なのか?• 言語 – Unity           → C#, JavaScript, Boo – Titanium        → JavaScript – Corona          → Lua – UDK    ...
なぜ Unity なのか?• 言語(C# vs JavaScript) – 状況   • 社内的に中、大規模のチーム(プログラマ     が 5~10 人)   • C#, JavaScript でのゲーム開発経験なし   • チーム内のレベル...
なぜ Unity なのか?• 言語(C# vs JavaScript) – 結論としては C# なんですが   • JavaScript は自由すぎる   • C# はエディタ(コンパイラ)が制約をかけ     てくれるところが便利
Unity 開発入門
Unity 開発入門• 実際の開発 1.   Scene 作成 2.   オブジェクト配置 3.   スクリプト作成 4.   Prefab 化
Unity 開発入門1. Scene 作成 – レベルの定義を管理するもの
Unity 開発入門2. オブジェクト配置   – GameObject   • ゲーム中に存在するすべてのオブジェクト   • 自身に機能はなくコンテナ   • コンポーネントを追加して機能とする   • Transform コンポーネントは...
Unity 開発入門3. スクリプト作成 – MonoBehaviour   • その名の通り振る舞いの定義   • GameObject に追加して機能が実行される
Unity 開発入門Awake()      Start()       Update() Awake()       Start()      Update()    Rendering  Awake()        Start()    ...
Unity 開発入門4. Prefab 化  – Prefab    • GameObject とコンポーネントのセットを再      利用可能なように保存    • 実行時にはこれをもとにインスタンス作成
Unity 開発入門• 使えるリソース – Meshes   • .FBX , .dae (Collada) , .3DS , .dxf, .obj – Textures   • PSD, TIFF, JPG, TGA, PNG, GIF, B...
Unity 開発入門• ビルド – 各実行環境でビルドが必要   • アセットもその時各環境用に変換される – デスクトップとスマートフォンで仕組みが異   なる   • デスクトップ → Mono 上で動く   • スマートフォン→ AOT ...
Unity はどう使うべきか? Aiming での現状を踏まえて
Unity はどう使うべきか?• Unity = ゲームエンジン
Unity はどう使うべきか?• ゲームエンジンってなに? – ライブラリと開発環境/ツールがセット   になったもの
Unity はどう使うべきか?• 役割分担 – アーティスト  • モデル、画像等リソース作成 – ゲームデザイナー  • レベルデザイン – ゲームプレイプログラマ  • キャラクタコントロール、敵 AI 、武器 – エンジン/エディタプログ...
Unity はどう使うべきか?• 開発環境 – OS   • Mac, Windows – スクリプトエディタ   • MonoDevelop, VisualStudio – ソース管理   • svn, git – ツール   • エディタ拡張
Unity はどう使うべきか?• ボトルネック – フィルレート – Draw call の回数 – アルファテスト – テクスチャのサイズ – ピクセル単位のライティング – GUI
まとめ
まとめ• Unity の流儀に従うべき – 流儀を学ぶために本開発前に少人数で1個   ゲームを作った方がいい• リソース管理は若干我慢が必要かも• エディタ拡張は積極的に• こまめに実機確認は必要
Upcoming SlideShare
Loading in …5
×

Unity ゲーム開発

28,122 views

Published on

Published in: Technology
  • Be the first to comment

Unity ゲーム開発

  1. 1. Unity ゲーム開発 東京開発グループ リードソフトウェアエンジニア 牧野 克俊
  2. 2. 自己紹介• Aiming 以前 – オンラインゲーム、通信ミドルウェアの開発• Aiming では – 仕事は技術監修、調査、研究 – MMO, MO といったオンラインゲームが フィールド
  3. 3. 概要• なぜ Unity なのか?• Unity 開発入門• Unity はどう使うべきか?
  4. 4. なぜ Unity なのか? Aiming の場合
  5. 5. なぜ Unity なのか?• 要求 – スマートフォン(最低 iOS、Android) – ゲームジャンルは多岐 • SLG, RPG, etc – ネットワーク機能が必須 – ワンソース・マルチプラットフォーム が理想
  6. 6. なぜ Unity なのか?• 結論 –Unity と C# を用いて作成する
  7. 7. なぜ Unity なのか? では理由を
  8. 8. なぜ Unity なのか?• 候補 – Unity – UDK – Titanium – Corona – Marmalade – Flash(Adobe AIR)
  9. 9. なぜ Unity なのか? Unity UDK Titanium Corona Marmalade Flash iOS ○ ○ ○ ○ ○ ○Android ○ △ △ ○ ○ ○実行速度 ○ ○ × △ ○ △拡張性 ○ △ ○ × ○ ×通信対応 △ △ × × × △開発効率 ○ ○ × × × ○学習コス × × × × × ○ ト
  10. 10. なぜ Unity なのか?• 言語 – Unity → C#, JavaScript, Boo – Titanium → JavaScript – Corona → Lua – UDK → UnrealScript – Marmalade → C++ – Flash(Adobe AIR) → ActionScript
  11. 11. なぜ Unity なのか?• 言語(C# vs JavaScript) – 状況 • 社内的に中、大規模のチーム(プログラマ が 5~10 人) • C#, JavaScript でのゲーム開発経験なし • チーム内のレベル、経験がバラバラ
  12. 12. なぜ Unity なのか?• 言語(C# vs JavaScript) – 結論としては C# なんですが • JavaScript は自由すぎる • C# はエディタ(コンパイラ)が制約をかけ てくれるところが便利
  13. 13. Unity 開発入門
  14. 14. Unity 開発入門• 実際の開発 1. Scene 作成 2. オブジェクト配置 3. スクリプト作成 4. Prefab 化
  15. 15. Unity 開発入門1. Scene 作成 – レベルの定義を管理するもの
  16. 16. Unity 開発入門2. オブジェクト配置 – GameObject • ゲーム中に存在するすべてのオブジェクト • 自身に機能はなくコンテナ • コンポーネントを追加して機能とする • Transform コンポーネントは必ず追加される
  17. 17. Unity 開発入門3. スクリプト作成 – MonoBehaviour • その名の通り振る舞いの定義 • GameObject に追加して機能が実行される
  18. 18. Unity 開発入門Awake() Start() Update() Awake() Start() Update() Rendering Awake() Start() Update()
  19. 19. Unity 開発入門4. Prefab 化 – Prefab • GameObject とコンポーネントのセットを再 利用可能なように保存 • 実行時にはこれをもとにインスタンス作成
  20. 20. Unity 開発入門• 使えるリソース – Meshes • .FBX , .dae (Collada) , .3DS , .dxf, .obj – Textures • PSD, TIFF, JPG, TGA, PNG, GIF, BMP, IFF, PICT
  21. 21. Unity 開発入門• ビルド – 各実行環境でビルドが必要 • アセットもその時各環境用に変換される – デスクトップとスマートフォンで仕組みが異 なる • デスクトップ → Mono 上で動く • スマートフォン→ AOT Compile によりネイティブ コードに• デバッグ – MonoDevelop
  22. 22. Unity はどう使うべきか? Aiming での現状を踏まえて
  23. 23. Unity はどう使うべきか?• Unity = ゲームエンジン
  24. 24. Unity はどう使うべきか?• ゲームエンジンってなに? – ライブラリと開発環境/ツールがセット になったもの
  25. 25. Unity はどう使うべきか?• 役割分担 – アーティスト • モデル、画像等リソース作成 – ゲームデザイナー • レベルデザイン – ゲームプレイプログラマ • キャラクタコントロール、敵 AI 、武器 – エンジン/エディタプログラマ • 機能拡張、高速化
  26. 26. Unity はどう使うべきか?• 開発環境 – OS • Mac, Windows – スクリプトエディタ • MonoDevelop, VisualStudio – ソース管理 • svn, git – ツール • エディタ拡張
  27. 27. Unity はどう使うべきか?• ボトルネック – フィルレート – Draw call の回数 – アルファテスト – テクスチャのサイズ – ピクセル単位のライティング – GUI
  28. 28. まとめ
  29. 29. まとめ• Unity の流儀に従うべき – 流儀を学ぶために本開発前に少人数で1個 ゲームを作った方がいい• リソース管理は若干我慢が必要かも• エディタ拡張は積極的に• こまめに実機確認は必要

×