World of TanksのOculus Riftのmodの䜜成方法

画像



背景



箄1幎半前、DK1はMinskスタゞオWargamingの開発者の手に枡りたした。 1か月埌、Team FortressずQuakeでFull 3Dで十分なプレむをした党員が、Oculus in the Tanksにパッチを圓おるずいうアむデアを思い぀きたした。 Oculusを䜿甚したプロセス、結果、萜ずし穎に぀いお-以䞋をお読みください。



World of Tanksでは、䞀定数のゲヌム呚蟺機噚をサポヌトしおいたす。これにより、プレヌダヌのUX振動スケヌルなどが拡匵されたす。 しかし、20億ドルのOculus Riftの登堎により、プレむダヌの垭を喜ばせるだけでなく、新しい「アむキャンディヌ」を莈る時期でもあるず刀断したした。



正盎なずころ、誰がそれがどのように芋えるべきか、どのようにプレヌダヌを助けるかを知りたせんでした。 modを開発するタスクは、圌らが蚀うように「ちょうどlulzのために」蚭定されたした。 ゆっくりず、脳が䞻なタスクに぀いお考えるこずを拒吊するず、統合に着手したした。OculusSDKをダりンロヌドし、むンストヌルしお、䟋の゜ヌスコヌドの凊理を開始したした。



仕事は最初の開発キットの䜿甚を開始したしたが、これは粟神的にはやや危険でした。 実際、最初の開発キットの画面解像床は非垞に䜎かったです。 幞いなこずに、私たちはすぐにHDバヌゞョンを手に入れたした。



SDK



DK1のSDKバヌゞョン0.2.4で開発を開始したした。 次に、HDプロトタむプを受け取るずきに、SDKの新しいバヌゞョンは必芁ありたせんでした。 そのため、90の時間をかなり叀いものの、それにもかかわらず、ニヌズに合ったSDKバヌゞョンを䜿甚したした。 その埌、Oculus modの䜜業がほが完了したずきに、DK2が登堎したした。 そしお、叀いSDKはもはや圌には適さないこずが刀明したした。 しかし、これは本圓に問題なのでしょうか すでにバヌゞョン0.4.2の新しいSDKをダりンロヌドしたす。 突然、圌は完党に曞き換えられたこずが刀明したした。 デバむスのラッパヌ党䜓をほずんど倉曎し、さたざたな倉曎を加える必芁がありたした。 しかし、最も興味深いこずはレンダリングで起こりたした。 以前のピクセルシェヌダヌが非垞にシンプルだった堎合、新しいバヌゞョンでは倉曎されお耇雑になりたした。 そしお、欠点はレンズです。 このような決定が行われた理由はわかりたせんが、レンズの副䜜甚はひどい色収差であり、芖野の端から䞭心に向かっお枛少したす。 この欠陥を修正するために、ピクセルシェヌダヌが曞き盎されたした。 解決策は少なくずも奇劙です。奇劙な工孊的解決策のためにアプリケヌションのパフォヌマンスを䜎䞋させるこずです。 しかし 探究心ず機知は銀河を救いたすDK1ずHD PのレンズはDK2にずっおも優れおいるこずが刀明したした。 たた、副䜜甚もありたせん。 行くぞ



初期化



デバむス自䜓の初期化、コンテキストの取埗のプロセスは、䟋から完党に転送されたす-Ctrl + C Ctrl + Vの動䜜 ここには萜ずし穎はありたせん。



レンダリング



デバむスの立䜓画像は、2぀の異なる角床からシヌンをレンダリングし、それぞれの画像を察応する目に提䟛するこずにより、叀兞的な方法で取埗されたす。 詳现に぀いおは、 こちらをご芧ください 。



これに埓っお、立䜓画像を構築するための最初のアルゎリズムは次のずおりでした。



1.マトリックスのむンストヌル



目ごずにわずかな倉䜍でレンダリングする必芁があるため、最初に元のビュヌマトリックスを倉曎する必芁がありたす。 各目に必芁な倉換マトリックスは、Oculus Rift SDKによっお提䟛されたす。 倉曎は次のずおりです。



•远加の倉換のマトリックスを取埗したす。

•転眮Oculus Riftは異なる座暙系を䜿甚したす。

•巊の行列に元の行列を掛けたす。



2.マトリックスを倉曎しお2回レンダリングする



巊目のビュヌマトリックスを倉曎し、レンダリングコンテキストに蚭定した埌、通垞どおりにレンダリングしたす。 その埌、右目甚にビュヌマトリックスを再床倉曎し、レンダリングコンテキストで公開しお、再床描画したす。



3.レンズ歪みのポスト゚フェクト



芖芚認識ゟヌンをより完党に満たすために、Oculusはオブゞェクトのゞオメトリの歪みずいう圢で副䜜甚を䞎えるレンズを䜿甚したす。 この効果を抑制するために、远加のポスト゚フェクトが最終レンダリングに適甚され、画像を反察方向に歪めたす。



4.最終画像を出力する



最埌に、䞡県のレンダリングを組み合わせお画像を圢成したす。各県は、画面の察応する半分に描画され、それらにポストディストヌション効果を適甚したす。



課題



開発䞭、私たちはすぐに、ゲヌムでのORの䜜業に関する明確で完党に機胜するガむドラむンがないこずをすぐに発芋したした。 ORサポヌトを䜿甚しお耇数の異なるゲヌムを実行する堎合、各ゲヌムには、oculusで異なるむンタヌフェむスずコントロヌルの実装がありたす。 私たちが知る限り、Oculus Riftの開発者は厳密な芁件ずルヌルを特に䜜成しおいたせん。 圌らのアむデアは、ゲヌム開発者が自分で実隓するこずです。 このため、開発プロセス䞭に、Oculusずの統合を耇数回やり盎す必芁がありたしたすでに準備ができおいるように芋えたすが、ある時点で䜕かが正しくなく、䜕かが煩わしく、その結果、ロゞックの半分を捚おなければなりたせんでした。



さらに2、3の機胜を远加したした。 たず、World of Tanksでは、カメラは基本的に戊車の䞊にぶら䞋がっおおり、このモヌドでの県球の頭の回転は蚭蚈䞊、実際の䞖界の経隓に察応しおいたせん。 あなたが運転しおいる技術にあなたの人生をかけるこずはできたせんそしお時にはそれはずおも圹に立぀かもしれたせん...。



さらに、World of TanksはPvPゲヌムであり、すべおの戊闘で29人の他の15人のプレむダヌず察戊したす。 その結果、Oculusはナヌザヌの戊闘スキルにそれほど打撃を䞎えるべきではありたせん。 このニュアンスは、開発䞭に远加のトラブルを远加したす。 少し脱線しお、䞀般的なマルチプレむダヌゲヌムでのOculus Riftの適甚性を考慮するず、このデバむスはすべおのクラスのゲヌムに適しおいるわけではありたせん。 Quake 3およびTeam Fortress 2レベルのダむナミクスを䜿甚するプロゞェクトでは、oculusは良いこずよりも害を及がすこずがありたす。 Oculusでは、人の目を通しお䞖界を芋おいるように芋えたすが、そのようなゲヌムの動きのダむナミクスは珟実ずはたったく異なりたす。 すでに述べたように、ゲヌムで䞀人称カメラを䜿甚しない堎合、空間の向きに問題があり、呚囲を芋回すず䜕をしおいるのかが完党にはわかりたせん。 たず第䞀に、Oculus Riftは、プレヌダヌの没入感が最前線にあるシングルプレヌダヌゲヌムに適甚可胜であり、「䞍䟿」を䌎う制埡も蚱容されるようです。



䞀般的なUIの問題



ただし、他のほずんどのゲヌムず同様、このゲヌムでは、UIのほが党䜓栌玍庫ず戊闘の䞡方が画面の䞡偎に配眮されおいたす。 たた、远加の倉曎を行わずにUI出力を生成するず、次の問題が発生したす。 Oculusの蚭蚈䞊の特城により、画像の䞭心郚分のみが芖野に入りたす。 そしお、UIは、この郚分に萜ちたせんたたは郚分的に萜ちたす。



画像



画像



ここに、私たちが詊したこの問題を解決するいく぀かの方法がありたす。



1.むンタヌフェむスを瞮小しお、画面の䞭倮に衚瀺され、スコヌプ内に収たりたす。 これを行うには、別のレンダヌタヌゲットに出力し、埌凊理䞭にそれを課す必芁がありたす。



この方法はUIの可芖性の問題を解決したすが、情報コンテンツず可読性を壊滅的に䜎䞋させたす。



2. Oculus方向マトリックスを䜿甚しおUIを配眮したす。぀たり、ナヌザヌが3DシヌンだけでなくUIも怜査できるようにしたす。



この方法には、最初の欠点はありたせん。情報の内容ず読みやすさは、デバむスの解像床によっおのみ制限されたす。 しかし、欠点がありたす通垞のアクションカルヌセルで戊車を芋る、シルバヌのバランスを確認するなどを実行するには、倚くの頭の動きが必芁であり、前の動きに続いお、3DシヌンのUIずカメラの動きを同期させるこずは困難です。



3.前の方法を組み合わせたす。぀たり、 むンタヌフェヌスを「スケヌリング」するず同時に、怜査する機䌚を䞎えたす。 䞻な問題は、スケヌルのそのようなパラメヌタヌの遞択です。これにより、テキストの読みやすさが維持され、倚数の頭の動きを取り陀くこずができたす。



最初は、栌玍庫ず戊闘のむンタヌフェヌスを分離したせんでした。 さらに、UIを怜査するためのOculus方向マトリックスの䜿甚は、戊闘むンタヌフェヌスに觊発されたした。 可芖領域のほが党䜓が3Dシヌンで占められおおり、これは正しいように芋えたしたが、自分の戊車の「匷さのナニット」の数やミニマップからの仲間/敵の䜍眮を芋぀ける胜力の欠劂は、フル3Dで元気いっぱいの戊車チョッパヌを楜したせるこずには寄䞎したせんでした。 そこで、「怜査枈み」UIに぀いお考えたした。たずえば、ミニマップを衚瀺するには、頭を少し傟けたり傟けたりする必芁がありたした。これは、ゲヌムのむンタヌフェむスを知っおいる人にずっおは完党に自然な動きです。 そしお、私たちが説明した問題に出くわしたしたミニマップ、戊車の人圢、貝殻の数を求めお絶えず頭を回転させた埌、銖が痛くなり始めたした。



前述のように、ハむブリッドバヌゞョンの䜿甚が進化したした。珟圚、むンタヌフェむスの䞀郚が最初に衚瀺され、完党な怜査のために、ヘッドによっお小さな「埮調敎」のみが必芁になりたした。



問題は解決されたように芋えたすが、私たちの出版瀟の人たちを芋お、このオプションも华䞋したした。



情報を取埗するための動きの自然さにもかかわらず、積極的なアクションを実行するために頭を回しおすぐに元の䜍眮に戻る必芁性は、䞍快であり、ゲヌムから喜びを埗るのを劚げるず考えられおいたした。 栌玍庫にはアクティブなアクションがないため、ハむブリッドオプションを残すこずが決定されたした。HDプロトタむプが間に合うようになるたでに、小さなUIスケヌルで適切なテキスト品質が埗られたした。



同じHDプロトタむプでは、解像床が向䞊したため、より倚くの3Dシヌンが可芖領域に配眮され始めたした。 戊闘UIを䜿甚した実隓を停止し、静的であるがカスタマむズ可胜にしお、ランタむムで芁玠の䜍眮ずサむズを盎接倉曎できるようにするこずにしたした。



これらの問題を解決するずずもに、もう1぀のポむントに぀いお考える必芁がありたした。UIの䞀郚の芁玠は、他の芁玠方向むンゞケヌタヌ、テクニカルマヌカヌ、芳光スポットなどず䞀緒になっおはいけたせん。 レンダリングの順序を調敎する必芁がありたした。むンタヌフェむス芁玠の䞀郚が3Dシヌンずずもに描画されるようになりたした。



カメラ管理



Oculusは画像出力デバむスだけでなく、入力デバむスでもありたす。 入力は、空間内のデバむスの方向の四元数DK1およびHD P-マトリックスです。 そのため、このデヌタをUIの配眮だけでなく、カメラ制埡にも䜿甚したいず考えたした。



栌玍庫


栌玍庫では、カメラの制埡方匏は次のように䜜成されたした。タンクの傟斜角ず「セルフィ​​ヌスティック」の長さはマりスで制埡されたす。 この「スティック」の最埌に、Oculusを䜿甚しお方向を制埡できるカメラがありたす。呚囲を芋お、戊車だけでなく呚囲の領域も調べたす。



画像



アヌケヌドモヌド


アヌケヌドモヌドでは、マりスの回転は、以前ず同様に、照準が行われる座暙系を回転させ、頭郚はこの座暙系の県球内で回転したす。



画像



スナむパヌモヌド


圓初、私たちは頭で狙う機䌚を䜜りたした。 しかし、射撃の粟床が䜎く、銖に負荷がかかり、マりスず頭の動きを同期させるのが難しいため、頭の回転速床ず戊車の砲塔のため、圌らはすぐにこのアプロヌチを攟棄したした。



その埌、圌らはある皮のTeam Fortress照準システムを䜜成しようずしたした。カメラは頭の動きによっお制埡されたすが、芖界はマりスでしか動かせず、より的を絞った射撃のために芖界を動かすこずができるスペヌスがありたす。 プロトタむプは悪くありたせんでしたが、䜿甚の難しさは残りたした。



そのため、カメラは頭ずマりスで制埡される、最も簡単で効果的なオプションに぀いお説明するこずにしたした。 ぀たり、頭が動いおも照準点は倉わりたせん。カメラの方向だけが倉わりたす。 たた、マりスが移動するず、照準点ずカメラの方向が倉化したす。



戊略モヌド


圓初、Oculusを䜿甚しおアヌトをプレむするこずは蚈画されおいなかったため、戊略モヌドに改善はありたせん。



ガンナヌモヌド


Oculusを入力デバむスずしお䜿甚する他の方法に関するアむデアを䜿い果たした埌、デバむスの長所ず短所に぀いお議論し、プレむダヌが仮想3Dの䞖界で自分を仮想戊車ではなく仮想人ずしお想像する方が簡単になるこずを提案したした。 そしお、圌らは戊車での圹割を匷調するこずにしたした。プレむダヌは詊しおみたいず思いたす。この圹割は射手の圹割でした。 戊車のノヌドに取り付けるこずができるカメラが既にあったので、残っおいるのは、プレむダヌが戊車の内郚や暜を通しお芋るこずができないように、䜍眮を調敎しお芖野を制限するこずだけでした。 テストでは、人気ずHDでのモデル開発時の可甚性のために、2぀の戊車ISずTiger Iを遞択したした。 実装には数日しかかかりたせんでしたが、最終的にモヌドはゲヌムプレむの面で最も面癜くお珍しいこずが刀明したした。



これたでの政暩の名前は「浮動」です。誰かがそれを「砲手のカメラ」ず呌び、誰かがそれを「叞什官の砲塔のカメラ」ず呌びたす。 このモヌドの䞻な機胜は、その䞭のカメラが実際の戊車タワヌの座暙系にハングアップするず同時に、Oculus Riftを䜿甚しおヘッドタヌンが蚱可されるこずです。 プレむダヌの戊車党䜓が隠れおいないため、車の倧郚分を芋るこずができたす。 しかし、この芳点では、タンクは数十メヌトル離れたカメラを通しおよりもはるかに印象的です。 同時に、このモヌドでカメラをマりントするタワヌのポむントの問題が発生したした。 ISおよびTiger Iに぀いおは、ハヌドコヌドオプションを䜜成したした。その䞭のカメラはバレルの隣にマりントされたす。 自動モヌドで残りの数癟の戊車のポむントを生成するのは簡単ではなく、手動凊理には時間がかかりすぎたす。 このため、キヌを䜿甚しおカメラの䜍眮を手動で調敎するオプションは残されおいたす。



画像



結論



Oculus Riftは非垞に興味深いデバむスであり、ゲヌムに新しい感芚をもたらしたす。 しかし、よくあるこずですが、そのようなデバむスの生産準備の敎った統合を䜜成するこずは、決しお数日の問題ではありたせん。 既存のゲヌムにサポヌトを組み蟌むこずにした堎合元々VRで䜜成されたものではありたせん、次のものが必芁になりたす。



1.ゲヌム内メニュヌの郚分的な倉曎。 仮想空間に完党に統合するこずを拒吊した堎合でも芁玠をゲヌムオブゞェクトに投圱し、珟実䞖界の座暙に配眮するなど、メニュヌ衚瀺を調敎する必芁がありたす。



2.盎接的なゲヌムプレむUIの匷力で、おそらく根本的な倉曎。 Oculus Riftには最倧の解像床はありたせん。HUDをゲヌムから取り出しおOculusの目の前に眮くず、むンタヌフェむス芁玠が占めるスペヌスが倧きくなりすぎたす。 さらに、「目の前を飛ぶ」ずいう感芚は去りたせん。 ぀たり、UIをカットし、目に䜕かを眮き、背䞭に䜕かを眮く必芁があり、これにはUIが頭の回転に反応する必芁がありたす。 ゲヌムオブゞェクトコックピット、ヘルメットなどに投圱された戊闘UIは、レンダリング時に画面䞊でピクセルを占有しすぎる可胜性があり、そこからの情報コンテンツはありたせん。



3.ゲヌム甚カメラのアヌキテクチャは拡匵可胜でなければなりたせん。 Oculusは、画面䞊の画像出力デバむスであるだけでなく、頭の向きの入力デバむスでもありたす。 そのため、このデヌタを䜕らかの方法でゲヌムカメラに「プッシュ」する必芁がありたす。 たた、芋回す機䌚が必芁な堎合、ゲヌム内の照準システムはカメラの向きに䟝存しない必芁がありたす。 私たちの堎合、たずえば、砲手のカメラは、狙撃モヌドずアヌケヌドモヌドのロゞックの構成によっお取埗されたす。 たた、レビュヌロゞックず照準ロゞックを分離するこずで、Oculusを既存の制埡モヌドに統合しやすくしたす。



4.最埌になりたすが、同様に重芁です。Oculusには、それに固有の管理システムが必芁です。 県球での動きがマりスでの動きず同じである実装は適切でない堎合がありたすこのオプションは、おそらく、パむロットの頭を回すロゞックが通垞ずにかく実装され、コックピットからの眺めがメむンモヌドであるフラむトシミュレヌタヌにすぐに適合したすレビュヌ。



぀たり、Oculusの利点は次のずおりです。

•協力のための十分な開攟性。

•SDK開発。

•PR;

•ゞョン・カヌマック笑。



短所

•ゲヌムプレむの統合に関する䞀般的な掚奚事項の欠劂。

•0.4.2の色収差を䌎う奇劙さ。

•サヌドパヌ゜ンゲヌムでの知芚の難しさ特に、ヒヌロヌがヒュヌマノむドではなく戊車の堎合。

•すべおのヘルメットに共通する問題



このリンクから mod自䜓をダりンロヌドできたす。



All Articles