hibitの技術系メモ

数学とか3Dとか翻訳とか

Nuclear Compilationができるまで

 Beat Saber Advent Calendar 2020の5日目の記事です。

概要

 先日、有志のイベントで、以下のような動画を投稿した。

www.youtube.com

 要は、ある音ゲーの有名譜面をメドレー形式の譜面にして、それをあたかもフルコンしたかのような動画を作成した。使用させていただいた譜面は以下の通り。

Song Title Song Author Mapper
Nuclear Star Camellia hexagonial
Quaver djTAKA hexagonial
Marianne Yooh Redmagi
Acid Burst memme iraky
G1ll35 d3 R415 Team Grimoire hexagonial
Chrom Vox (Uncut Edition) t+pazolite souk
Big Daddy USAO nuketime
Revolution Lapix cortex
Possessed By The Blood Moon Reek de125
Overkill RIOT nuketime
Freedom Dive xi roffle

 私以外に同様の作業をできる人(≒わざわざやろうとする人)はいないとは思うが、以下に作業の要領を述べる。

編曲

f:id:hibit_at:20201204153046p:plain

 まずは音源をメドレー形式にするところからである。音源編集にはLogic Pro Xを用いた。

 bpmは終盤を除き、199に統一した。メドレー中で使われるNuclear Starという楽曲のbpmである199に合わせた。

 各音源から美味しいところを切り出し、DJ気分でつなげていく。

 異なるテンポの曲を同じテンポに統一するにはスマートテンポが便利である。曲のつなぎ目はボリュームを調節してフェードインさせたり、イコライザで帯域分けを活用した。電子音楽(というか音ゲー曲)の特性上、ぶつ切りのカットイン編集にしても違和感はそんなになかったので、その点は編集が楽だった。

 音ズレに関してはかなり気をつける必要があって、スマートテンポの補正がうまくいかずにどうしてもリズムがずれてしまう場合もある。更に言うと、曲全体を通して常にメトロノームと厳密に合わせる必要があって、これは地味に面倒くさい。

作譜

f:id:hibit_at:20201204180524p:plain

 音源ができたので、これをマッピングしてノーツ(ゲーム上の音符)を載せていく。

 今回使用した楽曲は、すでに他の人がマッピングしたものを流用させていただくので、そういった意味では特に手間はない。ただ、一つ一つ丁寧に見ながら手動でコピーしていては、マッピングの勉強にはなるかもしれないが、日が暮れてしまう。効率化する必要がある。

 譜面データはjsonで管理されているので、以下のPythonスクリプトを用いて対象譜面のコピーしたい部分だけをメドレー譜面に持っていく。

 コピペ完了した後でも

  • コピペミスがないか
  • 微妙な音ズレがないか

 を常に気にする必要がある。スマートテンポを使った場合は確実にどこかで微妙な音ズレが発生する可能性があり、最終的にはマッパー上でミリ秒単位の調整を要した。

 が、実は一回アップロードした後で音ズレを指摘されるという一幕があった(申し訳ない)。音ゲープレイヤーは音ズレに非常に敏感なのだ。お前は敏感じゃないんかい……と言われそうだが、10分近い譜面を何回もプレーしていと、さすがに感覚が麻痺していって見落としも出てくる。譜面のテストプレイは必須だが、長時間の譜面ではかなり神経を消耗する作業になる。再アップロードは悪ではないが、避けられるならなるべく避けたいものである。

動画作成

1.オーバーレイ

f:id:hibit_at:20201204180719p:plain

 疑似フルコン動画を撮るにあたってまず必要となるのはオーバーレイをフルコンっぽくすることである。

 当然ながら10分近い動画でフルコンを達成する不可能である。そもそも私の技量ではクリアさえ不可能だが、理論接続できれば頑張ってフルコンしようという問題ではない。長期スパンの動画制作で重要なのは、何よりもまず神経の消耗を防ぐことである。要は同じような絵面さえ取れれば手段は何でもいいのだから、ズルをさせてもらった。

f:id:hibit_at:20201204175606p:plain

 以下のPythonスクリプトを組んで、ノーツをすべて同じ位置のドットノーツにした。これで、適当に剣を振り回しているだけでフルコンのオーバーレイが作成できる。オーバーレイだけグリーンバックで撮影して、後で動画に後付する。

2.ノーツ&セイバー動画

f:id:hibit_at:20201204180113p:plain

 次に、フルコンしてるっぽいノーツ&セイバーの動画を撮影する。アバターは映さなくてもいい。

 先程も述べた通り私の実力ではクリア不可能なので何かしらごまかす必要があるが、今度はノーツの種類を変える訳にはいけない。ということで、時間を遅くして撮影する。通常、低速で撮った動画を倍速編集するとそれとわかる不自然さが出るものだが(機敏過ぎる動きをしている)、等速のアバター画像を別撮りすることにより、その不自然さをある程度は隠せる。

 低速再生を行う手段は、ゲーム自体に搭載さているPRACTICE MODEでは50%が限界だが、なるるるるな🍥🌙 (@nalulululuna) | Twitterさんが使ったMODを個人的に分けていただいて、任意の速度でゲームをプレイできるようにした。実際の撮影では、基本的には1/4倍速、それでもフルコンが厳しいところは1/8倍速で撮影している。

 後はひたすらゲームをプレイするだけだ。スローモーションの世界の中で集中を保つのはけっこう忍耐力が要る。また、いくら低速にしていてもフルコンがつらい箇所は存在する。フルコンで数十秒ぐらいまとまった所を撮れたら次、それが終わったら次、という感じで、尺取虫が進むようにツギハギで編集していく。かなり地道だが、ここで調子に乗って数分まとめて撮ろうとすると沼って神経を消耗するのでやめた方がいい。適度にスローに、そして小分けにすればするほど、遠回りのようで結果的には近道になる。一般的には、動画をツギハギしたら不自然になってしまうが、ノーツ&セイバー動画では、ノーツの位置は一切変わらない&セイバーの位置もそこまで大きくは変わらないおかげで、ツギハギ編集しても違和感はほとんどない。

3.アバター動画

f:id:hibit_at:20201204180221p:plain

 いよいよアバター動画だ。既に作成した動画に後乗せする用の、アバターだけの動画を撮っていく。

booth.pm

 アバターにはこの3Dモデルを用いた。後述するが、このアバター選びも重要である。

 アバターのオーバーレイには、既にこの世界では超定番となっているVirtualMotionCaptureを用いる。

 今回は、アバターの絵を上乗せするだけなので、LIVVMCAvatarといった、ゲーム中のオブジェクトとアバターの位置関係を反映させるような仕組みは必要ない。反面、アバターは常に手前にしか表示されないので、例えばノーツを手前に持ってくるような視点は不可能だ。もしそれがやりたい場合は、倍速編集を諦めて別撮りするか、もしくは手間が増えるが、

  1. 背景
  2. アバター
  3. グリーンバックでノーツ&セイバー

 というレイヤー構造で素材を用意する必要があるだろう。今回はさすがに見送った。

 後乗せのアバターがどのような動きをしても、ここまで来たらフルコン自体は揺るぎない。が、アバターの手とセイバーの位置があまりにもズレていたらで合成が一発で分かるので台無しである。あくまでアバターの手はセイバーを追従して、それっぽい絵面を保たなければならない。普通の二刀モードならばここは超大変、というか実質不可能なのだが、ここでキモになるのはこのゲーム特有のダースモールというモードである。

f:id:hibit_at:20201204180350p:plain

 スターウォーズの某キャラみたいに柄から両方向に伸びたセイバーでノーツを斬るモードだが、このモードだと両セイバーの中心が体の中心に寄りやすく、大体の配置は(理論的には)中央でグルグルしているだけで取れるという特性がある。この特性を利用して、

  • セイバーを録る時は、両手&スローモードでしっかり狙いをつけて、後で倍速編集
  • アバターを録る時は、片手を前に出して高速回転しているように見せかける

 ことにより、あたかもアバター片手ダスモで超人的な処理をしているような絵作りをしている。これはダースモールだからこそできるテクである。もちろん、ノーツの配置によってはどうしてもセイバーの中心が体の手前からずれてしまうので、その時は仕方ないのでアバターの方もそのつもりで手を動かす。これはある程度配置を覚えたり、違和感のない動きが出るまでリテイクを続けるしかない。

 すでに録画したセイバーに合わせるのはかなり難しいが、実はここでも楽をする手段がある。要は手元が見えなければ見えないほど細かい部分をごまかせるので、頭と服が大きいアバターはごまかしやすい。

f:id:hibit_at:20201203213003p:plain (手が頭で隠れるのでごまかしやすい)

 手元が見えるような細身のアバターだと、必要な撮影時間は軽く数倍になると思われる。

 アバターの動画は、ノーツ&セイバーのそれと違ってツギハギ編集できない。テレポートしたみたいになって、一発でバレる。そのため、一定間隔でトランジション(シーンの移り変わり)を設定して編集点を設けている。トランジション間はリアルタイムで腕と体を動かさないといけないので、動画作成で一番肉体を酷使するところかもしれない。

編集

f:id:hibit_at:20201204180848p:plain

 素材が集まれば、後は編集していい感じにするだけである。今回はAVIUtlを用いた。

まとめ

 技術の力があれば、人間は肉体の不可能を超越できる(ただし限界もある)!