見出し画像

インタラクション・体験型アプリ開発に必要な知識まとめ

はじめに

インタラクションデザイナーのMIZUTANI KIRIN(@mizutanikirin)です!普段はKinectを中心にいろいろなセンサーを使ったインタラクションアプリ、体験型ゲームをデザイニウムで作っています。今回Unityでそれらのアプリを作成するときに開発で必要になる基本的な知識をまとめました。

デザイニウムでは様々なインタラクション・体験型アプリを作っており、その開発時のノウハウがこの記事の内容になります。アプリ一覧は「インタラクティブ開発  TheDesignium」「遊んで学んで」を御覧ください。

この記事の基本的内容をベースに作ったKirinUtilを使うと、さらに開発がしやすくなりますよ。

1. アプリ開発の基本

1.1. 複数人で開発するときは同じバーションのUnityを使うこと。
なるべくマイナー、ビルドバージョンまで合わせる。
例:2017.2.1f1だと1f1まで揃える。

1.2. 開発中はUnityのバージョンを変えないこと。
以前0.0.1の違いでアプリが動かなくなったときがあったため。1.1と同じくマイナー、ビルドバージョンまで合わせる。
変えないと開発できないなどの場合はバックアップを取ってから変える。

1.3. UnityをインストールするときはUnity Hubを使う。
Unity Editorのバージョン管理が便利。間違って違うバージョンでプロジェクトを開くミスをしなくなる。

1.4. Unityプロジェクトを他の人からもらったらArchitecture設定を見直す。
[Build Settings > Architecture]を見直す。設定が変わっているときがたまにあるため。基本的にx86_64にしておく。
よくある事例:x86に設定されていてKinectアプリ(exe)が動かない。

1.5. SampleSceneは使わない。
Unity Editorで新規プロジェクトを作るとAssets/Scenes/SampleSceneが自動的にできているがそれは使わない。リネームもしない。新しくシーンを作るかSampleSceneを別名保存する。誰かとファイルのやり取りをしたあとやAssetの導入時にSampleSceneが上書きされる場合があるため。リネームしただけでも上書きされる。

1.6. 定期的にバックアップは取っておく。
プロジェクト保存中にブルースクリーンになり、プロジェクトファイルが壊れることもあるし、HDDが壊れてデータがなくなることもある。

1.7. アプリの差分データを送るときはexeも入れておく。
開発者が設置場所に行かず、他の人が現地にアプリ更新しに行く場合の話。
アプリ更新する人がフォルダ構造をわかりやすくするためにアプリの差分データを送るときはexeも入れておく。
※UnityでBuildすると〇〇_Dataフォルダの中身が更新される。exeファイル自体はビルドしても更新されてないので本来は差分データとして送る必要ない。

1.8. 複数アプリを起動の際メインアプリを前面にくるようにする。
以下2つのいずれかの方法をとる。
(1) メインアプリに最前面になるようなプログラムを書く。 
(2) 複数アプリを起動させる場合batファイルを作ってWindowsスタートアップに入れる。
batファイルの書き方の例:この場合A.exeが起動した10秒後にB.exe(メインアプリ)が起動する。

start "" "E:\A.exe"
TIMEOUT /T 10
start "" "E:\B.exe"

1.9. 開発中は定期的にビルドしてアプリが動くかの確認はしておく。
Editorでの動作とexeでの動作は違うと思った方が良い。フレームレートがexeの方が早いしEditorに合わせるとダメなときもある。そもそもBuildができない場合もあるので納期直前に初めてBuildするようなことがないように注意する。

1.10. プロジェクトファイル内のフォルダ構造は以下のようにする。
デザイニウムでは以下のように統一しています。AssetStoreで購入したAssetを別フォルダに入れるとパスを変更しないといけないものもあるため購入したAssetはインポートした構造のままにしています。

Assets
 ├ [AssetStoreで購入したAssetなど]
 └ Project
  ├ Scenes
  ├ Prefabs
  ├ Scripts
  ├ Materials
  ├ Fonts
  └ Textures

1.11. コメントはなるべく書く。
一人で開発する場合でも以下の理由でコメントは書くようにする。
- 1年後に自分でアプリの更新する場合もある。
- 他の人にプロジェクトを引き継ぐこともある。
- プロジェクトファイルを納品することもある。

1.12. UnityでのコーディングはVisual Studioを使用する。
複数人で開発しているときに1人だけ別エディタで使っていると、ファイルやり取りするときにたまにインデントがおかしくなる問題が発生するときがあるため。

1.13. インデントは自動でつくとは思うが見にくいインデントにしない。
Visual Studio使っていれば問題ないかとは思うが念の為書いておく。

1.14. 複数人で開発するときはお互いデータをやり取りする接続部分の仕様を曖昧にしない。
事前にどういう形式でデータやりとりするかも決めておく。
完成したら(時間がないときは仕方ないが)なるべく簡単なのでいいのでマニュアル作ってコードを渡す。

1.15. 画像、動画、音は極力外部ファイルにしておく。
アプリ設置時にデザイン変えたいとか言われることが多い。設置後に画像変えたいと言われることもある。その度にいちいちBuildするのは面倒。画像、動画、音は外部ファイル化しておいて簡単に変えられるようにしておく。

1.16. アプリのフォルダ構造
通常Unityでは外部ファイルはStreamingAssetsフォルダに入れることが多いと思いますが、以下の理由でAppDataフォルダに入れること。

(1) exeの下に設定ファイルを置くとアプリ更新時に設定ファイルや画像など上書きされるリスクを回避するため。
(2) StreamingAssetsに置くとビルド時に毎回自分でファイルを置かないといけなくなるため。アプリ本体を更新時に設定ファイルが上書きされるリスクを回避できる。
(3) お客様が画像など少しでもわかりやすく変更できるため。

フォルダ構造は以下に統一する。

[PrejectName] ← 日本語以外のフォルダ名
 ├ App ← exeファイルなど
 ├ AppData ← 外部ファイルを入れる場所
 ├ Settings ← xmlなど設定ファイル
 └ Data
    ├ Images ← 画像ファイル
    ├ Movies ← 動画ファイル
    └ Sounds ← 音ファイル

1.17. 複数人で開発する場合にコードを誰かに渡すときの注意
ちゃんとデバッグしたあとで渡すこと。1、2回しかバグチェックしてないものを渡さない。
初めに決めた仕様と違う内容でファイルを渡すときはそのことを伝えること。何も言わずに渡さない。

1.18. アプリでカメラ映像を表示するときは基本的にミラー表示させる
そうしないとユーザが左右混乱する。例えばユーザが右手を上げているのに画面では左手が上がっているように見えるなど。

1.19. 外部ネットに接続しない状態でスマホからPCに画像を送る方法
Windowsの場合、PCにXAMPP ( https://www.apachefriends.org/jp/index.html )などでサーバを立ててPHP等で画像送信する。

1.20. 本番で使う紙が特殊な場合テストのときはなるべく普通のA4用紙を使う。
アプリの機能で印刷があるときに特殊な印刷紙に印刷する場合もったいないので普通のA4用紙を使う。
もちろん本番用の紙でも印刷されるかの確認は必要だが、印刷以外のデバッグをしているときに特殊な紙で印刷する必要性はない。

1.21. Kinect複数台連携
Kinectを複数台連携させる場合のデータ送信のノウハウを書いていきます。

- アバターを操作しないといけないときはK2ExamplesのデモにあるKinectSavarを使うと便利。ただしバグがあってメインマシンでカクついたりするので注意が必要。(2019/06現在)
- ボーンの位置を送るだけの場合OSCやUDPで送った方がいい。
 
基本的にKinectを直接接続するケースよりもFPSが低下するので、デモする際などは注意。

直接接続>>>遠隔1台>>遠隔2台

またFPSが低下する関係で、ジェスチャーの取得などが難しくなるケースがあるため、事前に検証しておく必要がある。ローカルネットワークに使用するLANケーブルはCat6以上で統一する。

2. アプリ設定の基本

2.1. アプリ起動時にUnityデフォのロゴを表示させない。
Player Settings ... > Splash Image > Splash ScreenShow Splash Screenをオフにする。オンにしたい場合はローディングなどの画像を用意して使う。

2.2. カーソルは消す。
アプリによるが基本的に消す。

2.3. ESCキーでアプリ終了できるようにする。
デザイニウムでは共通。Unity以外のアプリでもESCキーでアプリ終了できるようにする。

3. 解像度の基本

3.1. Configurationダイアログは基本的には非表示にする。
アプリ起動後に表示されるConfigurationダイアログは基本的には非表示にする。

Player Settings ... > Standalone Player Options > Display Resolution DialogはHidden By Defaultに設定する。

この設定だとexeファイルを実行時にダイアログが出ずにアプリがすぐに表示される。解像度の設定を変更したい場合はexeファイルを起動する瞬間にAltキーかCtrキーを押すとConfigurationダイアログが出る。

3.2. Screen.SetResolution()を書いて解像度を指定する。
たまにあるのがアプリ設置時に作業用の解像度の低い外部ディスプレイをつなげて作業する必要がある時がある。そういう場合に解像度のコードを書かずに本番のディスプレイに接続先を変えると外部ディスプレイの解像度でアプリが表示されることがある。

それを回避するためにScreen.SetResolution()を書く。設置したあとも業者が外部ディスプレイをつなげて作業することもある。
Screen.SetResolution()を書いておけばどの環境でも指定した解像度でアプリが表示される。その解像度はxmlに書いて設定できるようにしておくのが良い。

3.3. Supported Aspect Ratiosは本番用のディスプレイ解像度の比率にしておく。
現地で作業用ディスプレイで表示するときに違う比率で表示されてしまうのを防ぐため。比率が違ってくるとデバッグができなくなる場合がある。
Supported Aspect RatiosPlayer Settings ... > Standalone Player Options > Supported Aspect Ratiosにある。

3.4. ConfigurationダイアログのGraphics >Graphics qualityは基本的にUltraにしない。
場合によるがUltraだとかなり重くなるので基本的にはUltraより低いクオリティにする。Configurationダイアログは基本的に非表示設定させるので忘れがち。

3.5. マウスで操作できるようにしておく
例えばKinectアプリだとコード書くたびに立ってKinectの前に立ってプレイしてまたコード書くとしてると疲れるし、確認に時間がかかるのでなるべく時間がかからないようにしたアプリ開発を心がける。もちろん最終的にはKinectの前に立ってデバッグはしないといけない。

4. デバッグ/テストの基本

4.1. Unity Editor上でエラーがある状態で現地設置に行かない。
設置現場で環境の違いから謎エラー発生してアプリが動作しないときもたまにある。

そういうときは、結果的に原因が違ってもエラーがある状態だとまずそれを疑わないといけなくなる。なので現地で楽に設置したいなら事前にエラーが出ないように修正しておく。

4.2. ビルド後アプリでエラー内容が知りたい場合
4.2.1. KirinUtilのLog.csを使用する
KirinUtilのLog機能でアプリ内にログが表示できるようにする。アプリ起動ごとにLogファイルを残すこともできる。

4.2.2. Build Settings > Developments BuildをオンにするとEditor上に表示できる。 
[参考:【Unity】ビルドしたゲームのログをエディタに表示する - テラシュールブログ]

4.2.3. アプリ終了後にC:\Users\[UserName]\AppData\LocalLow\[Company Name]\[Product Name]\output_log.txtを見る。
output_log.txtで見れるのは直前に実行したもののみ。ログ保存する設定にしていると重くなる時があるのでその場合はコード中のDebug.Logの数を最小限のにするかログ保存をオフにする。問題があったときに対処できないので基本的にはオフにしない方がいい。とにかくログは残すこと。

4.3. デバッグの仕方
4.3.1. なるべく本番に近い環境を作ってテストする。
設置現場の大きさや設置機材の置く場所など。

4.3.2. デバッグチェック項目(基本)
1. [kinectの場合] 複数人対象の場合、複数人でプレイしても正常動作するか?
2. [kinectの場合] プレイヤの後ろに歩いている人がいても正常動作するか?
3. [kinectの場合] プレイヤの後ろに止まってる人がいても正常動作するか?
4. [kinectの場合] 途中でプレイヤがいなくなっても正常動作するか?
5. ボタンを2重押ししても問題ないか?
6. ボタンなどをずっとクリックし続けても問題ないか?
7. 耐久テストをしても正常動作するか?(※1)
8. メモリは増えていないか?(※2)
9. 一通りの流れを3回以上やっても正常動作するか?
10. 待機画面に戻っても問題ないか?
  
(※1) 本番機に近いスペックのマシン、またはスペックが低いマシンでチェックする。Kinectの場合はKinectStudio(KinectV2の場合)などで記録したデータを使って耐久テストすると良い。

(※2) メモリが増えていてもアプリ動作が重くなってなければ問題ないが極力メモリが増えないようにする。

4.4. アプリデータを送る際は起動できるかのチェックは必ずする。
お客様にアプリデータを送るとき少しの修正しただけでもこれをやる。起動したらテストモードだったとかよくある。焦っていると忘れがち。

4.5. メモリ増加のチェック、フレームレートが遅い場合の原因突き止めるときはProfilerを使用する。
ProfilerはEditorのWindow > Analysis > Profilerにある。

4.6. ランダム性のあるデバッグ
例えば機能の違うアバターが10種類あり、ユーザが使用するアバターがランダムで決まる仕様があったとする。

そういう仕様のアプリのデバッグするときにテストしたいアバターが出るまでアプリを起動するところから始めないといけない状態だと作業効率が悪いので画面上やxml上でデバッグ用に特定のアバターが選択できるようにしておく。

4.7. キーボードの矢印キーなどで画面遷移できるようにしておく。
これやってないとデバッグに時間がかかりすぎる。

4.8. ショートカットキーをまとめたメモを残しておいた方が良い。
デバッグでショートカットキーで操作できるようにしたとき、メモを残しているとなにかと便利。忘れた頃にバージョンアップがあっても思い出すのが早くなる。

5. 設定xmlの基本

外部ファイルから数値設定できるようにするため設定xmlファイルを作成しておく。コード内に数値変更する可能性がある定数を書いていると設置現場での作業効率が悪くなるため。

5.1. タグの前に誰が見てもわかるような説明を書く。
タグ1つのフォーマットは以下のようにしてなるべく簡素にわかりやすく書く。お客様がxmlの設定を変える場合もある。

<!-- 風船を飛ばす間隔 -->
<!-- 単位:秒 [float] -->
<waitBalloonTime>5</waitBalloonTime>

5.2. 設定xmlのファイル名にはsettingを入れる。
開発者以外がエクスプローラで検索してすぐに出てくるようにするため。
例:app_setting.xml

5.3. 設置後にタグが増える場合の対処
アプリ設置後の更新時にxmlの設定項目が増える場合は設置中のxmlに追加するのではなく別xmlを作成してそこにタグを追加する。
現地での設定xmlが上書きされないようにするため。現地でお客様が設定を変えている可能性もある。

5.4. Kinectを使う場合はxmlでkinectの反応エリアを指定できるようにしておく。
Kinectからの縦方向の距離、横方向の距離を指定する。

5.5. アプリ内設定画面について
アプリの画面を見ながら設定を変えられるようにした方がいい場合、以下のように設定画面を作って数値を変えられるようにする。

スクリーンショット 2020-04-13 17.11.38

6. 本番マシン設定の基本

本番マシン(Windows)の設定をやるときは以下の作業をやる。

(1) PCを初期状態から設定する場合は事前にユーザ名を決めておく。
 日本語にするとパスが通らなくなってアプリが動かなくなるものもあるため日本語名にしない。あとユーザ名にスペースも使わないようにする。
(2) Windowsアップデート切る。
(3) 時間が経ってもスクリーンセーバーが表示されないようにする。
(4) PCがスリープしないように設定する。
(5) 時間が経ってもディスプレイが消えないようにする。
(6) 電源ボタンでWindows終了できる設定
(7) Windowsタブレットの場合、画面端をスワイプするとメニューが表示されるのでそれができないようにする。このページのOption1をする。
(8) Unity Editorを入れた方が作業効率があがる場合入れておく。
(9) 本番マシンにインストールするSDKなどはまとめて用意して方が良い。時間が経ってから現地のバックアップマシンにSDK、ドライバーなどもろもろインストールすることがあるため。
(10) 複数台マシンを使って通信使用する場合はIPアドレス固定する。
(11) OSC、UDPを使用するときはマシンのIPは固定にする。
(12) 複数マシンでOSCなど通信する場合はファイアウォールで除外設定するかファイアウォール自体切る。
(13) ウィルス対策ソフトが入ってる場合はポートを開ける設定にするか。そのソフト自体をアンインストールする。

7. 設置の基本

7.1. 設置前にすること
7.1.1. 普段使っているマシンを設置現場で使わない場合

普段使っているマシンを設置現場で使わない場合、プロジェクトで使っているUnityバージョンを事前に現場で使うノートPCに入れておく。オフラインでプロジェクトが開けられるかの確認までやる。たまに現地でライセンス関係の問題でプロジェクトファイルが開けられない場合があるため。

普段使っているマシンの中にデータを忘れたなど最悪の場合のことを考えてTeamViewerなどで普段使っているマシンに入れておき、リモート接続できるようにしておく。

7.1.2. 現地に持っていくものを用意する
- ノートPC、ノートPCの電源、USBメモリ → 必須
- kinect → kinectアプリの場合は基本的に持っていく。
- 延長ケーブル → 持っていくと便利。コンセントが作業場所から遠かったり、差込口が1個しか開いてなかったりするため。
- 無線マウス、無線キーボード → マシンから離れて作業したり、現地にマウス、キーボードがなかったりする場合は持ってく。
- メジャー → なにかと必要。

7.2. 設置中にすること
マシンを起動するだけで自動的にアプリが起動する設定をする。
スタートメニューにアプリまたはbatファイルのショートカットを入れておく。現地でマシンの再起動テストもしておく。

7.3. 設置直後(帰る前)
現地で設置したあと最終的なアプリの場所などわかるようにして帰る。
最後帰るときは時間がないときが多いので忘れないようにする。

フォルダ構造がわかるようにしておけばいい。時間があるようなら本番マシンに入ってるアプリをそのままコピーすれば良い。時間がなければ写真撮ってフォルダ構造がわかるようにしておく。

ただし設定xmlは必ず持って帰ること。

最後帰るときはUSBメモリなどマシンにつけっぱなしだったり忘れがちなのでチェックする。

8. トラブルシューティング(全般)

8.1. TVモニターから音が出ない。
テレビ後ろのスイッチで内部スピーカーと外部スピーカーの切り替えできるものがある。

8.2. TVモニターを使用したときにWindowsがフルで表示されない。
次のサイトを参考にモニターの設定を変更する。
テレビとパソコンつなぐと画面のはみ出る端が切れるを直す方法2018

画像2

8.3. アプリの前に印刷ウィンドウが表示される
印刷されるときに以下のような印刷ウィンドウが表示されるときはプリンター設定で変更する。EPSONの場合は以下。

画像3

1. コントロール パネル\すべてのコントロール パネル項目\デバイスとプリンターで対象のプリンタを右クリックして印刷設定をクリックする。
2. ユーティリティタブをクリックする。
3. モニターの設定をクリックしてモニターを表示しないように設定する。

8.4. OSC、UDPを使用時にデータの送受信ができない場合の原因と対処
ほぼ以下が原因。
1. IPの指定が違っている。→ 正しいIPを指定する。(正しいIPはコマンドプロンプトでipconfigと入力すると取得できる。)
2. ポート番号の指定が違っている。→ 正しいポート番号を指定する。
3. セキュリティソフトがインストールされていて指定ポートがブロックされている。→ アンインストールするか指定ポートを許可する設定をする。
4. WindowsDefenderがのファイアウォールがONになっている。→例外にアプリを登録するか、すべてOFFにする。

9. トラブルシューティング(Kinect)

9.1. kinectが動いているのか確認したい場合
KinectV2の場合、SDK Browserアプリを使う。ボーンを確認するときはBody Basics-WPFを使う。
Azure Kinectの場合、Azure Kinect Viewerなどを使う。

9.2. RGB映像が乱れる。
電源関係のトラブル。ノートPCで動かしているとなりやすい。
ノートPCの電源とkinectの電源が同じタップから取得しているとなる場合が多い。ノートPCの電源をコンセントから抜くと治る。テスト時はそれでも良いが本番時は別タップから取るなどするしかない。

9.3. Kinect V2でSDK Browserアプリ使って確認してもボーンが表示されない。
USBの差込口を別のところに指す。
SDKをアンインストールして再インストールする。
延長ケーブルを使っている場合は延長ケーブルの電源をオン・オフ切り替えてみる。

9.4. Kinect V2を接続すると画面に「Kinectを接続しました」通知が繰り返し表示される。
電源関係のトラブル。ワット数が足りてない?? 対処は「SDK Browserアプリ使って確認してもボーンが表示されない。」と同じ。

9.5. Windows再起動だとアプリと共にKinectが起動するが、Windowsシャットダウン→電源ボタンONでの起動だとアプリは起動するけど、Kinectが光らずに正常に起動しない。
電源の設定で「高速スタートアップを有効にする」のチェックを外し、常に完全シャットダウンにしたら問題がなくなった。

9.6. batファイルでKinectアプリ2つを時間差で起動するとdllがスタートアップフォルダににコピーされて次回PC起動時にアプリが正常起動しない。
[Kinect v2 Examples with MS-SDK and Nuitrack SDK]を使っているとこういうことが起こる。

バックグラウンドに表示させるアプリをショートカット起動にしつつ、メインアプリ側をbatファイルで10秒後とかに表示させる。

9.7. KinectManagerはSceneが変わると動作しなくなることがある
[Kinect v2 Examples with MS-SDK and Nuitrack SDK]を使っているとこういうことが起こる。

シーンをまたぐときはKinectManagerを消す→空シーン1,2秒表示→KinectManagerのあるシーンにすると確実。もしくはシーン変更せずに同じシーン内でアプリを完結させる。

9.8. Kinect範囲から人が出入りしたときにアバターの表示位置がずれる
[Kinect v2 Examples with MS-SDK and Nuitrack SDK]を使っているとこういうことが起こる。

AvatarController.csのバグだと思われる。これ使う場合はモデルのスケールを1にするか、AvatarControllerのInspectorでMovePosを1にすると問題が起きなかった。

9.9. KinectDataClientの不具合1(Kinect v2 Examples with MS-SDK and Nuitrack SDK)
KinectDataClientを複数アタッチする場合、以下のような不具合が発生する。(2018/06現在)

(1) 各Clientのデータ受信時のフレームタイミングが異なるため、KinectManager内のデータが1→2→1→2...と相互に上書きされてしまい、ボーンデータが正常に取得できなくなる。
(2) KinectServerから送られてくる座標データは (ユーザー1のデータ),(ユーザー2のデータ),(ユーザー3のデータ),(ユーザー4のデータ),(ユーザー5のデータ),(ユーザー6のデータ) のようにインデックス順に送られてくるが、この順番が保たれている必要がある。
(3) ユーザーの最大人数は6人で、これ以上のデータをCSVに追加してもKinectManagerで処理されない。

以上の問題を対策したのがこちらで作成したKinectDataClientCombinerで、これをKinectManager、KinectDataClientと同じGameObjectにアタッチする。(デバッグがやりづらくなるなどの問題がまだあるので改良の余地あり)

KinectDataClientCombiner.cs (←デザイニウム社内でのみ公開しています。)

9.10. KinectDataClientの不具合2(Kinect v2 Examples with MS-SDK and Nuitrack SDK)
原因は不明だが、KinectDataClientを動作させ続けると、一定時間経過(10分前後)で全くデータを受信しない状態になってしまう。KinectServerの方は送信を続けているようなので、Client側の不具合?

KinectManagerを一旦Destroy → 再生成でとりあえず解決するが、単一のSceneで長時間動作させ続けるようなケースでは不具合の発生が避けられない可能性があるので要検討。場合によっては送信、受信部分についてはK2Sampleを使わずに独自実装の方がいいかも?

10. その他ノウハウ

10.1. 画面キャプチャ動画ソフトはOBS Studioが今の所一番いい。
いろいろ試してみたが他のだとKinectアプリだとキャプチャできなかったり、音が録音できなかったりするのが多い。
ダウンロード | Open Broadcaster Software

10.2. 動画の長さを変えたり、エンコードしたい場合は「Adobe Media Encoder」を使う。

10.3. 音源を大きくしたい場合や長さを変えたり、エンコードしたい場合は「Adobe Audition」を使う。
単なるエンコードだけならiTunesでもいいかも。

10.4. 透過の動画を使う場合はこちらを見る。
Unity - 透過動画を表示させる方法 | MIZUTANI KIRIN

10.5. プロジェクト始める前に設置状況を理解しておく。
プロジェクト開始時に設置状況が決まっていないこともあるだろうが、以下の内容は理解しておく。わからない場合は聞く。

(1) アプリは誰が使う?
(2) 対象人数は?
(3) オペレータがいるか?
(4) 設置場所の広さは?
(5) 後ろに人はいる状況?
(6) 本番マシンスペックは?
など

10.6. カメラで撮った顔写真をリアルタイムで3Dモデルに貼り付けるときの注意
モデルの顔部分は平面でやったほうが良い。後々大変になる。

11. よく使うUnity Asset

11.1. Alpha Masking
Unityのマスクは縁がギザギザになったりアルファマスクができなかったりなのでこれをよく使う。
Alpha Mask: UI, Sprites, Tilemaps, Particles, 3D

11.2. AVProVideo
透過の動画再生もできる。ただ動画再生終了判定にバグがあったりするので使うときは注意が必要。(2018/06現在)
AVPro Video

11.3. Camera Filter Pack
カメラ映像を現地の明るさで決めたいなど要望があるときに使う。明るさを変えたり様々な画像処理が負荷低く実装できる。
Camera Filter Pack

11.4. Kinect v2 Examples with MS-SDK and Nuitrack SDK
Kinect V2を使うときはこれを使う。直でコード書くより断然早くできる。ただところどころにバグがあるので注意が必要。
Kinect v2 Examples with MS-SDK and Nuitrack SDK

11.5. Azure Kinect Examples for Unity
Azure Kinectを使うときはこれを使う。(2020/04現在)
Azure Kinect Examples for Unity

編集後記

広報のマリコです!今回はMIZUTANIKIRIN による体験型アプリ制作の知識まとめ、ということで役立つ情報が盛りだくさんだったと思いますが、みなさまいかがでしたか?✨インタラクティブな体験型アプリが大好きな私としては、事前確認からデバッグそしてトラブルシューティングなど、体験型ならではの知識がたくさん必要なんだなと改めてインタラクションデザイナーの凄さを感じました❗今後、体験型アプリを楽しむときはデザイナーやエンジニアに感謝の気持ちを持って体験しちゃいそうです😊

The Designium.inc
Interactive website
遊んで学んで
Twitter
Facebook

この記事が気に入ったらサポートをしてみませんか?