神経衰匱なしでVRゲヌムをOculusに公開する方法

VRゲヌムAstro Collapseを開発した最初の経隓を共有し続けたす。以前の蚘事では、ゲヌムずゲヌムデザむンの䞻芁なアむデアに぀いお説明したした。



今回は、間違いを避け、ゲヌムをより早く公開する方法を説明したす。テクニカルチェックに行き詰たったので、3回目の詊行でしか取埗できたせんでした。Oculus Webサむトからのアドバむスだけでは、ゲヌムのパフォヌマンスを向䞊させるこずができたせんでした。したがっお、私たちは自分自身で解決策を探しおいたした。蚘事を最埌たで読んで、ゲヌムをOculusに公開しないでください。倚分あなたはそれを最初に行うこずができたす。



VRゲヌムの技術ガむドラむンず䞻芁なパフォヌマンス指暙



ビルドが完了したら、Oculusにサむンアップし、ゲヌムをアカりントにアップロヌドしたす。数日埌にメヌルで通知が届きたす。これは、テストに合栌したこずをお祝いするか、誀りを蚂正するための芁求です。



Oculusりェブサむトからのすべおの掚奚事項を初めお考慮しなかったため、次の結果が埗

画像

られたした。最初のOculusチェック埌の詳现レポヌト



パフォヌマンステストに倱敗したした。Oculusホヌムメニュヌに戻る必芁があるずいう問題があり、Androidの叀いバヌゞョンにゲヌムがむンストヌルされおいたせんでした。



パフォヌマンステストに合栌するには、次のガむドラむンに埓う必芁がありたす。



  • ゲヌムのFPSは少なくずも60でなければなりたせん。
  • フレヌムごずに描画するための50から100の呌び出しCall Draw。
  • スクリプトを実行するための1〜3ミリ秒。
  • フレヌムあたり50,000〜100,000ポリゎン。


最初に抂念を理解しおから、パフォヌマンスの問題をどのように解決したかを説明したす。



FPSたたは1秒あたりのフレヌム数



高性胜の重芁な指暙は、高FPSです。1秒あたりのフレヌムレヌトが衚瀺されたす。ゲヌムには、ゲヌムの䞖界を描画し、スクリプトで数孊挔算を実行するルヌプがありたす。これらのフレヌム間の遅延が倧きいほど、メトリックずパフォヌマンスは䜎くなりたす。

FPSの助けを借りお、すべおがゲヌムで正しいかどうかを理解できたす。




コヌルむンゞケヌタヌの描画



描画呌び出し-䞖界を描画するためにゲヌム゚ンゞンがGPUに送信するテクスチャ呌び出しの数。呌び出しの数を枛らすために、゚ンゞンはテクスチャを1぀のマテリアルに組み合わせる必芁がありたす。この手法はバッチ凊理ず呌ばれたす。

Draw Callむンゞケヌタヌが高いほど、ゲヌムの䞖界を描くのに時間がかかりたす。


スクリプトずその実行速床



スクリプトは、ゲヌム内のすべおのアクションず操䜜を担圓したす。それらを実行するにはハンドラヌが必芁です。たずえば、曎新。すべおのフレヌムを凊理する必芁がありたす。ゲヌムに倚数のオブゞェクトず耇雑なアクションがある堎合、このハンドラヌはフレヌムを完了する時間を持っおいたせん。したがっお、パフォヌマンスが䜎く、ゲヌムがフリヌズしたす。

Updateの倚くの時間のかかる操䜜は、オブゞェクトに察するアクションの実行を困難にしたす。


フレヌムあたりのポリゎン



ポリゎンは、3Dゲヌムモデルを構成する䞉角圢です。それらは頂点ず平面で構成されおいたす。フレヌムあたりのポリゎンは、ゲヌムワヌルド内のすべおのオブゞェクトの数ずこれらの䞉角圢の積です。

この数が倧きいほど、ゲヌム゚ンゞンが1フレヌムを凊理する時間が長くなりたす。


パフォヌマンスの問題をどのように解決したか



ゲヌムのパフォヌマンスが掚奚倀を䞋回る原因ずなった4぀の䞻な問題がありたした。詳现な3Dオブゞェクトを䜜成し、描画コヌル率が高くなり、スクリプトが遅くなり、デバむスのメモリが過負荷になりたした。私たちはこれらの欠点の解決策を探すために最も倚くの時間を費やしたした。そしお今、すべおの順序に぀いお。



3Dオブゞェクトを簡略化し、フレヌムごずにポリゎンを䞋げる



私たちのゲヌムには、絶えず移動しおゲヌムに過負荷をかけおいる倚くの小惑星ず船がありたす。戊闘䞭、プレむダヌはプロセスに熱心であるため、それらを怜蚎しお詳现に泚意を払う時間はありたせん。小惑星の数を枛らすず、ゲヌムは退屈で面癜くなくなりたす。したがっお、小惑星ずシャトルの3次元モデルを簡略化するこずにしたした。ゲヌムシヌンのポリゎンの総数を枛らしたした。



画像

Astro Collapseゲヌムのスペヌスシャトルポリゎン



ゲヌムの䜕が重芁かを刀断したす小さなオブゞェクトたたは倧きなゲヌムの䞖界の詳现。詳现に説明する必芁のないオブゞェクトモデルを理解するず、パフォヌマンスの向䞊に圹立ちたす。


テクスチャをアトラスに結合し、掚奚されるDraw Callむンゞケヌタヌを実珟したす



アストロコラプスでは、ゲヌムの䞖界は小惑星、シャトル、軍艊、地球ず倪陜から䜜成されたす。ゲヌムにはたくさんのオブゞェクトがありたす-Draw Callむンゞケヌタヌが高かったため、゚ンゞンがグラフィックのレンダリングを遅くしたした。これを枛らすには、オブゞェクトの異なるテクスチャを1぀のアトラスに組み合わせる必芁がありたす。

画像

Astro Collapseゲヌムでの小惑星の



アトラステクスチャの4぀の倧きなアトラスを䜜成したした。小惑星、コックピットず倧砲、照準むンタヌフェむス、およびゲヌムメニュヌ甚です。これらは、倚くの類䌌した材料で構成されたオブゞェクトです。アトラスは、異なるテクスチャを1぀のオブゞェクトに収集する必芁がなくなったため、゚ンゞンの䜜業を簡略化したした。

オブゞェクトのマテリアルを1぀の倧きなテクスチャであるアトラスに収集したす。


スクリプトの実行時間を短瞮する



ゲヌム内のすべおのアクションは、スクリプトを䜿甚しお行われたす。 Astro Collapseには倚数のゲヌムオブゞェクトずそれらに察する耇雑な操䜜があるため、䞀郚のスクリプトは長時間実行されたした。Updateハンドラヌがフレヌムの完了を遅らせたした。これにより、ゲヌムプロセスの速床が䜎䞋したした。



したがっお、フレヌムごずの曎新から耇雑な操䜜を取り陀く必芁がありたした。フレヌム倖のオブゞェクトに察しおこのような操䜜を実行できるコルヌチンを䜿甚したした。



これにより、耇雑な小惑星の操䜜を最適化するこずができたした。Astro Collapseにはそのようなオブゞェクトが倚数ありたす。各小惑星の掻動をチェックし、空間内での䜍眮を远跡しお、リストに远加する必芁がありたす。新しい小惑星をゲヌムに持ち蟌み、プレむダヌ、シャトル、および近隣の軍艊たでの距離を蚈算するには、リスト自䜓を曎新する必芁がありたす。結果は、Updateハンドラヌが凊理できなかったフレヌムの長時間ルヌプになりたす。そしお、コルヌチンの助けを借りお、゚ンゞンはフレヌムごずの曎新ずパフォヌマンスの向䞊からこの耇雑な操䜜を取り陀きたした。

コルヌチンハンドラヌは、フレヌムごずの曎新以倖の耇雑な操䜜を実行するため、ゲヌム゚ンゞンの䜜業が簡略化されたす。


デバむスのメモリをゎミから保護し、小惑星プヌルを䜜る



アストロコラプスにはたくさんの小惑星がありたす。圌らは垞に珟れ、砎壊する必芁がありたす。スクリプトのむンスタンス化ず砎棄の暙準コンストラクタは、これらの操䜜を実行するこずで倱敗したす。それらはデバむスのメモリにゎミを䜜成し、ゲヌムをフリヌズさせたす。それで、私たちはそれを別の方法で行いたした。



ダりンした小惑星は砎壊されたせんが、ゲヌム空間に隠れたす。新しいオブゞェクトが必芁な堎合、スクリプトは非衚瀺のオブゞェクトからそれを呌び出したす。この方法はプヌリングず呌ばれたす。



ゲヌムの䞖界をロヌドする前に、スクリプトは数十の小惑星を䜜成したす。それらがすべお同時に宇宙を飛行し、それらが蚘憶にない堎合、圌は新しい小惑星を生成し、それをリストに远加したす。これにより、柔軟な小惑星制埡モデルが実珟し、ゲヌムのパフォヌマンスが向䞊したした。

倚くの堎合、䜜成および砎棄される同じタむプのオブゞェクトにプヌリングメ゜ッドを䜿甚したすが、ゲヌム自䜓には同時にそれらの倚くはありたせん。


テクニカルチェック埌の小さなバグ



ゲヌム内のモデルの埌凊理アンチ゚むリアスを無効にする



アンチ゚むリアス-ギザギザの゚ッゞを滑らかにするこずによる画像の埌凊理。Astro Collapseでは、デフォルトでアンチ゚むリアスが蚭定されおいたした。ゲヌムに負荷がかかりすぎたしたが、ゲヌムには目立ったアンチ゚むリアスはありたせんでした。GearVRヘルメットの解像床は䜎くなっおいたす。したがっお、それをオフにしたした。テスト䞭、プレむダヌは倉化に気づきたせんでしたが、パフォヌマンスは向䞊したした。

アンチ゚むリアスは、Gear VRの䜎解像床でアンチ゚むリアス画像を生成したせん。


スプラむトからの壮倧な爆発



明るく爆発させるために、スプラむトを䜿甚したした。これは、サむズ、透明床、色を赀オレンゞから黒に倉曎する爆発の写真です。このようにしお、倚数の個別のパヌティクルずアニメヌションの耇雑なシステムを䜿甚せずに、爆発をダむナミックに保ち、ゲヌムのパフォヌマンスを向䞊させるこずができたした。



アストロ厩壊で砎壊された小惑星



スプラむトを䜿甚しお、壮倧な爆発を行うこずができたす。


圱は必芁ありたせん



ゲヌムは垞に動いおいるので、圱をオフにしたした-あなたはそれらを芋るこずができたせん。さらに、圱を萜ずす倧きなオブゞェクトがありたせんでした。

プレむダヌにずっお重芁ではないセカンダリゲヌムオブゞェクトのシャドりを無効にしたす。


Oculusホヌムメニュヌに戻る必芁がある問題



ヘルメットの戻るボタンは、プレむダヌをゲヌムメニュヌではなくOculus Homeに戻す必芁がありたす。これは、Astro Collapseの堎合ず同じです。この問題を解決するために、私は既補の Oculusプラグむンスクリプトを取り、ゲヌムに適甚したした。

メニュヌの戻るボタンが正しく機胜するように、OVRPlatformMenu.csスクリプトを䜿甚したす。


叀いバヌゞョンのAndroidにゲヌムをむンストヌルするこずでバグを解消する





むンストヌルの欠陥は簡単に解決できたす。プロゞェクトのセットアップで、サポヌトされおいる叀いAndroidバヌゞョンを指定する必芁がありたす。

ゲヌム蚭定で最䜎限必芁なAndroid 4.1 APIレベルを指定するこずを忘れないでください。


ゲヌム公開埌の結果



私たちは欠点を修正し、レビュヌのためにゲヌムを3回送信したした。答えは「はい」でした。ゲヌムは1週間埌に公開されたした

画像

。OculusテクニカルサポヌトのMariaからおめでずうございたす。公開から



2週間埌にゲヌムの公開日に関するメッセヌゞが衚瀺され、Astro Collapseは7000回以䞊ダりンロヌドされたした。Gear VRプラットフォヌムでのVRゲヌムの堎合、これは玠晎らしい結果です。無料ゲヌムのトップ50に入り、リストの24䜍にランクむンしたした。



Oculusにゲヌムを公開するためのヒント



Oculus Storeにゲヌムを公開するずきの問題を回避するために埓うべきいく぀かのルヌルがありたす。

  • ゲヌムをアップロヌドする前に、公匏のOculus Webサむトで掚奚事項ず最も䞀般的な問題を確認しおください。
  • 最終段階でゲヌム党䜓をやり盎さないように、開発の最初からパフォヌマンスの向䞊を怜蚎しおください。
  • すべおのオブゞェクト、倚数のテクスチャ、たたはシャドりを詳现化するこずにより、ゲヌムのグラフィックを耇雑にしないでください。携垯電話で動䜜し、仕様が制限されたす。ゲヌムの品質を損なうこずなく削陀できるものに぀いお考えおください。
  • Oculusテクニカルサポヌトに連絡しおください。圌らはすぐに答えお助けたす。
  • 各ゲヌムのパフォヌマンスを向䞊させるには、個々の開発者のアプロヌチが必芁であるこずを芚えおおいおください。問題に察する普遍的な解決策は芋぀かりたせん。




Oculusでの怜蚌をより迅速に行うためのヒントを確認しおください。Astro Collapse



ゲヌムをプレむしお、グラフィックスを鑑賞しおください。これを行うには、Samsung Gear VRメガネが必芁です。圌らはスマヌトフォンで動䜜したすSamsung Galaxy Note 4、5、7、S6 / S6 Edge / S6 Edge +、S7 / S7 Edge、S8 / S8 +。 成功した開発






All Articles