Special
» 2015年01月08日 10時00分 UPDATE

無料のCommunity版でC#コーディングを超高速に:Unityゲーム開発でVisual Studioを使わないと損する3つの理由

マイクロソフトでは、Visual Studio向けの無償の拡張機能として「Visual Studio Tools for Unity」(以下、VSTU)を提供している。ゲーム開発の分野でシェアの高い「Unity」と「Visual Studio」を連携させるVSTUによって、開発者は標準のUnityと比べて、より生産性の高い開発環境を実現できる。2014年11月に公開された無償の「Visual Studio Community」では、VSTUの利用が可能となっている。そこで、あらためて「Unity」でのゲーム開発に「Visual Studio」を活用するメリットについて、日本マイクロソフトのエバンジェリストである大西彰氏に聞いた。

[PR/@IT]
PR

無償のVisual Studio Communityでも「VSTU」が利用できる!

 世界中のゲーム開発者の間で、着々とユーザー数を増やしているUnity Technologiesの開発環境「Unity」。WindowsやMac OS Xをはじめ、各社のコンシューマーゲーム機、スマートフォン、Webブラウザーなど、近年のゲーム実行環境の多様化に対応したマルチプラットフォーム開発ツールとして、多くの開発者から支持を集めている。

 マイクロソフトでは、同社の統合開発環境である「Visual Studio」向けの無償の拡張機能として「Visual Studio Tools for Unity」(以下、VSTU)の提供を行っている。

 VSTUは、Visual Studioの持つ開発環境としての生産性の高さを、「Unity」でのゲーム開発に活用するための機能拡張である。従来は、Visual Studioの機能拡張を活用するには「Professional」以上のバージョンが必要だったが、2014年11月に新しく発表された個人開発者や中小規模の企業を対象とした無償版「Visual Studio Community」では、その機能拡張が利用できる。つまり、Visual Studio Communityを使用すれば小規模なゲーム開発会社や個人の開発者は、すぐに無償でVSTUを使った開発環境を整えることができるようになったわけだ(Visual Studio Communityの詳細については「Visual Studio Community 2013 - Visual Studio」を参照)。

vstu0.jpg 日本マイクロソフト デベロッパーエクスペリエンス&エバンジェリズム統括本部 クライアントテクノロジー推進部 エバンジェリスト 大西彰氏

 「VSTUは、UnityでC#のコーディングを行う開発者が感じている生産性に関する課題を、Visual Studioのパワーを使って解決することを目指したものです。Community版の登場で、より多くのUnity開発者の方に、その機能を試していただける環境が整っています」と語るのは、日本マイクロソフト デベロッパーエクスペリエンス&エバンジェリズム統括本部 クライアントテクノロジー推進部 エバンジェリストの大西彰氏だ。

 今回、大西氏にVSTUでできることと、それによってUnityによるゲーム開発の生産性がどのように向上するのかについて話を聞いた。

 UnityとVisual Studioがインストールされた環境があれば、VSTUを利用できるようにするための準備は簡単だ。まずは、マイクロソフトのダウンロードサイトから、インストールされているVisual Studioのバージョンに合った、VSTUのインストーラー(201320122010)を入手する(VSTUの詳細については、「Visual Studio Tools for Unity | MSDN」で確認願いたい)。

 VSTUをインストールし、併せて、Unity側でプロジェクトにVSTUのパッケージをインポートすることで、Unity Editor上にVSTUのメニューが表示されるようになり、Visual StudioとUnityの連携準備が整う。

理由その1:C#のコーディングにVisual Studioの高機能なエディターが利用できる

 Unityの開発作業では、ゲームオブジェクトに対して、MonoBehaviourのサブクラスを実装したC#スクリプトを割り当てることで、ゲームオブジェクトの振る舞いを定義していくというスタイルが広く使われている。Unityには、標準のエディターとして、オープンソースの「MonoDevelop」が含まれており、Unity環境だけでもコーディングは行えるようになっている。しかし、MonoDevelop自体は、特にC#の記述に特化したものではないため、実際のコーディングを行う際には、機能的にもの足りない部分が出てきてしまう。

 VSTUのメリットの一つは、C#向けに豊富なコーディング支援機能が用意されているVisual Studioのエディターを、MonoDevelopの代わりに利用できるようになる点だ。

 Visual Studioで開発を行ったことがある人ならば「Intellisence」と呼ばれる入力支援機能の便利さについては少なからず知っていることだろう。例えば、if文やfor文など定型のコードをスニペットとして素早く呼び出すことでタイピング数を減らすことができる。

 そのスニペットをUnity開発向けに拡張したのが、「Implement MonoBehaviours」という機能だ。「UnityでC#による開発を行う際には、その多くは『MonoBehaviour』のAPIを頻繁に呼び出すことになりますが、その内容は多岐にわたり、全てを覚えておくことは大変です。VSTUを使って、Visual Studioのエディター上でコーディングを行うと、このMonoBehaviourのメソッド実装に関して強力な支援機能を利用できます」(大西氏)

 例えば、記述したいメソッドを選択すると、エディター内に自動的にそのひな型となるコードが生成される。後は、そのひな型の中に、必要な処理を記述するだけでいい。UnityのAPIバージョンについても、指定が可能だ。

vstu1.jpg 「Implement MonoBehaviours」のウィンドウ
vstu2.jpg 「Implement MonoBehaviours」で生成されたコード

 また、慣れてくると「完全なメソッド名が思い出せないが、一部分だけ覚えている」といったケースも出てくる。その際は、覚えている部分だけをタイプすると、その文字列を含むメソッドのリストを選択肢として表示してくれる。特にC#では、メソッド名の大文字と小文字が厳密に区別されるため、ちょっとしたタイプミスが、後々の作業に大きく影響を与える。Visual Studioのテキストエディターから呼び出せるVSTUの入力支援機能「Quick MonoBehaviours」が、こうしたケアレスミスを防ぎ、全体の生産性を高めてくれる。

vstu3.jpg Visual Studioの「Intellisence」を生かした「Quick MonoBehaviours」機能

理由その2:Visual Studioの強力なデバッグ支援機能をUnity開発で使える

 VSTUには、コーディング支援に加えて、UDP通信でUnity EditorとUnity Web Player、PC向けにビルドしたUnity Playerを連携することで、デバッグを容易に行う機能も搭載されている。

 例えばVSTUを利用すると、Unityコンソールに表示されるエラーがVisual Studio側にも表示されるようになる。さらに、Visual Studioの機能で、エラーを発生させている箇所のコードの特定を迅速に行えるのだ。

vstu4.jpg UnityコンソールのエラーがVisual Studio側にも表示。エラーコードも特定

 また、Visual StudioのデバッガーをUnityでの開発に活用できる。コード上でのブレークポイントの設定、ステップ実行、変数値の参照、イミディエイトウィンドウといった、Visual Studio自体が持っているデバッガーの全ての機能が、Unity開発においても活用できるわけだ。

 Unity上で開発中のゲームを動作させながら、Visual Studio上のデバッグ機能を利用できることで、大幅に生産性が高まるという。

 「実際にVSTUを使っている方の間で評価が高い機能が、Visual Studioで利用できる条件付きのブレークポイントです。これは、ブレークポイントに対して論理式を設定できるもので、例えば『スコアが400点を上回った時』といった条件を満たしたときに、指定した箇所でプログラムの実行を止められます。Unity上でゲームを動作させながら、実行状況や変数の状態が見られるので、発生している問題の原因特定が容易になります」(大西氏)

vstu5.jpg 条件付きブレークポイントの設定
vstu6.jpg Unity Web Playerへ接続したときのデバッグ

 「デバッグについては、Unityでゲームを実行しながら、必要に応じてVisual Studioの中だけで作業に集中できるので、その点でも生産性は高まります。さらにVSTUを使うと、Visual Studioの環境内で『Unity API Reference』を参照できるようになります。主要なAPIなら、Webブラウザーに切り替えて検索して調べるといったことなく、Visual Studio内での作業に集中できるのです」(大西氏)

vstu7.jpg Visual Studioの環境内で『Unity API Reference』を参照

理由その3:Unityでの開発を快適にする機能強化やサポートが見込める

 VSTUは、もともとSyntaxTreeというサードパーティが「Unity VS」という名称で開発を行っていたものだ。マイクロソフトは2014年7月に、同社を買収。今後は、マイクロソフト自らが提供する公式の拡張機能として、VSTUをVisual Studioに統合していく方針を明らかにした。将来的に登場するVisual Studio最新版へのVSTUの対応、Unityの最新バージョンへの対応、新たな機能の搭載、バグフィックスなども、さらに迅速に行われていく可能性が高い。つまり、仕事としてUnityでのゲーム開発を行っている開発者にとって、VSTUとVisual Studioを標準の作業環境として採用した場合のサポートが、従来以上に期待できるようになるというわけだ。

 「マイクロソフトの米国本社も、Windowsデスクトップだけではなく、Windows 8.1とWindows Phone 8.1で幅広く動作する『ユニバーサルWindowsアプリケーション』、さらにXbox Oneを含めたゲーム開発エコシステムの中で、Unity Technologiesとの関係を強化する方針を採っています。今後、Unityの最新バージョンが発表されれば、そのリリース後に、VSTUでも間を開けずに対応を行うでしょう」(大西氏)

 現在プレビューが公開されている「Visual Studio 2015」で利用できるVSTUのプレビュー版でも、すでにいくつかの機能拡張が行われている。現在では、C#のソースファイルのみがVisual Studio側で開けるが、2015ではそれに加えてシェーダーに関するファイルも編集可能になるようだ。

 本来、Visual Studio自体も、DirectXを対象としたゲーム開発向けにさまざまな機能を持つ。グラフィックに関しても、IDE上に3Dモデルを表示し、適用する効果を確認しながらシェーダーを作成する機能や、作成したモデルを動作させつつ、フレームレートやAPIの呼び出しによるオーバーヘッドを分析する「Graphics Analyzer」といった機能がある。これらの機能は、UnityからWindows向けにビルドしたゲームの診断に活用できる。

vstu8.jpg Visual Studioのグラフィックスの診断セッション
vstu9.jpg 「Graphics Analyzer」機能でUnityゲームを診断

 「VSTUは、マイクロソフト公式の機能拡張となったことで、これまで以上にユーザーの声を迅速に反映することが可能なツールになったと思います。VSTUのダウンロードページに掲載されているQ&Aは、開発チームのメンバーも直接見ていますし、実際にそこで議論された内容が反映されるケースもあります。また、使っていく上で問題が起きた場合は、ここでの議論を見たり、質問したりすることで解決を図れる場合も多いと思いますので、ぜひ活用してください」(大西氏)

Unity開発者に向けたマイクロソフトの支援プログラムも強化

 マイクロソフトでは、主にUnityを利用してゲームを作っている開発者や企業に向けた、さまざまな支援プログラムを提供している。

 例えば「ID@Xbox」と呼ばれる開発者支援プログラムでは、「2台のXbox One開発者キット」「ドキュメント、フォーラム、ミドルウェアなどへのアクセス」「Xbox One用Unity Proライセンス」といった、Xbox One向けゲーム開発に必要なツールが、ID@Xboxへの申し込み後、所定の審査を通過すれば独立系パブリッシャーに対して提供される。

 このプログラムで開発したゲームは、Xbox Store上で販売できる。スキルやアイデアはある一方で、市場に参入するためのツールをそろえるコストが負担になる小規模開発者や今まで直接パブリッシングを行っていなかったゲーム開発会社にとって、特にメリットの大きいプログラムだ。余談だが、「Kinect for Windows SDK 2.0」において、WindowsデスクトップアプリとWindows Storeアプリ、Xbox向けAPIの共通化を行っている。併せて、Unity向けのプラグインも提供されているので、Kinectを利用するアプリケーションのUnityでの開発も、より手軽に行えるようになる見込みだ。

 その他「Unity Porting lab」と呼ばれる、既存のUnityタイトルをWindowsストア用に移植するためのワークショップを、今後は日本でも展開していく予定とのことだ。マルチプラットフォームツールであるUnityの特性を生かして、自社のゲームタイトルの市場を、WindowsストアやWindows Phoneストアにも拡大したい開発者にとって役立つ情報が入手できるので期待したいところだ。

 「Unityでの開発にVisual Studioの高い生産性を持ち込めるVSTUは、その便利さにおいて、多くのUnity開発者の方に体験していただきたいものです。無償のCommunity版が登場したことで、試用のためのハードルは大幅に下がりました。さらに、これをきっかけにして、Unityの枠を越えたC#の本格的な使い方や、Windowsストア アプリ、Xboxといったプラットフォームをターゲットにしたパブリッシュにも目を向けてもらえれば、ゲーム開発者や開発企業としての、スキルやビジネスの拡大にもつなげていただけるのではないかと思っています」(大西氏)

Copyright© 2017 ITmedia, Inc. All Rights Reserved.


提供:日本マイクロソフト株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2015年2月8日

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。