『WING IT!!!』MV解説


これは何
- 2025/04/02にTHE LUV BUGSよりリリースされた楽曲『WING IT!!!』のMVを制作した
- この記事では、Renardが担当する部分について解説する (主にUnity部分)
担当
- キャラクターモデリング:O.G.I.
- モデリング、一部映像(遊園地の爆破)、破壊アニメーション:kinankomoti
- Houdini/Blender
それ以外:Renard
- Unity HDRP/After Effects
私とkinankomotiはいろいろ話し合いながら制作した
- キャラクターモデルに関しては、O.G.I.さんが同レーベルの他のMVで使用したモデルを使わせて頂いた
MV全体の構成
- 大きく分けて「遊園地」「宇宙」「コンクリート」の3つのパートで構成されている



- 全体を通して、歌詞は3D空間に出現するようになっている

構想

- 作業は全てfigjam上で行った
- 歌詞を読み合って解釈をし、方向性を統一
- 役割のざっくりとした分担 (というよりは技術スタックによる制限に近いが)
- kinankomoti : Houdini/Blender (モデリング、シミュレーション系)
- Renard : Unity HDRP/After Effects (それ以外全て 基本はUnityでレンダリング)
- リファレンスを集めながら、やってみたい表現を羅列
- 曲を大きな3つのセクションに分け、それぞれに対しシーンを定める
- さらに分割した小セクションで細かい演出を割り当て
モデルを仮置きし、絵コンテ的なものを添える(絵が描けないので)
ある程度固まって取り掛かかった後は、TODOの洗い出し -> TODOの消化のイテレーション
- TODOは依存関係が深いものから優先付け (例えば、文字のモデルが無いと歌詞が配置できないので優先度は高い、など)
Unityのタイムライン構成

- Unity Recorder
- サウンド
- 音
- 歌詞データ制御
- 1拍、1小節のclipを大量に生やしてスナップするやつ
- カメラ制御
- 切り替えはCinemachine、パラーメータをAnimationで制御
- キャラクター制御
- 位置をParentConstraint、表情や動きはAnimation
- ライト制御
- 色やon/off (Activation Track)
- オブジェクト制御
- Animationでメリーゴーランドやゴーカートなどを動かしたり、on/offを切り替えたり
歌詞のシステム

- MusicXMLが貰えたので、C#でパーサーを作り、UnityのTimelineのTrackとして実装した
- 歌詞と時間の情報をjsonで書き出し、kinankomotiはhoudiniを使って文字のsoftbodyシミュレーションをvellumで回し、ペラペラ文字を膨らませる
- fbxで文字を書き出す際に、tangentに膨らんだあとの座標を書き込み、歌詞の出現時の時間をuvに書き込む

- Unity側ではTimelineの時間をシェーダーに渡し、文字の膨らむアニメーションは全てシェーダー
- 一気に膨らんで、空に飛んでいくような動きを実装
- 後は配置だけすれば勝手に歌詞が出現していく仕組み
- 文字の色については、干渉薄膜をベースとしてシェーダーを書いた
- https://github.com/kinakomoti-321/TFI_LUTCreator
カメラ制御
歌詞駆動制御

- 歌詞を映す画角の際は、歌詞の位置に合わせて自動で決まるようにした
- Cinemachine Target Groupをベースに、現在発音中の歌詞と直近の幾つかを自動的にGroupにする(重み付けは時間に対するカーブ)
- Groupにすると、Transformが回転と位置の重心になり、Cinemachine Followで勝手に歌詞を正面に捉えて追従できる
- またCinemachine Group Framingによって、歌詞をどの程度絵に含めるか制御
- 幾つかのフレーズでGroupを区切って、カメラの遷移を自然に (「安直な」「ストーリーで」「横転」みたいな、歌詞の区切りは重みづけを残さず切る的な)
Cinemachineの活用

- 歌詞が無い時はSplineDollyやOrbitalFollow、キャラクターに対してFollow(Lock To Target)など
- パラメータはAnimationで制御
- Dampingや、Recomposer、Camera Offset、Rotation Composerで調整
- Tilt、Pan、Dutch、DollyZoomなどもできる
- 手振れ感(?)はBasic Multi Channel Perlinで実現できる
キャラクターアニメーション
- タイムライン上で、位置、表情、瞬き、リップシンクを制御
- Very Animationでキャラの動きをつける

レンダリング
- RayTracingの設定(Volume)を2つ、レンダリング用のmaxのやつと、editor上で確認する用のraymarchingとか使った安いやつを用意
- Unityには一応PathTracingもあるが、使い物にならなかったので使わなかった
- UnityRecorderはパストレ用のAccumulationの設定があるが、色々うまくいかない
- DOFはCinemachine Auto Focusで、ピントが合う感じができる

- MotionBlur、Tonemapping、Bloomなど軽くポスプロを入れ、あとはAEに任せる
- 録画はUnityRecorderで、ProRes 4444 XQにすると一番画質が良い (より良くする場合、1フレ1フレ撮ってロスレスで書き出し、後で合成するのがよろしいと思う)
グリッチ

- 色々なコーデックでdatabendingを行い、良いやつを組み合わせて合成
- Datamoshはffglitchやそのforkなどで行った
- AEのDatamoshプラグイン(有料)はffglitchのラッパーなので嫌で買わなかったが、後になって思うと、買った方が簡単だよね 嫌なんだけどね
- NTSC風データ損失エフェクトはNTSC-rsを使用

コンポジット(AE)
- コンポジットって何?
- Deep Glow、Magic Bulletとか色々かけた
- 色については何も分かんないので勘で

- このパチンコみたいなロゴはがっつりエフェクトで作った 元のレンダリングはHoudini(kinankomoti)
- Unity Timelineの使い方が悪いのか、カメラ切り替えのタイミングで1フレームおかしくなることがあり(キャラだけ残るとか)、それをごまかすため色々やった
