Drone Space Defense開発チームがシリコンバレーでのDrone Space Defenseデモ後解散したので今後からは僕がゲーム開発に携わっていきます!
 |
Drone Space Defenese プロトタイプ |
 |
ドローンのリアルタイム3Dマッピング |
 |
パソコンからのA.R. Drone PS3テレオペレーション |
Drone Space Defenseでは今までDrone Space Defenseのプロトタイプ(ゲーム)の開発、ドローンの画像追跡、リアルタイム3Dマッピング、nodejsを使ったwebsocketサーバーの実装、ドローンをPS3で操作できるようにしたり、クラウド構築、ドローンシミュレータの設定をしていました!
ゲーム製作を本格的に始めてそろそろ12日目です!
現在Unityというゲームエンジンで開発を進めています。
 |
Unityボールゲームチュートリアル |
 |
Unityサバイバルゲームチュートリアル |
 |
Unityサバイバルゲームをブラウザにビルド |
5日間はunityのチュートリアルのビデオ2本、ネットのC#で書くUnity入門とC#の並列プログラミング、非同期プログラミング技法の学習をしていました。
6日目はOculus Rift DK2がWindows10で認識されないためwindows8.1のダウングレードを行っていました。
 |
画像処理を使った拡張現実のアセット |
 |
C#のOpenCvSharpで画像処理 |
 |
Virtual Realityとwebカメラと地形データの統合 |
 |
Drone Space Defense Oculus Rift バージョンのモックアップ |
7日目にVRゲーム開発に取り組みました!12時間でunityのアセット調査、C#/Unityでの画像処理の調査・実験、12時間でDrone Space Defense Oculus対応のモックを完成させました。
 |
Unreal Engine Oculus祭りで最新モックとプロトタイプの展示 |
8日目の午後はG-tune&AMD OcuFes2015夏に参加して他の開発者のVRアプリを楽しみ、夜はUnreal Engine主催のOculus祭り2015でDrone Space DefenseのOculus対応モックとDrone Space Defenseプロトタイプ2Dモニターバージョンの展示を行いました!
 |
leap motion届く。 |
 |
ゲームセット |
 |
VR Planetarium |
9日目にはLeap Motionが届きました!Leap Motionは手をコンピュータの世界にもっていくことのできるVirtual Realityのデバイスです。Leap Motion + Oculus Riftのアプリケーションを色々動かしてみました。Leap Motionで広がるDrone Space Defenseの可能性を感じました。
 |
UnityちゃんとJapanese Otaku CityとVR |
10-12日目はUnreal Engine Oculus 祭り2015で指摘されたOculus酔いを解消しようとUnityとVRの最適化に取り組みました。Oculus酔いを解消するにはFPSの早さが関係するそうです。今回のモックはオブジェクトが3,4個くらいしかなかったので簡単な最適化を行ったところ75FPS以上出て問題解決なのですが、一般的なVRの最適化技術を習得しようとポリゴン数が多いUnityちゃん、Pocket QueryちゃんとJapanese Otaku City Assetを使ったものでVRのFPSを上げることに取り組みました。Oculus Riftの推奨FPSは75FPSで酔いを軽減するために必要です。
1. ビルドの最適化オプションをすべて適用したら、20FPS前後出た。
2. 光、空の焼きこみ、static/dynamic batching, forward light renderingを適用したがFPSが変わっていない。
 |
Japanese Otaku CityのOcculusion Culling |
3. Japanese Otaku City AssetのOcculusion Cullingをしたが重すぎてRAMメモリエラーになったので別のAssetに変更。
4. Occulusion Cullingをしたが、FPSに変化なし。
5.UnityのTarget.FrameRateを75にしたが、変化なし。
 |
Profilerで解析 |
6. Unity ProfilerとUnity Frame Debuggerで解析を行ったところ、drawcall数が1000以上でshadow renderに最も時間とdrawcallが使われていることが判明(800 drawcallくらい)
7. Lightingのauto設定をすべて解除しすべてマニュアルでlightmapをビルドしたところ、drawcallが500-600減少。
 |
bakeしたunityちゃんとpocket queryちゃん |
8. 次の最大のオーバーヘッドはキャラクターのskin mesh rendering. (drawcall が400) mesh bakerを使いすべてのオブジェクト群のskin mesh renderingのdrawcallを10以下に。
 |
快適FPS. |
9. CPUは余裕の75FPS越え。GPUも50FPSくらい出るように。現在最大のオーバーヘッドがopaque.forward rendering(10ms)でOculus酔いの問題はOculus DK2の画面のブレだけに。これはOculus Tracking Cameraをつけるとブレが解消できる。 syncの時間はprofilerを閉じるとなくなるので実際は問題ない。
 |
なぜかDraw Callが900. |
10.Japanese Otaku City Assetに変更しJapanese Otaku City bake後Occulusion Cullingに成功。すべてのオブジェクトをbakeしたがなぜかDraw Callが900もある。原因はJapanese Otaku Cityのポリゴン数が多くDynamic Batchingをしてしまったため。これを解決するにはCuda Coreのより多いGPUかpolygon数の減少が必要。polygon数を減少させるには外部の3Dモデリングソフトを使用する必要がある。コンピュータグラフィクスを勉強中。
 |
unity in android |
AndroidのUnityプロジェクトにも現在挑戦中です!
0 件のコメント:
コメントを投稿