冬眠から覚めた熊が四季の山々を歩き回る様子を絵巻物風CGで表現しました。
絵巻物モチーフということで、東洋的な詩書画の要素を入れる構成にしています。

雪もいまだ深き 啓蟄のほど 穴より這ひいでありく
この歩みし跡には 草木芽吹きそむといふ
時折吹く風は 実りを言祝ぐ調べなり
降り続く雪足跡を覆ひ その住処を知る者なし
かの獣 山守として深く敬はれたるなり
Art for houdiniという講義を視聴したことがきっかけで、 動く日本画というコンセプトに興味を持ち、日本画のような表現をCGで作れないかと考えました。
日本画の要素を考える上で、今回16:9の画面サイズという制約から縦長の掛け軸のような表現より、横長の巻物の方が都合が良いと考え、絵巻物というモチーフを採用しました。
絵巻物では右から左に物語が進む形が多いことから、絵巻物の中で表現された春夏秋冬の風景の中をクマが歩いて行くという形をとりました。
単に巻物風にするだけでなく東洋的な絵画表現を随所に入れることを意識しました。トランジションで霞のような動きを入れたり、デザイン性の強い書道感のある文章や印は随所に入れたりなど、詩書画のバランスを意識しました。マテリアル表現に関しては今作に合ったスタイライズド表現への模索に力を入れました。PBRではなく、かといってアニメのようなセルシェーディングでもない中間的なイメージで作成しました。 立体感をつぶしつつ、2次元的な情報量(霞、筆のタッチ、シワ、汚れ)をどうやって付加していくかが大事ですが、そこにおいてシェーダの試行錯誤は必要です。 コンポジットで情報量をコントロールするのではなく、シェーダの段階でなるべく完成形に持っていけるよう意識しました。
重視したキーワード:「巻物」「書道」「山」「熊」「霧、霞」「草花」「水」「夕日」「風」「雪」「洞窟」
| モデリング(クマ) | ZBrush + Maya |
| モデリング(地形・草・石) | Houdini |
| アニメーション・リギング | Houdini |
| テクスチャリング | Substance Designer |
| レイアウト | Unity6 |
| ライティング | Unity6(独自シェーダー) |
| レンダリング | Unity6(独自シェーダー) |
| コンポジット | AfterEffects |
| 文字表現 | Photoshop + AfterEffects |
| 期間 | 内容 |
|---|---|
| 10/06 - 10/12 | フォトグラメトリー実験・ZBrushを触る |
| 10/13 - 10/19 | Unity6を触る |
| 10/20 - 10/26 | コンセプト決定・リファレンス収集 |
| 10/27 - 11/09 | Unity6シェーダ検証 |
| 11/10 - 11/16 | リファレンス収集・コンセプトアート作成 |
| 11/17 - 11/23 | 日本画の情報収集 |
| 11/24 - 11/30 | コンセプトアート作成・クマのモデル作成 |
| 12/01 - 12/07 | クマのモデル作成 |
| 12/08 - 12/14 | クマのモデル作成・セットアップ・Unity6カメラ調整 |
| 12/15 - 12/28 | ストーリーボード制作 |
| 12/29 - 01/11 | アニメーション制作・シェーダ制作・ライティング設計 |
| 01/11 - 01/25 | アセット制作・シェーダ制作・ライティング調整・レイアウト |
| 01/26 - 02/01 | コンポジット・文字制作 |
| 02/02 - 02/08 | シェーダ調整・ライティング調整 |
| 02/09 - 02/15 | アニメーション制作・レイアウト・カメラワーク |
| 02/16 - 02/25 | 特殊表現・文字制作・各種調整・オーディオ設定 |
制作にあたりマテリアルはPBRではなくスタイライスド表現になること、そしてその表現の試行錯誤に時間がかかることが予想されていたので、 リアルタイムレンダリングを初めから検討していました。リアルタイムレンダリングだとUnrealEngineとUnityが選択肢に上がりましたが、 高品質なPBRを使う必要がないこと、シェーダコードレベルでのカスタマイズが比較的容易そうなことからUnityを採用しました。 理想を言えばプリレンダのトゥーンシェーダも検討比較をしたかったのですが時間はありませんでした。
Unityを採用するにあたり、まずシェーダのカスタマイズがどの程度可能そうかを検証しました。 下記の記事で作成したモデルをUnity上で読み込んで、そこに自作のシェーダを割り当てて検証を行いました。
こちらはシェードを潰して輪郭線表現を入れたシェーダをクマと竹のモデルに割り当てた状態です。
背景を和紙風にするために、RenderFeatureを追加して、背景をテクスチャで塗りつぶす処理を入れてみました。
スタイライズド表現とPBR表現が時間で切り替わるとどういう印象になるかも検証しました。UnityのLitシェーダを改造してマテリアルアニメーションで切り替えられるようにしています。
UnityのバージョンはUnity6を採用しました。丁度使い始めたタイミングと正式リリースが重なったので、新しく始めるなら新しいバージョンでという理由でした。 ただ、Unity6でレンダリング周りの仕様が大きく変わっていたり、ネット上の情報もUnity2023以前のものが多かったりと仕様把握には苦労しました。 結局一番参考になったのはGithubに上がっているUnityのシェーダコードを直接見るでした。
制作にあたり絵コンテに相当するストーリーボードを作成しました。予めストーリーボードを作成することで、カット総数や用意するべきアセット数の目安が分かりスケジュールを立てるのに役立ちます。 逆に制作スケジュールが厳しくなった時にどのカットを省くかの判断にも有用で、制作後半になればなるほど作ってよかったと思えるものでした。
また、カメラワークやレイアウトを考える際の最初の一手にもなります。 自分の画力の問題ですが、だんだんクマの形が取れるようになって後半のカットの方が上手く書けたので、ストーリーボード制作を2周できると理想だと思いました。

巻物が左におかれ、一定の範囲に広げられてそれが解かれていく、そのため右から左に話が進んでいくという特徴的な展開のため、 その流れが把握できるよう動画形式で作成しました。スクロールスピードの検討にも使えました。
トランジション表現ではカメラテクスチャをノイズテクスチャを使用してゆがめることで、霧や墨のような動きを表現しました。
GameObject単位でクマとの位置を見て揺れを計算するもの、モデル一体で頂点カラーの情報を埋め込んで頂点シェーダで計算する2種類の草を用意しました。 前者はGameObjectとクマとの位置を方向を計算し、その情報をもとにGameObjectに対して足の設置タイミング時に風を発生させ、草を描き分けるような表現をしています。
草のモデルにはHoudiniで頂点カラーに以下の情報を入れています。
R:揺れの重み(下ほど小さい) G:房ごとのseed値 B:草の束の高さ A:草の束ごとの乱数値
この情報があることで、頂点シェーダに風の強さと方向の渡すだけで高速に草の揺れを計算できます。クマの位置を見る必要がないケースではこの方法で揺らしています。
草が成長するような表現はカメラ位置に応じて草モデルの頂点シェーダでY座標を動かして実現しています。カメラが常に左に動いている前提での実装です。