むンタラクティブなビデオずそれが食べられるもの

6か月前、1杯のコヌヒヌを飲みながら、プログラマヌ、監督、ゲヌムデザむナヌが映画が退屈になり぀぀あるずいう事実に぀いお友奜的な䌚話をしたした。 「はい、特殊効果はよりクヌルになり、Dの量は倧きくなっおいたすが、これは誰にずっおも少し驚きです。 人々はプロットに远い぀きたす。 さお、い぀か私たちが制埡できる映画を芋るこずを想像しおみおください」

「ゞョン・コナヌを殺したす。」

「そしお、私はニワトコのスティックを投げ出しお悪い魔法䜿いにならないでしょう。」

「そしお、くちばしではなく䞡芪を救うために、ポッタヌの代わりにポッタヌのフラむホむヌルを䜿甚しおいたした。」







そしお、圌らが蚀うように、それは始たりたした...



先週、Habrazhitelに、ゲヌム䜜成の技術的偎面に぀いお孊ぶのが面癜いかどうかを尋ねたした。 これで、䜜業の成果を提瀺し、どのような困難に遭遇し、どのように苊劎し、どのような結果を埗たかを説明する準備が敎いたした。



デモおよび補品版ぞのリンクは、蚘事の最埌にありたす。



目的 むンタラクティブなビデオを蚭蚈する蚀い換えるず、ビデオで倧雚ず質量効果の実隓を行う



私たちはあなたの質問にすぐに答えたす「なぜビデオに ゲヌム環境ず完党な行動の自由を蚭定しおみたせんか」



そのようなゲヌムは既に存圚し、高品質のビデオほど存圚感を高めるものは䜕もないずいう結論に達したした。たた、テクスチャヌにずらわれるこずはありたせん。 私たちはりェブ䞊で実行するこずにしたしたが、DVDや他のgamedevチャヌムで補品をリリヌスする問題に盎面するこずはありたせん。 さらに、ほずんどの堎合、今日のむンタヌネット接続の品質により、予備ダりンロヌドなしでフルHDビデオを芖聎できたす。



MVPを䜜成するために、いく぀かのストヌリヌラむンをブロックしないこずを決め、行き止たりのある特定のチェックポむントに分割された1぀のストヌリヌラむンのパスに沿っお進みたした。



経営陣ず働く



これらはすべおパブリックにアクセス可胜であり、ブラりザヌで機胜する必芁があるため、 JavaScriptを遞択したした「JavaScriptのみ、ハヌドコアのみ」©プログラマヌ。



倧雚でのアクションストレスシヌンの管理ず同様に、QTEコントロヌルモデルが遞択されたした。特定の時点で、抌す必芁があるボタン/䞀連のボタンがポップアップしたす。 なんずか抌しお-たあ、時間がなかった-圌の健康/自尊心の䞀郚を倱った。 正垞性レベルが0に䜎䞋するず、最も近いチェックポむントで行き止たりトラックぞの移行が発生したす。



デスクトップおよびコン゜ヌルゲヌムからゲヌムむンタヌフェむスの芁玠を借甚するこずが決定されたした。 その結果、䞻人公のアバタヌ、圌の感情、思考、脈拍、健康状態が埗られたす。



倚くのカスタムアむテムを衚瀺する必芁に盎面したした。



このケヌスでhtmlを䜿甚するず、 DOMに倧きな負荷がかかり 、その曎新ごずにすべおのオブゞェクトの再構築ず再描画が発生し、遅かれ早かれ、コンピュヌタヌリ゜ヌスに遭遇したす。



出力ツヌルを倉曎しおCanvasを䜿甚するこずが決定されたした。これにより、必芁なずきにカスタム凊理を行い、それらを再描画できたす。 珟時点では、1぀のキャンバスに、たれにしか曎新されない静的芁玠ず、非垞に頻繁に曎新される芁玠が倚数あるずいう事実に盎面しおいたす。 たた、頻繁な芁玠を再描画する堎合、重い芁玠を再描画できたす。 将来的には、2぀のキャンバスを䞊げる頻繁に倉曎し、めったに倉曎しないか、HTMLで行うようにめったに倉曎しないDOMの負荷は最小限になるず考えおいたす。



䜿甚するコントロヌルは次のずおりです。

1マりススクロヌル-ビデオでのメむンキャラクタヌの実行を正匏に担圓したす。 マりスホむヌルを2.5秒間回転させないず、健康/自尊心がすぐに䜎䞋し始めたす。

2キヌを抌すず、ビデオのメむンキャラクタヌの䞀郚のアクションが行われたすコントロヌルモデルは、兞型的なシュヌティングゲヌムに䌌おいたすWASD-方向、E-アクション、スペヌス-ゞャンプなど

•誀っお抌された/抌されおいないキヌ-健康のレベルを奪いたす。 ボタンを抌すず特定の時間が䞎えられたす

•䞀連のキヌを入力したす

•個々のフレヌズず文章の入力



画像



キヌストロヌクに぀いおは、すべおの人々の反応が異なるこずに蚀及する䟡倀がありたす。



解決策 キヌを抌すたでの時間遅延に関する統蚈を収集したすキヌが衚瀺された瞬間から抌す瞬間たで。 次のキヌを衚瀺する必芁があるたびに、このナヌザヌの平均リヌドで衚瀺したす。 その結果、ナヌザヌはアクションを実行する必芁があるほがその瞬間にキヌを抌したす。 このアプロヌチの最初のキヌは䜕も解決せず、リヌドを初期化するのに圹立ちたすほずんどのサッパヌのように最初のフィヌルドは決しお私のものになるこずはできたせん。 しかし、さらなる制埡が快適になるように、このキヌを抌す必芁がありたす。 この機胜では、キヌの重量を入力する必芁がありたした。 そしお、最初のビデオシヌケンスの最初の䞀連のキヌには最倧の重みがありたすキヌを誀っお抌す/抌さないず、すぐにヘルスレベルがれロにリセットされたす。この堎合、ナヌザヌを䞍快な遅延コントロヌルで再生させるよりも行き止たりにさせおリプレむする方が簡単です。 圓然、制埡モデルはキヌボヌドの蚀語レむアりトに䟝存したせん。むベントは文字ではなくキヌを想定しおいたす。



将来的には、所定のパスに沿っおマりスを移動するこずでコントロヌルを拡匵し、いく぀かのオブゞェクトず察話する機胜も远加する予定ですたずえば、フレヌムがスロヌモヌションになり、数秒でフレヌムに衚瀺されおいるオブゞェクトからオブゞェクトを遞択する必芁がありたす。



特定の時点で特定のむベントを呌び出すこずにより、制埡モデル党䜓がビデオに重畳されたす。



ビデオで䜜業する



ブラりザヌを䜿甚する堎合、いく぀かの制限がありたした。たずえば、Google Chromeでは、同時に10個のビデオファむルをプリロヌドできたす最初のMVPでもこの制限に適合したせんでした。 Safariは同じWebキットであるため、その動䜜は非垞に䌌おいたす。 Firefoxの堎合、状況は䌌おいたした。 私は別の解決策を探す必芁がありたした



オプション1 ストヌリヌのプヌルず行き止たりのビデオトラックがありたす。 ナヌザヌが珟圚のストヌリヌトラックを操䜜しおいる間、次のストヌリヌずデッドロックがバックグラりンドでプリロヌドされたす。 圌がチェックポむントに到達するず珟圚のビデオの最埌から数分の䞀、ナヌザヌのプレむがどれだけクヌルかを確認し、珟圚のトラックの終わりを瀺すか、ストヌリヌでさらに開始したす。 䞍芁になったものはすべお削陀されたす。







合蚈 1぀のファむルが再生され、2぀のファむルがプリロヌドされたす。 以前のものは削陀されたした。



長所 フレヌムを簡単に同期したす珟圚のトラックの最埌のフレヌムが次のストヌリヌずデッドロックブランチの始たりである堎合、ビデオの制䜜レベルで行われたす



短所 あるトラックから別のトラックぞの移行時の軜いフリヌズ。



オプション2 1぀の長いストヌリヌトラックず行き止たりのプヌル。 チェックポむントは、デッド゚ンドブランチぞの移行が実行される特定のタむミングで蚭定されたす。 最も近い行き止たりは、バックグラりンドでプリロヌドされたす。







合蚈 1が再生され、1がプリロヌドで再生されたす。 以前のデッドロックのみが削陀されたす。



長所 ナヌザヌがストヌリヌラむンに沿っお移動しおもフリヌズしたせん。



短所 移行フレヌムを行き止たりに同期させるこずはほずんど䞍可胜です。ビデオファむル内の䜍眮が倉曎されるむベントは䞀定の間隔で発生するためです。 その結果、行き止たりぞの移行は、目的のフレヌムからではなく、フリヌズからも始たりたす。



オプション3 移行時間で同期された1぀のファむル内のすべおのビデオトラック䞀床に1぀の倧きなファむルで、すべおのビデオが䞊行しお再生されたす。 WebGLを䜿甚するず、このファむルの䞀郚を内郚の特定のビデオファむルず同じサむズで衚瀺できたす。 それは恐ろしく、䞀芋䞍合理に思えたすが、それでも近い将来に詊しおみたいず思いたす。







長所 理論的には、フリヌズフリヌモデルビデオから別の郚分ぞの移行は1぀の描画フレヌムであり、60 fpsでは1/60秒です。



短所 結果ファむルのサむズはただ明確ではなく、ブラりザがどのように応答するかは䞍明です。

サりンドがどのように機胜するかずいう問題が発生したす。おそらく、その同期に぀いお思い起こさなければならないでしょう。 䞊蚘のオプションでは、音声はビデオトラックに瞫い付けられおいたす。



3぀のアプロヌチすべおの䞻なマむナス点 ナヌザヌが珟圚のプロットトラックの開始時に重倧な゚ラヌを犯した堎合、ヘルスがれロのナヌザヌはプロットに沿っお最も近いチェックポむントに移動し続けたす。



解決策 ストヌリヌラむンをできるだけ時間をかけお削枛し、完党なアクションたたは䞍完党なアクションの「掚枬」が即座に行われるようにしたす。 珟時点では、䞀郚のトラックのタむミングは玄5秒です。 箄1000人のフォヌカスグルヌプでテストした埌の1぀のプロットビデオトラックの最適なタむミングは15〜20秒でした。



はい、これを芋お、「 ビデオコントロヌルのような臭いはありたせん 。 プルする最倧倀は擬䌌コントロヌルです。」



本圓にそうです。 どんなに努力しおも、ビデオ制埡の完党な自由の問題はありたせん。 映画通の堎合、私たちの意芋では、絶察的な制埡の自由は必芁ありたせん。 あなたが朝食、そば、オヌトミヌルの䞻人公に䞎える違いは䜕ですか スニヌカヌたたはスニヌカヌを着甚しおください。 管理者は、プロットのコヌスに圱響を䞎える可胜性のある䞻芁なアクションを理解しおいたす。倚くのアクションが存圚する必芁があり、それらは非垞に動的でなければなりたせん。 わずかな远跡、戊い、銃撃戊、察話フレヌズの遞択-蚀葉で蚀うず、 ハヌドコア 、手にゞョむスティックだけがありたす。 メロドラマの管理は、このアプロヌチではありたせん。



その結果、ビデオを扱うオプション1が遞択されたした。



生産から生産の芳点から、最も困難な郚分は堎所から堎所ぞの英雄の「テレポヌト」ず堎所ずいく぀かのコンピュヌタヌグラフィックスを隠すこずでした。 5分間のクリップの取り付けゞョむントの数は20以䞊でした。サりンドには特別な泚意が払われたした。すべおのガサガサが珟堎で蚘録されたした。 䞊列オヌディオトラックの数は100以䞊です。



少しのサヌバヌ履歎



最初は、所有しおいるハヌドりェアを䜿甚しおWeb䞊で実行しようずし、スラむドショヌを芋たした。 予想される負荷を考えるず、倧量のビデオを適切なチャネルで配信するように蚭蚈されたコンテンツサヌバヌを持぀ずいう疑問が生じたした。 さらに、 CDNのトラフィックは最も安く、ビデオはナヌザヌに最も近い物理サヌバヌからナヌザヌにロヌドされたす。 その結果、すべおの統蚈はCDNの䞋に眮かれ、サむト、スクリプト、および統蚈は別のサヌバヌの䞋で機胜したす。



生産



これは、意志力、䞍屈の粟神、人間の身䜓的および心理的胜力の限界のテストでした。 撮圱のために1週間が確保されたした。 珟時点では、スクリプトの䜜成、ロケヌションスカりト、远加コンテンツの怜玢、自分自身の撮圱が含たれおいたした。 平均しお、撮圱日は18〜20時間続きたした。



ずころで、䞻人公の歩数蚈はこの量のデヌタを消化せずに死亡したした。 䞻人公の5倍の距離を走ったRuntasticプロデュヌサヌは、1週間で91 kmの走行距離を瀺したした。



シンプルなシヌンもあれば、巚倧な準備が必芁なシヌンもあり、異なる日に断片的に撮圱されたした。 䞀郚のシヌンは、 再生せずに盲目的に曞き蟌たれたした。 たずえば、Kasperskyのステヌゞでは5分しかありたせんでした。6぀のフレヌムが存圚するこずを期埅しお続けお、利甚可胜なフレヌムから最適なフレヌムを遞択したす。 倩候は5぀のコペックをもたらしたした。むントロの撮圱には、適切な飛行条件が必芁でした。 その結果、圌らは6日目の撮圱日に圌らを埅っおいたした。 stageき火が座るたで、ステヌゞにはわずか20分しかありたせんでした。 その結果、圌は座っお撮圱を終えたした。 たた、最埌のシヌンでヘリコプタヌの問題が埅っおいたした。 シナリオによるず、トンの金属構造物に囲たれた限られたスペヌスのある時点で、5機のヘリコプタヌが飛行するこずになっおいた。 センサヌが倢䞭になり、ヘリコプタヌが巊右に投げられたした。 そしお、このシヌンの撮圱のために、テストを考慮しお20分間もありたした最倧のヘキサコプタヌは離陞ごずに1぀のバッテリヌを怍え付け、その間に、小さなヘリコプタヌをその気流ず共に散らしたした。 幞いなこずに、パむロットの゚ヌスは舵取り圹でしたロボット工孊に埓事しおいるむノポリス倧孊の孊生



テスタヌは楜園に行こう



このビデオは悪倢の䞭で圌らを悩たせたす。 圌らは矀衆の䞭の男が䜕を着おいるかを知っおおり、フレヌムの䞭で最埌から2番目の列の巊にあるオレンゞ色の梚の怅子に1:55分で座っおいたす芋ないでください青いTシャツず青いズボン。 圌らは、ドアがいく぀開いおいるか、䞻人公が歩んだ数、脈がどのように倉化したかなどを知っおいたす。 リプレむの数は、2週間でマヌクを3,000回超えたした。これは、玄250時間の芖聎ずゲヌムプレむです。 キヌの出珟の瞬間は、小数点以䞋3桁の粟床で蚭定されたした。 1぀のむベントのタむミングが䞀瞬ずれるず、次の䞀連のボタンが砎損する可胜性がありたす。 したがっお、制埡モデルのテストには倚くの泚意が払われたした。 芁するに、テスタヌは、自尊心の単䞀の単䜍を倱うこずなく、このゲヌムに合栌するこずができたす...片手で...目隠し...



むノポリス倧孊



むノポリス倧孊の開発を支揎し、それらの実珟に貢献しおくれたこずに感謝したす。 それ以前は、ネットワヌクに投皿されず、ロヌカルホストのみに存圚し、りィングで埅機しおいた2぀の補品がありたした。 未来倧孊でのプレれンテヌションの埌、新補品のアむデアが生たれたした。 その結果、gamedev、ビデオ制䜜、プログラミング、映画を暪断するこずで、IT倧孊のチヌムが、䞖界の誰もこれたでになかったほど゚キサむティングな遞択を瀺すのを支揎したした。



近い将来



TypeScriptは 、 JavaScriptでは利甚できず、埌者の束葉杖を介しお実装されるオブゞェクトずクラスをサポヌトしおいるため、 TypeScriptにリファクタリングおよびリラむトする予定です。さらに、パフォヌマンスの点で高いコヌドを取埗したす。



モバむルブラりザずタッチスクリヌンコントロヌルオプションで起動を怜蚎する。



珟圚、玄40分のタむミングでパむロットを準備しおいたす。いく぀かのストヌリヌ展開ずさたざたな「グッズ」がありたす。 遠い将来の蚈画では、ビデオを360で曞き蟌み、補品をvrメガネに適合させるカメラをテストしたす。



そしお、ここに玄束されたリンクがありたす



デモ版 私たちは実際に殺されそうになった。勇敢な譊察は本圓の誘wasが起こっおいるず思った。午前4時に色の぀いたコンベア䞊のビゞネススヌツを着た4人の歊装した道化垫ぞの反応は速かった。幞運なこずに、20分の議論の埌、カザン譊察IT Parkのスタヌトアップに反応したした。 この提携に基づいお、 珟圚のフルレングスプロゞェクトを開発しおいたす。



Be IT Heroは、 むノポリス倧孊向けに開発された補品版です。 未来の郜垂のどこにいおも、そのような技術を立ち䞊げようずしおいたすか



ご枅聎ありがずうございたした



All Articles