第1回 VTuberハッカソン(バーチャルYouTuberハッカソン)参加してきたwrite up

概要

2018/2/24-25 で開催された VTuberハッカソンで当日結成した「肉1.5倍」という6人チームに参加してきました。得られた知見とか考えていたこととかを書きます。

peatix.com

作った動画はこちら

www.youtube.com

(で、出来れば暇を見つけてもう少しアップデートしたい!) → 一週間後の03/03でアップデートしました。

チームメンバーにも恵まれ、充実した二日間の開発を経て動画を出して、 アユート賞とCGCG賞と玉置P賞を頂くことが出来ました。嬉しいです!

チームビルディング+企画

結構事前にチームを作ったり一人でやると覚悟を決めていたりした人が多い感じでした。 僕は何も考えてなかったので当日結成のチームです。

企画案は 暁ゆ~き さん 暁ゆ~き@C94 3日目 西ね04b (@AkatsukiWorks) | Twitter が考えたパルクール系YouTuberです。
この企画は以下の3点で技術的にチャレンジングでしたが、まあ暁ゆ~きさん(スゴウデ)とナカジさん(スゴウデ)が同じチームだったし、ナントカなるやろ…って感じでいきました。

チャレンジングな点は

  • 当日ゼロベースのキャラモデリング
  • 広いエリアを使った動画(つまりモーキャプ流し込みでは無理)
  • 360動画出力

です。ハッカソンの勢いじゃなければマジで工数を頂きたい…w

企画のコンセプトアートを暁ゆ~きさんが書いて、 f:id:izm_11:20180225235025p:plain それに併せてYouTube出力時のサムネイメージをナカジさんが作って f:id:izm_11:20180225235150p:plain

全体の方向を決めます。 (このタイミングでslackチームを作って、githubリポジトリを立ててます)
現代世界を舞台にするか荒廃したポストアポカリプスで行くか悩みましたが、ポストアポカリプス良いよね、良い。という気持ちで後者になりました。
企画台本をgoogle documentにワイワイとみんなで書いていきます。

余談ですがこの時に40インチモニタを会場であるアカツキ社さんが貸してくれたおかげでスムーズな台本作業が出来ました。ハッカソン会場に大きいモニタは便利ですね。持って行くのはつらいですが…

特に今回は依頼した声の方が日曜日に対応が出来ないので、土曜日中に台本fixをしなきゃいけない。という点で、割と普通の動画製作案件みたいな進め方になります。(台本→コンテ→モーション→モーションに合わせてシーン調整)

こんな感じの台本というかコンテというか仕様書が1日目の夕方に出来上がってます。 f:id:izm_11:20180226001236p:plain

モデリング+実装

モデリングは ガチンコの方が2名いたので分担して2キャラ(ライムさんとお供ロボットのデコポンさん)を作ってもらってます。この辺りは僕詳しくないので、また適宜追記します。 デコポンさん(このお供ロボット)はCADが得意なスゴウデメンバーがラフスケッチを描いてものすごい速度でモデリングしてくれました。すごい… f:id:izm_11:20180226002023p:plain

普通は2日間のハッカソンでゼロからキャラモデリングしない方が良い、とのことです。

実装です。

1日目の内に要素技術をガシガシ検証していきます。

  • PerceptionNeuron環境セットアップ(会場は結構ノイズ厳しかったですが、別室の会議室はノイズが少なかった!ありがたい)
  • 広いエリアを作って決まったルートを歩かせる(スプラインエディタとfollow splineのコンポーネント+mecanimセットアップ芸)
  • 360度動画出力 (Unity2017.3で、AVProのムービー出力のアセットを使いました。パノラマ出力とPostProcessing Stack v1との相性を危惧していましたが、まあ、ギリギリ使える印象です。ブルームが誤爆したりはしなかったです。つなぎ目は目立ちます)

後はモデルが来ることを信じてユニティちゃんで仮のシーンセットアップを作っておいて、各カット毎のシーンを作ってあまりプレハブ使わない運用でいきます(短時間での共同作業を可能にするための措置で、ハッカソンでなければお勧めしません)

最低限の歩き回り+障害物乗り越えジャンプのmecanimステートを作って、上半身をアバターマスク切っておきます。今回は歩く下半身はmecaimのモーションブレンドセットアップで、上半身はセリフに当てた決め打ちのモーキャプ流し込みを使う事にしました。また、後々使いそうなFinalIKの各種セットアップ+パラメータ調整をユニティちゃんを使って、ここでやっておきます。

こうしておくことでモーキャプデータが綺麗に取れなくても、マスクブレンドを使って(例えば無難そうな胴体周りの微動だけモーキャプを当てるとか)逃げられるようにしつつ、最低限のアニメーションを担保できます。

1日目の深夜に台本音声ファイル+何かあった時に備えて汎用っぽい台詞集を受領。これで決め打ちモーキャプを2日目朝に取れます。 ここまでが一日目っていうか二日目の早朝です。

f:id:izm_11:20180226003713p:plain

気合いで完成まで

2日目 モデルが2日目の昼くらいに1stで上がってきました!素敵!かわいい! というわけでモデル差し替えをしてガーッと実装していきます。

1st:ウェイト適当+仮マテリアル
2nd:ウェイト塗り+仮マテリアル
3rd:ユニティちゃんシェーダーセットアップ
4th:口パクモーフ追加

と、計4回のモデル更新がありましたが、うまいこと差し替えます、1stを出来るだけ早く貰うことで、足幅の矛盾やアニメーションの変なところが無いかを確認出来ます。(実際この1stモデル差し替えタイミングで、シーンの建物配置の調整が入っています) 分かる人向けのハマりポイントとして、ブレンドシェイプ(口パクとか)を追加したタイミングでmeta無しfbxのみ書き換えでの差し替えが破綻するので注意です。

そこから先は根性で出来るだけ頑張るという世界なので、Unity上で手をいっぱい動かすだけです。

うう、記憶が無い…

動画をカット単位で出来たシーンから出力する前に、台本ベースで字幕を用意しておいてもらって、Premiereで連結+出力+Youtubeにアップロード。 をしたところで17:00で開発終了です。

担当範囲と感想

こんな感じで手を早く動かしてUnityでガーっとやってました。実装の見切りとかもやってます。

相当に時間ギリギリまでUnityを触ってて(たぶん参加チームのうち、動画出力が一番最後だったはず)割とヘロヘロになりましたが、審査員の方から感想や賞も頂けて、とても楽しかったです。

特にサマーレッスンの玉置Pさんから褒めて頂けたのは、とてもうれしいです!

企画の時点でビビっと来る素敵な案で、初期にコンセプトアートや雰囲気をチーム内で共有できたことで、残り時間を見ながらの取捨選択もスムーズに行えて、結果的に限られたリソースで良い物が作れたのではないか、と思います。

第二回があるかはわかりませんが、工数は修羅場でも、和気あいあいとした雰囲気のチームでとても楽しかったです。

以下、ハッカソン中のチーム名言(?)集

https://speakerdeck.com/izm/shui-wu-yue-raimufalseri-ke-woshao-jie-simasutuspeakerdeck.com