戦闘エロをアニメーションにできるのか!?するのか!?
システムのお話が続いています。
前回の記事、Live2Dモデルをそのまま表示するのではなく、動画化することで、RPGツクールMZの戦闘シーンで立ち絵アニメーションを表示すること自体はできました。
ただこれで万事解決、というわけにはいかず。
というのもアニメーションできる代わりにいくつか制約が出てきて、それが元々の設計とうまく噛み合わない問題が発生しています。
今回やりたい戦闘エロ
詳細は別記事で書こうと思っているのですが、今回やりたい戦闘エロははっきりしていて、それを表現するためのシステムも既にある状態からスタートしています。
ただしこのシステムは画像の差分で表現する前提で作ったもので、20以上のレイヤーを使い分けることでやりたいことを実現しています。
これと今回発見できた戦闘アニメーションの実現方法がやはり噛み合いません。
複数レイヤー使った場合にモーションの同期が難しい問題
静止画と違いアニメーションは動いています。
こちらの記事でも触れましたが、表示した複数のレイヤーでモーションがズレていると、透過部分から後ろのレイヤーが見えてしまいます。
レイヤーのモーションを完全に同期させればズレは起こらないはずですが、それを実現するには、それぞれのピクチャに連動するスイッチを用意し、ピクチャが表示/非表示されるたびにそれらを操作、そして表示されているすべてのレイヤーのモーションを初期化する、という処理が必要になります。
(実装自体はできそう)
ただこの実装に(バグ修正やテスト含め)結構時間がかかりそうなのと、仮に実現できたとしても、要は動画を10個とか同時再生することになるわけで、プレイヤーが普通のPCを使っているとするときれいに同期できないのではないか、という懸念があります。
ということで他の作品を色々参考にさせて頂いていたのですが、やっぱり動画を複数レイヤー同時再生して差分表現してやろう、みたいな作り方は見当たりませんでした。(そりゃそうだ)
1レイヤーで全部条件分岐させる方法
となるとあらかじめ全パターンのアニメーションを動画で用意しておいて、関数を分けるなり条件分岐させまくって状況ごとに適切なアニメーションを1レイヤーだけ表示する、という脳筋戦法が思い当たります。
というか現実問題そうよね。
つまりこれまで
・小夜胴体立ち
・小夜表情恥じらい
・服破け具合1
みたいな感じで分けていたファイルを
・小夜胴体立ちの表情恥じらいの服の破け具合1のファイル
みたいな感じで全ファイル分けて作っておく必要があります。
今回けっこうしっかりパターンを作ろうと
体位3パターン
表情6パターン
衣服破損度4パターン
敵拘束3パターン※正確には未定
敵前戯3パターン×3箇所の計9パターン※正確には未定
敵挿入
みたいな感じで考えていたので、例えば↑の例でも1944の動画が必要になる計算です。
現実的ではありません。
※しかも今ざっと列挙しただけなのでまだ抜けてる可能性もある。
パターン数を削ってみる
ということでアニメーションをやるならパターン数を削る必要があるだろう、と。
体位を1つにすれば648動画。まだ多いですね。
衣服差分も削って162動画にしてようやく現実的なレベルでしょうか。
しかしここまで削るとなると
- 動くけどパターン数が少ない
- 静止画だけどパターン数が多い
のトレードオフとなり、悩ましいところです。
動画の差し替えには時間がかかる
さらに追い打ちをかける問題が。
なんとかパターン数を調整して実装しようとしていたのですが、同レイヤーへの動画の差し替えの際、読み込みに時間がかかり一瞬キャラが消えてしまう問題が。
※動作テスト用には他作品様の動画をお借りしたのでテスト動画はここに載せれません。文章だけの説明になってしまって申し訳ないです。
これは通常時→拘束時みたいなタイミングでは気にならないのですが、服を破かれた時にさえキャラ全体が一瞬消えてしまうのは気になりすぎます。
これではゲームへの没入感を削ぎ、現実に引き戻されてしまう。
これだとアニメーションできてもユーザー体験としてもむしろマイナスまであります。
動画の読み込みだけ先にやってしまって、差し替えを遅らせればどうかとか試しましたがどうも表示自体に時間がかかってしまうらしい。
一応対処法はあって、分類ごとにレイヤーを当てて、次の動画を画面手前のレイヤーに当ててから、奥のレイヤーを消すことで、シーンのシームレスな遷移は実現できます。
例えばレイヤー1が表示されている場合
- レイヤー2を表示
- ウェイト30フレーム
- レイヤー1を消去
※実際は表示したレイヤー以外をすべて消去(どの絵からどの絵に遷移するかランダムなため)
みたいな感じで実装するわけですね。
ただここで透過部分から後ろのレイヤーが見える問題が再発。
それなら透明部分をなくしてしまえばいいではないかと、動画自体に戦闘背景ウィンドウっぽいものを入れてしまう案を考えたり。
戦闘エロをアニメーションにできるのか!?するのか!?
そんな感じで色々試行錯誤していた1月でした。
この他にも小夜は動かなくていいのではないか、小夜の静止画の手前レイヤーで敵のエロ攻撃の方だけアニメーションにすればいいのでは、とかも考えましたが、そうこうしているうちに1月が終わりそうな勢いです;
結論としては、戦闘エロのアニメーションは「おそらくできる」のですが、「やらない」ことにしました。一番最初の計画通り、戦闘エロについては画像の差分で表現しようと思います。(その代わりパターン数はしっかりあるよ!)
- 発生する制約があらかじめ考えていたゲームの設計と合わないこと
- 今のところどうにかできそうな気配は見えているものの、また何かしら想定外で詰まりながら進めていった場合、開発に1年くらいかかりそうなこと
- 1作目ということもあり、そこまで時間をかけず、まずは作品のリリースを目指したいこと
など総合的に判断しました。
ただ敗北Hなど戦闘以外でのイベントにはLive2Dをそのまま使うこともできますし、どこかしらアニメーションは入れたいなーとも思っています。
そしてアニメーションをやるとしたらどんな感じになるのかはけっこうわかったので、次はこの前提で最初から設計してみたいですね。
ということで、長くなりましたが1月の総括も兼ねて、ということで。
引き続き制作頑張ります!