ディープだが覚えておきたいUnityゲーム開発の小テク16選まとめ:プロのゲーム開発者が勉強会で伝授(2/3 ページ)
2015年2月24日、「日本Androidの会 Unity部」の主催による「Visual Studio Tools for Unity」の勉強会が開催された。日本マイクロソフトのエバンジェリストによるVSTUの紹介やQ&Aに加え、UnityやVisual Studioを使いこなすプロのゲーム開発者によるライトニングトークも行われ、盛り上がりを見せた。
質疑応答では、さらにディープな質問が
VSTU紹介セッションの後には、来場者からの質問に大西氏が答えるQ&Aコーナーが設けられた。ここでは、その質疑応答の一部を紹介する。
小テク【6】Visual StudioではUnityで使える3Dモデルのデータの作成・編集ができる
質問 VSTUを使っていると、FBX形式のファイル(Filmboxの略。オートデスクの3Dモデルのデータ形式)を開くときに、Visual Studioが勝手に立ち上がってしまいます。これを、やめさせたいのですが。
大西氏 Visual StudioにはFBXなど3Dモデルのデータを表示/編集する機能があるため、インストール時に自動的に関連付けが行われています。Windowsの設定で、その関連付けを切ってしまえば大丈夫です。
……とはいえ、Visual Studioには、3Dモデル関連の便利な機能がいくつかあるので、紹介させてください。
例えば、シェーダーの機能を表すオブジェクトを、Visual Studio上でマウス操作でつないでいき完成したものをExportすると、そのシェーダーのコードが自動的に生成される機能があります。これは、かなり便利です。
小テク【7】DirectXの3Dグラフィックをモニタリング
また、VSTUだけではなく3Dグラフィックのデバッグにおいても便利な機能があります。例えば、Windowsストア アプリやXboxなどで動くDirectXのグラフィックに対して“診断”を行う機能「Visual Studio Graphics Analyzer」です。Unityのゲームなどから呼び出すDirectXの動作を全てモニタリングできます。
これを使うと、各フレームのコールにかかった時間など細かいデータが参照できるので、パフォーマンスの改善や不具合の改修などに非常に役立ちます。
小テク【8】ファイル名やクラス名の変更はVSTU側でやらない方がいい
質問 Unityプロジェクトで利用しているファイル名やクラス名の変更をVSTUのエクスプローラー上で行った場合、リファクタリングなどはうまくやってくれるのでしょうか? アタッチなどは勝手に外れませんか?
大西氏 実際に試してみましょう。確かに、何かおかしいですね。ファイル名を元に戻したら直りましたけれど、ファイル名やクラス名の変更はVSTU側でやらない方がいいみたいです。
小テク【9】Unityは改行コードがUNIX向け、Windowsで動くVSTUと異なる
質問 VSTUを使っていると、余計な改行コードが混ざってきてしまって後処理が面倒なのですが、どうすればいいのでしょうか?
大西氏 これについては、私も自分でいろいろ試してみましたが、結論としては「割り切り」がいいのではないでしょうか。
方法としては、スクリプトのテンプレートフォルダーの中に入っているテンプレートを、あらかじめいつも使っている改行コードを使って書き換えておくというのが一つ。
また、「保存オプション」の詳細設定で、改行コードをあらかじめ設定しておくという方法もあります。
Unityだと、改行コードがUNIX向けなので、Windows上でそのスクリプトを開いて保存しようとすると、改行コードを置き換えようとしてしまいます。「置き換えますか?」のダイアログに「いいえ」と答えるということです。
今のところは、最初にどちらの表記に合わせるかを割り切って決めてしまい、これらの方法を使って統一していくのがいいと思います。
小テク【10】UnityのゲームからWindowsアプリのAPIを呼び出す
質問 Unityを通じてWindowsストア アプリやユニバーサルアプリを開発するとき、使っているAPIに非同期になっているものが多く、それが非常につらいのですがどうしたらいいのでしょうか?
大西氏 UnityのC#スクリプトは直接WinRT APIを呼び出すことができます。非同期のものに関しては、このやり方を使うとうまくいくはずです。
これを使うと、例えばWindowsストア アプリのライブタイル更新がUnity側から行えます。
また、Unity Player上にWindowsのUIを重ねて、その間で情報をやりとりするようなアプリケーションが作れます。WinRTとUnityの間で、双方向にブリッジできるのでmぜひ試してみてください。
小テク【11】ロジック部分のC#スクリプトを単体テスト
質問 VSTUについて、ユニットテスト(単体テスト)に関するトピックがあれば聞かせてください。
大西氏 これはVisual Studioの基本機能ですが、プロジェクトテンプレートとしてC#の単体テストプロジェクトが用意されています。Unityのスクリプトについても、UIのないロジック部分のみであれば、そこにコードを記入して単体テストが行えます。
小テク【12】UnityのC#スクリプトのクラス図を生成する
テストに関連してですが、皆さんは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特有の機能を追加する方法、事前審査テスト時の注意点なども。