ディープだが覚えておきたいUnityゲーム開発の小テク16選まとめ:プロのゲーム開発者が勉強会で伝授(1/3 ページ)
2015年2月24日、「日本Androidの会 Unity部」の主催による「Visual Studio Tools for Unity」の勉強会が開催された。日本マイクロソフトのエバンジェリストによるVSTUの紹介やQ&Aに加え、UnityやVisual Studioを使いこなすプロのゲーム開発者によるライトニングトークも行われ、盛り上がりを見せた。
細か過ぎて伝わりづらいが便利なUnityゲーム開発の小テクたち
今回紹介する小ワザ
- 【1】ブレークポイントを使ってピンポイントでデバッグ
- 【2】特定の条件(スコアが500点になった場合など)が発生したらデバッグ
- 【3】お決まりのコードを一気に生成する「Implement MonoBehaviours」
- 【4】コード補完機能「Quick MonoBehaviours」で、うろ覚えでも問題なし
- 【5】Webブラウザーを使わずに「Unity API Reference」が見られる
- 【6】Visual StudioではUnityで使える3Dモデルのデータの作成・編集ができる
- 【7】DirectXの3Dグラフィックをモニタリング
- 【8】ファイル名やクラス名の変更はVSTU側でやらない方がいい
- 【9】Unityは改行コードがUNIX向け、Windowsで動くVSTUと異なる
- 【10】UnityのゲームからWindowsアプリのAPIを呼び出す
- 【11】ロジック部分のC#スクリプトを単体テスト
- 【12】UnityのC#スクリプトのクラス図を生成する
- 【13】補完候補に挙がる「Boo.Lang」を表示させたくない
- 【14】Unity側で定義している#defineやunsafeをVSTUにも反映する
- 【15】VSTUでのコーディングはプラグインでさらに楽しく、便利になる
- 【16】テキストファイルのテンプレート「T4」でクラスのコードを自動生成
マイクロソフトが提供する「Visual Studio Tools for Unity」(以下、VSTU)は、統合開発環境「Visual Studio」が持つ開発生産性向上のための各種の機能を、「Unity」によるゲーム開発に活用するためのアドオンだ。
VSTUは以前、「Unity VS」という名称で、SyntaxTreeという企業が開発を行っていた。同社は、2014年8月にマイクロソフトによって買収されており、今後、VSTUは公式の機能拡張としてVisual Studioとの統合をより強めていく方針が明らかにされている。
また、Unity VSではC#だけではなくJavaScriptにも対応していたが、マイクロソフトの製品になったことで、JavaScript対応は行わず、C#開発に特化した形で機能を強化していく方針になったという。
Unity自体にもエディターを含む統合開発環境は用意されているが、あえてVSTUを使ってUnity開発にVisual Studioを利用するメリットは何なのだろうか。また、VSTUを使う上で知っておくと、さらに開発が便利になる「小テク」には、どんなものがあるのだろうか。
これらをテーマにした「【聞いてみよう!】Visual Studio Tools for Unity勉強会【使わないともったいない!?】」が、去る2月24日に開催された。主催は「日本Androidの会 Unity部」で、勉強会には日ごろUnityを活用している開発者が多く詰め掛けた。コミュニティ主催の勉強会らしく、実際の利用場面に即した内容の濃い質疑応答や意見交換、ライトニングトークが繰り広げられた。
VSTUは無料、使えるVisual StudioもCommunity版やDreamSpark、BizSparkなら無料
最初のスピーカーとして登壇したのは、日本マイクロソフト デベロッパーエクスペリエンス&エバンジェリズム統括本部テクニカルエバンジェリストの大西彰氏だ。
今回の勉強会は「Unity」と「Visual Studio」の連携がメインテーマだ。両者を組み合わせて使うことで開発生産性を高めることができるVSTUについて、大西氏は「地味だが派手なツール」であると評した。これは「実現している機能の一つ一つは“地味”に見えるかもしれないが、それらによってUnity開発者の生産性は“派手”に上がる」という意図だ。
VSTUは、マイクロソフトのWebサイトから無料でダウンロードできる。Visual Studioの各バージョン別に提供されており、「Professional」以上のエディションで利用できる。また、無料の「Community」版でも利用できる点は大きなポイントだ(法人の場合は一部条件あり)。同サイトでは、VSTUのインストール方法や利用方法の詳細について解説したドキュメントも用意されている。
大西氏は、実際に「Unity」と「Visual Studio」をVSTUで統合した環境を利用し、そこで提供される主な機能について、一つずつ紹介していった。
例えばVSTUには、Visual Studioエクスプローラー内でのプロジェクト表示順をUnity環境での表示順に合わせることができる「Unity Project Explorer」や、各種のショートカットキーなどが用意されている。これらを最大限に使いこなすことで、Unityでの作業効率を大幅に高められるという。
Unityでもブレークポイントを設定してデバッグするには?
VSTUは、標準的なUnityのエディター環境だけではなく、Unity PlayerやUnity Web Playerに対してもVisual Studioを接続できる。大西氏は「VSTUを利用するようになって、Unity標準エディターでのデバッグの苦しみから解放されたという意見が多くてうれしい」と話す。
小テク【1】ブレークポイントを使ってピンポイントでデバッグ
VSTUを使うと、Unityの環境で動いているプログラムに対して、ブレークポイントを設定し、そこで自動的にVisual Studioのエディター環境を起動できるようになる。コードの色分け、F10キーによるステップ実行、「ウォッチ ウィンドウ」「イミディエイト ウィンドウ」による変数値の参照など、Visual Studioが持つ豊富なデバッグ機能を利用できる。
小テク【2】特定の条件(スコアが500点になった場合など)が発生したらデバッグ
また「条件付きのブレークポイント」を設定できるのも「地味だが派手」なVSTUのメリットの一つだ。エディター上で設定したブレークポイントに対し、条件となる式を設定しておく。すると、Unity上で動いているプログラムの内部で条件として設定した式が成立したときだけ、ブレークが掛かるという仕組みだ。
「VSTUに慣れてくると、単純なブレークポイントでいちいち実行を止めるのが面倒になってきます。条件付きブレークポイントを使うと、特に重点的にデバッグしたい内部状態を条件として設定し、そこで実行を止めることができるようになります」(大西氏)
UnityのC#コーディングの効率を上げるには?
Unityでは、主に「MonoBehaviour」のサブクラスをC#で実装しながら開発作業を進めていく。MonoBehaviourが提供しているAPIは多岐にわたり、日常的にUnityでの開発を行っている人であっても、その全てを正確に記憶しておくのは無理だ。VSTUでは、このMonoBehaviourのコーディングを大幅に便利にする支援機能が利用できる。
小テク【3】お決まりのコードを一気に生成する「Implement MonoBehaviours」
VSTUの「Implement MonoBehaviours」機能を利用すると、記述したいメソッド名の一部から、正確なメソッド名を選択し、エディター内にひな型となるコードを呼び出すことができる。開発者は、ひな型の中に必要な処理を記述するだけでいい。
小テク【4】コード補完機能「Quick MonoBehaviours」で、うろ覚えでも問題なし
MonoBehaviourの豊富なAPIを使いこなすに当たって便利なVSTUの機能が「Quick MonoBehaviours」だ。強力なコードの補完機能となっており、うろ覚えのメソッド名の一部などから、目的のものへ「推測変換」してくれる。
例えばデモでは「omd」という3文字の文字列から、候補として「OnMouseDown()」メソッドが提示されていた。
また、Visual Studioの「Intellisence」技術によって、処理の記述中にコードの補完やタイプミスの指摘などのサポートが行われる。C#では大文字と小文字が厳密に区別されるため、記述中にうっかりそれらを混同してしまうといったミスも発生しがちだ。これらの支援機能により、よりケアレスミスの少ないコーディングが行える。
小テク【5】Webブラウザーを使わずに「Unity API Reference」が見られる
MonoBehaviourの豊富なAPIを使いこなすための機能がもう一つある。コード上に登場するクラスを見て、その詳しい仕様を知りたい場合、普通はそのクラスをコピーして、外部のブラウザーの検索窓に張り付けて……という作業を行うことになるだろう。その結果、そこから他のサイトにジャンプするなどして、いろいろなサイトを見ているうちに、自分が何を調べていたのか忘れてしまうことがある。
「VSTUでは、Visual Studio内で参照できるUnity APIのリファレンスを用意しており、そこですぐにAPIの詳細を確認できます。UnityとVisual Studioの環境内で集中して作業を進められるので、効率が上がるはずです」(大西氏)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ハッカソン、デバイス、海外展開、人材育成――ゲーム開発で私たちは今何をすべきか
2015年1月23〜25日、世界中で同時に行われた48時間にわたるゲーム開発ハッカソンの模様と、ゲーム開発がテーマのトークセッションをいくつかダイジェストでお届けする。 - ゲーム嫌いも知っておきたい3D CG/VRのエンタープライズ活用事例〜Unity Solution Conference 2014まとめ
ゲーム開発で有名なUnity。医療や建築、ヘルスケア、観光などゲーム以外の活用事例をイベントリポートでお届けする。 - Oculus Rift、Unity、Openframeworks...感覚器官フル稼働の仮想空間を実現する
学生のアイデアを具現化するツールの進化・普及と、感覚器官をフルに使う人工現実感。表現とインターフェースについての学生の挑戦から「思い付き」を実現する環境のいまを知ろう。 - Unity 4.2でBaaSを使って簡単にストアアプリを作るには〜CEDEC 2013「Unity on Windows 8」レポート
開発の概要や、プッシュ通知ができるライブタイルなどWindows特有の機能を追加する方法、事前審査テスト時の注意点なども。