ディープだが覚えておきたいUnityゲーム開発の小テク16選まとめプロのゲーム開発者が勉強会で伝授(2/3 ページ)

» 2015年03月17日 18時00分 公開
[柴田克己@IT]

質疑応答では、さらにディープな質問が

 VSTU紹介セッションの後には、来場者からの質問に大西氏が答えるQ&Aコーナーが設けられた。ここでは、その質疑応答の一部を紹介する。

小テク【6】Visual StudioではUnityで使える3Dモデルのデータの作成・編集ができる

質問 VSTUを使っていると、FBX形式のファイル(Filmboxの略。オートデスクの3Dモデルのデータ形式)を開くときに、Visual Studioが勝手に立ち上がってしまいます。これを、やめさせたいのですが。

大西氏 Visual StudioにはFBXなど3Dモデルのデータを表示/編集する機能があるため、インストール時に自動的に関連付けが行われています。Windowsの設定で、その関連付けを切ってしまえば大丈夫です。

FBXファイルをVisual Studioで表示した例

 ……とはいえ、Visual Studioには、3Dモデル関連の便利な機能がいくつかあるので、紹介させてください。

 例えば、シェーダーの機能を表すオブジェクトを、Visual Studio上でマウス操作でつないでいき完成したものをExportすると、そのシェーダーのコードが自動的に生成される機能があります。これは、かなり便利です。

シェーダーファイル(DGSL形式:Microsoft Visual Studio Visual Shader Graph)の作成

小テク【7】DirectXの3Dグラフィックをモニタリング

 また、VSTUだけではなく3Dグラフィックのデバッグにおいても便利な機能があります。例えば、Windowsストア アプリやXboxなどで動くDirectXのグラフィックに対して“診断”を行う機能「Visual Studio Graphics Analyzer」です。Unityのゲームなどから呼び出すDirectXの動作を全てモニタリングできます。

Visual Studio Graphics Analyzer

 これを使うと、各フレームのコールにかかった時間など細かいデータが参照できるので、パフォーマンスの改善や不具合の改修などに非常に役立ちます。

小テク【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を呼び出すことができます。非同期のものに関しては、このやり方を使うとうまくいくはずです。

UnityのC#スクリプトからWinRT APIを呼び出すコードの例

 これを使うと、例えばWindowsストア アプリのライブタイル更新がUnity側から行えます。

Unity側からWindowsストア アプリのライブタイルに「bridge」という文字列を表示させた例

 また、Unity Player上にWindowsのUIを重ねて、その間で情報をやりとりするようなアプリケーションが作れます。WinRTとUnityの間で、双方向にブリッジできるのでmぜひ試してみてください。

WindowsのUI(左上)で入力した「ユニティちゃんはーと」という文字列がUnity Player上に表示された(右側)例

小テク【11】ロジック部分のC#スクリプトを単体テスト

質問 VSTUについて、ユニットテスト(単体テスト)に関するトピックがあれば聞かせてください。

大西氏 これはVisual Studioの基本機能ですが、プロジェクトテンプレートとしてC#の単体テストプロジェクトが用意されています。Unityのスクリプトについても、UIのないロジック部分のみであれば、そこにコードを記入して単体テストが行えます。

Unityのスクリプトから単体テストスクリプトを生成

小テク【12】UnityのC#スクリプトのクラス図を生成する

 テストに関連してですが、皆さんはUnityで開発するとき「クラス図」を書きますか?

 Visual Studioには「クラスダイアグラム」という機能があって、クラスビュー上でダイアグラムを書いたり、プログラムのクラス構成をビジュアルに確認したりすることができます。また、「コードマップの表示」を使うと、各クラスの参照状態を視覚的に把握できるので、試してみてはいかがでしょうか。

「クラスダイアグラム」でUnityのC#スクリプトのクラス図を生成

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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