Your SlideShare is downloading. ×
Unity ゲーム開発
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Unity ゲーム開発

21,082
views

Published on

Published in: Technology

0 Comments
29 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
21,082
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
98
Comments
0
Likes
29
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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