Unityを使えば、簡単にCG映像を制作することができます。
おそらく、ゲームを作るよりも直感的に。
(Unityがユーザビリティを日々開発改善してくれているおかげ^^)
ご存じの通り、Unityの機能である「TimeLine」というツールを使えば、
映像制作を快適に作れるのです。
最近、私も映像を作っていて思ったのが、
TimeLineで、よきタイミングで背景を変化させられないかなぁ~、ということ。
というのも、TimeLineでは、
Hierarchyにあるもの(オブジェクトやカメラなど)しか制御できないからです。
背景をころころ切り替えられれば、ストーリーの演出がもたせやすくなりますね。
別のSceneを生成して作ればよいかもしれませんが、
音楽に合わせて作る場合、別々にSceneがあるより、1つに収まるほうが、作成や修正がしやすいのです。
(もちろん、長編で複雑化するようなら、分けたほうが良い)
そこで、いじっていると、
TimeLineでなんとか変化させる方法がわかったので、シェアします!
本記事で紹介する方法は、
SkyBoxでなく、オブジェクトで背景を作って変化させるものです。
目標はこんな感じ↓
通常の背景(青空)は使わず、Sphereの中に入れて制御します。
動画は、時間が経つと、
Cubeが表示され、さらに背景(SphereのShader)が変わる、という流れ。
せっかくなので、
TimeLineの簡単な導入に触れつつ、説明していきます。
1.TimeLineを導入しよう
図のように、Scene上にTimeLineを作ります。
Project内に、”右クリック_Create_Timeline”からTimeLineファイル(Testとします)を作成し、Hierarchyにドラッグ&ドロップします。
すると、
TimeLine機能のコンポーネントがアタッチされた、空のオブジェクトが生成します。
TimeLineはトラックベースで組み立てていくので、
音楽や動画編集をしたことのある人ならば、すぐ馴染めるものとなってます^^
2.Activation Trackを使おう
本題の背景を変える方法は、TimeLineの「Activation Track」を使います。
これは、対象のオブジェクトの表示・非表示を制御するものです。
例として、Cubeを、あるタイミングで表示するようにしてみましょう。
まず、Trackを追加して、Cubeをドラッグ&ドロップ。
トラックをあるところに配置して、再生ボタンを押すと確認できます。
こんな感じであるタイミングで、ある背景オブジェクトを非表示に、もう一方の背景オブジェクトを表示に切り替える戦法で攻めていきます。
3.オブジェクトで背景を作ろう
まず、使用する背景データは、無料アセット「Skybox Series Free」を使用します。
通常であれば、
その中にあるファイル(ShaderシェイプがCubeのもの)を、Sceneの背景のところにドラッグ&ドロップすれば、背景の設定は完了です・・が、
TimeLineで別の背景に変えるならば、オブジェクトで背景を作る必要があります。
その作り方を紹介します。
①3DオブジェクトのSphereをSceneに生成します。
Scaleをx,y,z=100にします。
(すべてのオブジェクトを飲み込む必要があるので、適宜調整)
②SphereにはMaterialがついていますが、無視して、
新しく自分でMaterialを作り、アタッチします(置き換わります)。
※ここ何気にポイントです
次に、背景となるファイルをMaterialにするための設定です。
①アタッチしたMaterialのShaderをSkyboxのCubemapに変更します。
②Cubemap(HDR)形式のファイルを選択します。
こうすることで、オブジェクトに背景のデザインが投影されるだけでなく、
Sphereの内側にもデザインが反映されるのです!
なので、
Sphere内にいるCube(プレイヤーとする)にとっての背景は、
Sphereのデザインになるのです。
4.TimeLineで背景を変化させよう
オブジェクトが背景の役割するようにできたところで、
TimeLineから、オブジェクトの表示・非表示によって、背景を変化させていきます。
前項の設定より、夕焼けの空をSphereのShaderにしました。
①Activation Trackを追加して、Sphereをドラッグ&ドロップします。
そして、イイ感じのところにトラックを移動させます。
これでそのトラックのある期間は、Sphereが出現します。
しかし、このままでは、Gameビューに背景は青空のままで夕空になりません。
②MainCameraの「Clear Flag」を「Solid Color」にします。
(Skyboxになっている限り、背景は青空になります)
これで再生してみると、
TimeLine通り、途中でCubeが表示され、背景が夕空になるはずです。
しかし、前半はSolidColorの色(私は紺色)になっちゃってるはずです。
なので、同様の操作で、もう1つオブジェクトで背景を作ります。
このとき、複製せず、いちから作るようにしましょう。
結局、Materialを新しく作らないといけませんので^^;
ちなみに、今回の肝は、オブジェクトの内側に画像を投影させることです。
そのために、Cubemapという形式を変更したのです。
ただ、すべての背景データのCubemapがアセットには入ってなかったと思います。
この場合、自分でCubemapデータを作ればよいのですが、その方法はまた後日紹介するかも・・。
Cubemap以外にも方法はあるようですが、より簡単な方法がみつかったら、また紹介したいと思います。
それでは!