私たちは意識を高めるゲームを開発しています。
問題は、ユーザーが運転を完了した後に間違いを犯した場合に、ユーザーにビデオを表示する必要があることです。たとえば、彼が 2 つのミスを犯した場合、ゲームの最後に 2 つのビデオを表示する必要があります。
これを手伝ってもらえますか。わかりません。
私たちは意識を高めるゲームを開発しています。
問題は、ユーザーが運転を完了した後に間違いを犯した場合に、ユーザーにビデオを表示する必要があることです。たとえば、彼が 2 つのミスを犯した場合、ゲームの最後に 2 つのビデオを表示する必要があります。
これを手伝ってもらえますか。わかりません。
「アプリケーションから(事前登録された)ビデオを再生する方法」については、@solus からすでに回答がありました。ただし、私が理解していることから、プレイヤーが実行した「間違った」アクションの一種のリプレイを保存 (および視覚化) することについて質問しています。これは簡単な作業ではありません。また、すべてを網羅した回答は得られないと思いますが、いくつかのアドバイスをいただければ幸いです。私はあなたに私自身のものを与えようとします。
まず、プレイヤーの車の位置をさまざまな期間で「キャプチャ」する必要があります。例として、プレーヤーの車の位置を 0.2 秒ごとに読み取り、それを構造体 (例: リスト) に保存できます。
次に、 「間違った」アクション(クラッシュ、スピード違反...明らかにゲームによって異なります)を検出するためのロジックを実装し、ペアへの参照を保存します["mistake", "車の位置を含むリストの関連部分そのイベント」]。
これで、アクションのリプレイを再作成するために必要なものがすべて揃いました。つまり、以前に保存した位置 (ルートを生成するためのウェイポイントとして機能します) を読み取ることによって、車を「一人で運転」します。
明らかに、カメラの位置と回転も処理する必要があります。(通常の「ゲーム内」アクションとして) カメラを車に取り付けたままにするか、AAA レーシング ゲームのように、より興味深い角度を捉えるために時間内にカメラを変更します。 (もちろん、これにより全体的なタスクがより難しくなります)。
Unity はビデオをMovieTexture
. ネイティブの Theora/Vorbis (Ogg) 形式に変換されます。(インポートに失敗した場合はffmpeg2theoraを使用してください。)
他のテクスチャと同じように適用するだけです。平面または平らな立方体を使用できます。localScale
ビデオの縦横比に合わせて調整する必要があります ( movie.width/(float)movie.height
)。
添付されたオーディオクリップを に入れAudioSource
ます。次に、 と を呼び出しmovie.Play()
ますaudio.Play()
。
ビデオをローカル ファイル パスまたは Web から (正しい形式で) ロードすることもできます。
var movie = new WWW(@"file://C:\videos\myvideo.ogv").movie;
...
if(movie.isReadyToPlay)
{
renderer.material.mainTexture = movie;
audio.clip = movie.audioClip;
movie.Play();
audio.clip.Play();
}
MovieTexture を使用しますが、QuickTime をインストールすることを忘れないでください。これは、ムービー クリップ(.mov ファイルなど) をインポートするために必要です。