適材を適量だけ必要な時にだけの話

適材を適量だけ必要な時にだけの話

キャラクターのコーディネートデータには危険が潜んでいる。

人様に顔向けできないようなものしか作れないゆきのです。こんにちは。

前回の投稿記事で道具箱について書きましたがその中で素体アクセサリーが100個付いてたらー、なんて事をちらっと話しました。今回はそこから更に突っ込んで私が構築したキャラクター衣装とアクセサリー類の取り扱い方。適材を適量だけ必要な時にだけ取り出して使うための整理整頓の話をしたいと思います。

アクセサリーの危険性

私ももうなんだかんだ三年ほどはコイカツで人様に顔向けのできないモノを作り続けていますが初期のスタジオシーン作品とかをロードすると顔から火が吹き出す程これは酷いと思うようなモノが多々あります。その中でも最も酷いものはスタジオシーンの場面カットの割合に対してのシーンデータファイルのサイズロード時間だったりします。

最初期、一番最初の自作キャラを作り上げた時、一人で”いいねぇ、このキャラはこういう設定で、こういう事もやりたいなぁ。あぁ、あんな場面用の衣装もいいね。“とかコーディネイトタイプ各種に山盛りに衣装とアクセサリを載せて一つのキャラデータとして保存して使ってましたが後々になって泣く事になりました。

それは何故かと言うと…その衣装やアクセサリー山盛りのキャラクターを使って場面カット多数のシーンを作ろうとすると”とてつもなく重たい“からです。話の流れ的に一つのコーディネートしか使わないのにシーンに読み込まれたキャラクターデータには使いもしないデッドウェイトのコーディネートが一緒に大量に読み込まれているのです。スタジオ内でキャラクターをコピーして次のカット用に使おうとするものならメモリ内に読み込まれたコーディネートが二倍、三倍にまで膨れ上がり、スタジオ全体のfpsがガリガリ削られ、最終的には一桁台とかにまで下がった日にはメンタルもガリガリ削られて制作放棄案件となってしまいます。

という訳で精神衛生上、快適なシーン制作のために考えてキャラクター、衣装、アクセサリのデータ構成をするようになった訳ですがそれが”適材を適量だけ必要な時にだけ取り出して使う“という考え方。

適材を適量だけ必要な時にだけ

それではうちの聡美さんを素体として使って話を進めてみましょう。

聡美さんというキャラは時系列的に多数のバリエーションが存在します。それは経年変化やその場の状況に応じて肉体的な変化があるからです。これは当然それぞれ別々のキャラデータとして保存してありますが各キャラはマスターデータとして取り扱っているので一切の衣装やアクセサリーは付けないで保存してあります。

そして聡美さん用に制作した衣装類フォルダもありますがこちらは場面に応じて作り、個別保存しております。

このように分けて保存し、スタジオ内で適材を適量だけな聡美さんを読み込みますと”キャラデータ x 1 + 衣装セット x 1“だけになります。シーン内で聡美さんを複製して別の場面カットを作ってもそれは”キャラデータ x 2 + 衣装セット x 2“にしかなりませんのでスタジオが必要とするリソースにはまだまだ空きがあります。

これが以前のような構成ですと….
キャラデータ x 1 + 衣装セット x 7
スタジオ内で聡美さんを複製すると…
キャラデータ x 2 + 衣装セット x 14
キャラデータ x 3 + 衣装セット x 21
塵も積もれば山となるという言葉がありますが、衣装セットも同じことで馬鹿に出来ない程のデッドウェイトと化します。

衣装セット21なんてまだまだ温い、大丈夫!” と思う事もありますでしょうが…もしこの”衣装セット x 1“の内訳がトップス x 1、 ボトムス x 1、ブラ x 1、ショーツ x 1、靴下 x 1、に靴各2種とアクセサリー30個だと仮定した場合…”キャラデータ x 1“以外で読み込まれているオブジェクトが37個…そしてその内訳3721セットあった場合….

見比べてみると、スタジオが必要とするリソースの違いが分かりますね?
これで”適材を適量だけ必要な時にだけ”使うことがどれほど大事かが分かると思います。

定義づけとブロック分け

さてそれではキャラクターに複数のコーディネートにまたがる共通の衣装やアクセサリーがある場合の取り扱いについて話してみましょう。
私の場合、まずは衣装・アクセサリーに関してそれぞれクラス分けをしております。
衣装はまぁ。キャラ素体自体はすっぽんぽんでも崩壊せずに存在していけるのでこの際は無視しておきますがアクセサリーは物によってはキャラ素体の存続に必要不可欠なものが多数あったりしますので見ていきましょう。

以下、上からクラスが高い順
クラスA – キャラの存続に必要不可欠なアクセサリー (頭や髪等、キャラの体自体を構成するようなアクセサリー)
クラスB – キャラの特徴存続に必要不可欠なアクセサリー (キャラの固有の特徴だったりする髪型やキャラ設定等を整えるのに必要不可欠なアクセサリー、ヘアピン、ヘアバンド、メガネ、結婚指輪等)
クラスC – キャラが愛用するであろうアクセサリー (ピアス、ネックレス等)
クラスD – その他のアクセサリー

聡美さんの場合を上記のクラス分けで見ていきますとアクセサリー等で難しい髪型にしている訳でもないので、まずクラスAは存在しません。
クラスBに行きますと聡美さんはキャラ設定上、結婚されていて、普段はメガネを掛けている上に”とある癖”があるのでその特徴を捉えるアクセサリーが何個かあります。
クラスCまで下がりますと聡美さんはよく使うネックレス、ピアスが何個かあります。
クラスDは衣装毎に変わりますのでこれはその他という事で良いでしょう。

クラスAが存在しないので除外しますが各コーディネートに共通してあり続けるクラスBともしかしたら高い頻度で共通であり続けるクラスCのアクセサリーがあります。それをキャラメイクのアクセサリー画面で見てみますとスロット1~スロット11までがクラスBスロット14~スロット20 までがクラスCと割り振られています。これは上から順にこの固有キャラクターの存在に必要不可欠なアクセサリーをブロック分けして使っています。私の場合は適当に10スロット前後で1ブロックとして分けているのですがまずこのブロック分けを念頭にアクセサリーの追加位置を決めてしまえば後々で楽になります。

整理整頓

さて、クラスとスロットブロックの定義は済ませましたので次に行きます。スクショでは現在クラスB,Cがそれぞれのブロックごとにありますがまだ両方とも同じコーディネート上に存在しています。これは各クリエイターさんがどこまで細分化するかの匙加減にもよりますが、私の場合はブロックBは必ず使うとしてもブロックCはそれほどでもないので分けてしましましょう。

まず、現在のコーディネートをtempとして保存します。次にブロックCのアクセサリーを削除してからこれをブロックBという名前で保存します。そしてtempという名前のコーディネートを再度読み込んでから今度はブロックBのアクセサリーを削除し、これをブロックCという名前で保存します。最後にtempという名前のコーディネートファイルを削除したら完全にブロック毎に個別保存が出来たわけです。

こうしますと聡美さんに新たなコーディネートを作る際、キャラ素体を読み込んでからまずはブロックBのアクセサリーを読み込み、そこからどのような方向性で作るかによってアクセサリースロットの上書きを回避しながらブロックCを読み込むか読み込まないかを決められます。

コーディネート固有のアクセサリーは当然、ブロックCのブロック部分を迂回し、スロット23等以降、ブロックCを上書きしない場所から入れ始める事によって後から方向性の修正をしたい場合、アクセサリーのスロット順の入れ替えを気にせずに読み込みが出来ます。

コピー機能

さて、まずブロックBブロックDが現在定義されているコーディネーㇳがあるとします。ここにブロックCの衣装を読み込むとブロックBDの衣装が上書きされてしまいます。これを回避しつつ、統合をするのにキャラメイクにある”コーディネートタイプ“という機能を使って行きましょう。

ブロックB,Dの定義コーディネートが”学生服(校内)” (バニラ・コイカツの場合)のコーディネートタイプスロットにあると仮定しますと。まずはこのコーディネートタイプを”学生服(下校)“に切り替えます。

ここにブロックCのコーディネートを読み込んでから次に”コピー”機能を使ってコピー元を”学生服(下校)“、コピー先を”学生服(校内)“に設定し、統合したいブロックCの項目だけにチェックを入れて”コピー”をすると”学生服(校内)“のコーディネートタイプに戻ったらブロックB,Dが既にあったところにアクセサリーのオーバーラップも無く、綺麗にブロックCが統合されましたね。

入れ替え機能

さて、ではスロットがコーディネート間でダブってしまっている場合の対応を見てみましょう。

例えば、スクショの様にスロット5に特定のアクセサリーがあり、これをブロックB、CがすでにあるコーディネートのブロックD部分に差し込みたい場合を見てみましょう。

当然このままコーディネートタイプ間のコピーを利用するとブロックBのアクセサリーを上書きしてしまいます。

この場合、まずは”入れ替え“機能を利用してスロット5にあるアクセサリーをブロックDの位置へ移動させましょう。

コピー元のスロットを左側の欄から選択し、次にコピー先の欄を右側で設定します。聡美さんは先程頭の上に猫を乗せていましたがあの猫はスロット23でしたので今回のハイビスカスはスロット24に入れて”スロットをコピー“すると新たなスロットに複製されます。

このまま”コピー“に戻りますと新たにスロット24にハイビスカスがあり、コピー先へダブらずに統合させる事が出来るようになりました。コピーをし、統合先のコーディネートに戻りますとちゃんと統合されてますね。

さいごに

今回の記事は結構長く、あーでもないこーでもないと色々とこねくり回しましたが結局のところはキャラクターデータは様々な状況に合わせて個別に保存しておいて必要な時だけ各データを統合して使うとコイカツのリソース食べ過ぎ問題を抑圧できるという簡単な話なのです。