今回はBlenderでアナログテレビ時代の砂嵐動画を作成していきたいと思います。
深夜の時間帯でテレビ放送終了後に流れるピーという信号確認の画面の後に「ザーーーーー」となるあれのことです。
このザーーーはスノーノイズという名前らしいです。
残念ながら今はデジタル信号になったので流れていない?と思いますが、ホラーゲームなどのエフェクトとして使用したい事もあるのでBlenderで作成してみます。
今回の機能を作成すると、
上のようなmp4形式の動画ファイルが作成出来ます(YouTubeに上げた動画はザラザラの部分がつぶれちゃってますが・・・・)。
作成出来た動画をUnityのVideoPlayer等を使って再生すればゲーム内に作ったテレビ画面にこのザーーーという映像を流すことが出来ますね。
Blenderでスノーノイズの作成
Blenderを起動したら最初からあるCubeは使わないので選択しXキーからDeleteを選択し削除します。
動画が流れる面を作成します。
Shift+AキーからMesh→Planeを選択します。
このPlaneがノイズを表示する場所になります。
次にPlaneを右クリックで選択したらプロパティのマテリアルを開きNewボタンを押してマテリアルの名前をSnowMatとします。
そのままマテリアル横のテクスチャを開きNewボタンを押して新しいテクスチャを作成しSnowNoiseTexとします。
TypeをNoiseにします。
さらにテクスチャの下の方でColorとNormalにチェックを入れ、デフォルトのテクスチャカラーを白色にします。
これで白黒のザラザラしたようなテクスチャが出来ました。
スノーノイズの静止画をレンダリング
試しに静止画をレンダリングして現在の状態を確認してみます。
まずはBlender起動時にデフォルトで配置されているカメラの位置と角度を調整しPlaneが写るようにします。
Cameraを右クリックで選択した状態でNキーを押してプロパティシェルフを表示しTransformのLocationのXYを0、Zを2にしRotationのXYZを0に変更します。
3D View上でF12キーを押して静止画のレンダリングをすると、
上のようなスノーノイズの静止画が表示されました。
Escキーを押して3D View画面に戻しておきます。
動画の作成
現時点ではザラザラの面が表示されるただの静止画なので、ここから動画を作成していきます。
まずは3D Viewの下の画面をTimelineに変更し、フレームのEndを240にし、現フレームを1に移動します。
現フレームが1の状態にしたままプロパティのテクスチャのOffsetのXYZが0であることを確認しOffsetの上でIキーを押してキーフレームを打ちます。
Offsetの部分が黄色い表示に変わりTimeline上の1フレームにキーフレームが打たれているのがわかります。
次にTimelineのフレームを240に移動させます。
プロパティのテクスチャのOffsetのXYZをそれぞれ1にした状態でOffset上でIキーを押してキーフレームを打ちます。
これでテクスチャのオフセット位置を1フレームから240フレームにかけて変わり、スノーノイズのようなアニメーションが出来上がります。
音声の追加
次に動画にザーっという音声を追加していきます。
音声の作成にはAudacityというソフトを使用させて頂きます。
ダウンロードしてソフトを起動したらメニューからジェネレーター→ノイズを選択します。
出てきたポップアップウインドウで音声の再生秒数を10秒にします。
出来たらメニューのFile→書き出し→WAVで書き出しを選択します。
ここではsnownoise.wavというファイル名で出力しました。
Blenderに戻ったらTimelineの横にVideo Sequence Editorウインドウを開きます。
まずはTimelineウインドウの右上の部分を押し左にドラッグします。
するとTimelineの横にTimelineウインドウが出来るのでウインドウをVideo Sequence Editorに変更します。
Timelineの1フレーム目にした状態でVideo Sequence EditorのメニューのAddからSoundを選択し、先ほど作成したsnownoise.wavファイルを選択します。
動画は240フレームでフレームレートを24fpsとしている為、動画は10秒間になります。
音声は先ほど10秒で作成したので動画の長さと同じになるはずです。
動画のレンダリング
動画が出来たので次はレンダリングしてMP4の動画ファイルを作成します。
Planeを右クリックで選択した状態でプロパティのレンダーを選択し、設定を変更します。
DimensionsのPresetでHDTV 1080pを選択します(適宜変更してください)。
プリセットを選択することでその下のResolution等の設定が用意されていたものに変わります。
特にPresetsを選択せず下の項目を自分で変えても大丈夫です。
さらに下の設定のOutputで動画を出力する先を設定します。
今回はsnownoiseという名前のファイル名にし、ファイルの拡張子は選択した動画の種類によって変わります。
下の出力ファイルの選択でFFmpeg videoを選択します。
Encodingのpresetsでh264 in MP4を選択します。
Audio codecをAACにします。
ここら辺の設定は詳しくないので、とりあえず設定しましたという感じです。
動画のEncodingで選択したものによってAudio codecで選択出来ないものもあります。
これで設定が出来たので後はAnimationボタンを押して動画を出力するだけです。
240フレーム分出力するので少し時間がかかります。
これでスノーノイズの動画が完成しました!
サンプルは記事の最初に表示したものになります。
終わりに
Unityでこのスノーノイズの動画を使用したいなぁと思って無料の動画を探したんですが利用規約がよくわからなかったり、有料だったりしたので自作するしかないと思って今回作成しました。
テクスチャで使っている色が白と黒だけなので他の色も加えるとよりリアルなスノーノイズが作成出来るかもしれません。
ただ今回出来た動画をUnityで使用してみたら動画をループさせることは出来るんですが動画の終わりから初めに移行する時にプツリと動画と音声が切れてうまく出来ませんでした。
色々試行錯誤してやってみましたがうまくいきません。
動画をループじゃなく1回だけ再生するようにすれば問題はないんですが、今回のようなものはループして利用することがある為そうもいきません。
一応の解決策としては動画は動画でVideoPlayerで再生し、音声は音声としてAudacityで作成したWAVファイルをそのままUnityに取り込んでAudioSourceでループ再生するようにすれば音が途切れず再生が出来ました。
音声の圧縮の問題なのか、MP4にしたのが問題なのかここら辺はよくわかりませんでした。