After 『USAエッチ~あままみ3』 技術編
『あままみ3』のリリースまでにいつもより時間がかかったのはAfter『あままみ3』に記した通り、企画上・制作上の要因も多々有りました。
ただ他にも、この一年間は今までの制作で見えてきた問題点・非効率な点を洗い出し、ワークフローの見直し、ツールの開発、新たな機材の導入を積極的に行っており、それらの開発・検証にも結構時間をとられていました。
ということで、この記事では放置していた『USAエッチ』の分も含め、『あままみ3』の技術周りのお話し…作業の効率化の為に行った工夫、新規導入した機材・ソフトウェアの効果等について書き記しておきます。
今まで以上にディープな話も書いてますので、3DCGや映像製作過程に興味が無い方でも「表向きは女の子がエッチしてる動画なのに、制作現場ではなんだかワケわかんない事やってる!」って感じで面白いかも知れない。その手の業界の人だと「エロ同人でそこまでするのかよ!」とか、「それエロに使うのかよ!」って感じで面白いかもしれない。
■セミオート揺れものコントローラ
『USAエッチ』から導入した揺れもの制御システム。 seismicのFLASH作品の性質上、モーションのループ処理が欠かせないので、セカンドアニメーション(髪・服・乳等の揺れ)の制作にはシミュレータを用いず、愛と根性の手付けモーションで制作してきました。 ただ、髪や乳など、根元のボーンの動きが末端に遅延して伝わってく様なアニメーションは毎度必要になってくるので、コレを自動化したいと思っていました。 そこでCATのセットアップレイヤーにExpressionを組み込み、コントローラを動かすだけでおっぱいプルンプル~ンや、ツインテールがふんわり揺れる動きが自動で行えるようにしました。 動画はおっぱいコントローラのみ表示しています。コントローラの動きに応じておっぱいのボーンに移動と回転の値が与えられます。おっぱいボーンは3節有り、末端に行くほどフレーム遅延&減衰した値が入力されます。 髪、ウサ耳、サイコロ、スカート、リボン等にも同様のコントローラが仕込まれており、1つのコントローラで纏まった要素(頭セット、スカートセットなど)のコントロールが出来、非常に効率的。また、コントローラからのスイングモーションとは別個に、各CATボーンにFKで基礎ポーズを付けたり、加算アニメーションも可能なので、かなり柔軟なモーション制御が可能です。『うさだ』の体中てんこ盛りパーツ群は、この仕組みが無いとモーション作成やループ処理が難しい状態でしたね。 ただ、遅延にかかるフレーム(3節の乳なら2フレーム)分、ループモーションに移行する予備フレームを多めにとる必要が有るので、モーションの繋ぎには少々気を使う必要が有りました。 また、最大の問題点は『重い』こと。この仕組みはコントローラオブジェクト自体CATボーンで作っており、そのアニメーションレイヤーの全加算値を常に参照する(Expose Transform Helper)仕組みとなっております。なのでアニメーションレイヤーが増えると非常に重い。『20レイヤー・2000フレーム』なんてアニメーション作ると大変な事になるし、さらに乳揉みのためにおっぱいに手をコンストレインした日には、コントローラを動かして1分近く待たされる場合もあります(max2012→2014で大分軽くなったけど)。そんなときはExpressionをOFFにし、大凡の動きを付けてからONにして対応してます。 お勤め時代、mayaでのゲーム用のモデル+モーション製作に携わったときは、MELでExpression書くの大好きだったのですが…maxはmayaに有るようなシーン全体のExpression統合管理画面が用意されておらず、いまいち使い辛いんで敬遠しておりました(ワイヤパラメータにちょっと式書くくらい)。でも、CATのセットアップレイヤーと組み合わせると色々遊べるので、今後も色々試してみたいと思っております。 【費用対効果:☆☆☆☆★】 ソフトウェアでも機材でもなく、3DCGソフト内でのセットアップ手法探求に過ぎないので、費用対効果というのもナニですが…実際この仕組みが完成に至るまでには結構時間がかかりまして、『USAエッチ』制作の最初の1ヶ月は試行錯誤の繰り返しでした。 こういった複雑なセットアップは実際にモーションを付けてみてはじめて気付く問題点も有るので、製作中の細かい調整も必要になりました。まだまだ自分の制作スタイルの中でのデメリットも有るので、実際に生かされるのはこれから…といったところでしょうか。■Excelによる3dsmaxレンダリングジョブ発射装置
3DCGで動画をレンダリングする際、最も原始的な手段はローカルマシンでの単独レンダリング。当然1マシンだから時間がかかるし、レンダリングにCPUパワーを喰われるので、他の作業が出来なくなってしまいます。 そんな時は他のマシンに仕事を放り投げよう!現在、主な統合3DCGソフトにはネットワークレンダリングという手段が用意されており、3dsmaxにもBackBurner(以下BB)という心強いネットワークレンダリング管理システムが付属しています。3dsmax上でレンダリングしたいシーンを開き、カメラやフレーム範囲を指定し、BBのマネージャーマシンにジョブを送ります。すると、レンダリングサーバとして登録しておいたマシン達に自動的にレンダリングジョブが送られ、指定したフォルダに連番ファイルが出力されていく…という仕組みですね。 利点はサーバの台数分だけ単純にレンダリング時間が短縮出来る事、そして自分のマシンはジョブを送信したらフリーになるので、その間も作業が進められる事。欠点はレンダリング用のマシンを用意しなければならないので、台数分コストがかかる事。 これだけでも1マシンの時より便利なのですが、例えばこういったニーズが出てきた場合…- 限られたフレーム区間だけレンダリングしたい
- シーン内の特定のオブジェクトだけレンダリングしたい
- 解像度を下げて高速にレンダリングしたい
- プレビュー用に高速レンダリングしたいのでアンチエイリアスをOFFにしたい
- トゥーンのラインを除去してレンダリングしたい
- アンチエイリアスのレベル(無し、プレビュー、最終出力)の指定
- 開始終了フレームの指定
- 解像度の指定
- カメラの指定
- シーンの状態(マミさんだけとか、水着だけとか)
- エフェクトの有無(トゥーンラインの有無など)
- ジョブのプライオリティ(レンダリングする順番)
- maxのバージョン指定
- 出力先とファイル名の指定
- 出力画像フォーマットの指定
■ExcelによるAfterEffectsレンダリングジョブ発射装置
3dsmaxのジョブ発射装置の応用編です。まずはコレを作った経緯から。 「さてどんな絵を作ろうか」と、完全に手探り状態だった処女作『CatsAttacks』の制作では、3dsmaxでトゥーンレンダリング画像の他にも様々な画像素材を出力し、AE上であれこれ画像を合成して試行錯誤…最終的にリリース版の様な絵に仕上げました。 プロジェクト終え、AEのレンダリングでメインマシンのCPUパワーが占有されてしまうのが一つの課題になりました。AEでコンポジしながらmax使ってると最悪落ちることも有り、マシン台数が少ない当時は死活問題だったのです。 「maxならネットワークレンダリングで容易く負荷分散出来るし、画像処理の比重をmaxに傾けることが出来れば全体作業も効率が良くなるはず」と考え、『おしおき日報』からはmaxのマテリアル・シェーダを見直し、『CatsAttacks』の最終出力画像に近い絵が一発レンダリングで出せる様に工夫しました。この手法は功を奏し、作業効率は大幅改善。『USAエッチ』まではこの制作スタイルが続き、AEではちょっとしたエフェクトとFLV動画の書き出しのみ…というワークフローが続きました。 しかし、『あままみ3』では凝った質感を作り出そうとしたばかりに、またもAE出力の負荷が気になる様になってきました。これはイカンと改善手段を模索…「そういえばAEも分散レンダリング出来たっけ?」って事で、ヘルプ読みながら『監視フォルダ』機能を使ったネットワークレンダリング機能を試してみたんですが…maxのBackBurnerの仕組みになれてると、まどろっこしいやら面倒臭いやら話にならない。 「んなもんやってられるか~!」とさらに色々調べていたら、なんとAEのレンダリングジョブをコマンドラインでBackBurnerに飛ばせるらしいじゃあ~りませんか。「コマンドラインならまかせろー!」って事で、再びExcelを用いてジョブ発射システムを構築してみました。- AEファイルとその中の特定のコンポジットを指定可能
- 出力パスの指定
- 出力品質の設定
- 上書き・差分書き込みの選択が可能
- タスクの分割数の指定
■高速SSDの導入 (Intel SSD 910Series 800GB)
こうしてmaxのレンダリング指令が無いときは眠っていたレンダリングマシン達をAEレンダリングで生かし、その間メインマシンを完全フリーにする事ができました。しかし、如何せんレンダリングスピードが遅い。調べてみたところ、コンポジ素材も出力先も全部1台のNASが担っており、その処理が追いついていないのが原因でした。そりゃAtomシングルコアでメモリ1GBのNASに、6台のマシンが大量の連番画像を読み書きしてたらパンクしますわ。 そこで検証がてら、メインマシンのSSDにAEのレンダリング出力させたところ、速度が劇的に改善。これはいい…けど全部で200GBにもなるプロジェクトを抱えるにはSSDの容量がキツイ…キツイ…えぇ~い!「一番いいSSDを頼むッ」
ってことでコレです。なにやら「SLCより寿命長い!5年間毎日10回全容量分書き換えても問題ナス!」という触れ込みだったので「ならば元も取れるじゃろう」って事で震える指でポチッ。 んで早速コイツをメインマシンにぶっ刺し、連番ファイルを全部ぶち込んでAEのネットワークレンダリングを試したところ…なんとNASでやりとりしてた時の8倍くらいに速くなったではないか。さらにメインマシンでの『FIX連番→FLV出力』という工程も一瞬の出来事の様に高速化された。というかプレビュー再生するのにキャッシュする必要がないレベル。そらぁこの性能なら…さもありなん。 まぁプロの現場ではローカルSSDか高速ネットワーク上のドライブに連番素材を置いてコンポジするのが普通でしょうけれども、『USAエッチ』までは全然必要性を感じない程度のAEレンダリング時間だった…というのが正直なところです。 【費用対効果:☆☆☆★★】 ハードウェア好きにとって失禁必至デバイスであり、早速もの凄く役に立ったので気分的には☆5つなんだけど費用対効果として考えると今時点ではこんな感じか。だって、実際「コレにして良かった☆5つ!」と思う瞬間が有るとしたら、5年後まで壊れずに問題無く使えたその時でしょ?■AfterEffectsのコンポジットの組み方で悩む
『USAエッチ』以前は各カット(ピストンやフィニッシュなど)毎に細切れのFLVを用意し、それらを順次再生する方式でした。つまり『エッチシーン数×カット数×着替え数』の膨大なFLVファイルが有りました。 断面表示で動画を2つ駆動した結果、発売直後に「今回やけに重いです」とか「どうでもいいけど全編メガネ付けさせろや」というありがたいご意見を頂きまして、再生負荷軽減と全体容量を抑える(メガネ差分で動画が約2倍になる)ために再生システムの大幅見直しを敢行。そして最新の『単一のFLVファイルをシークしてループ再生させる方式』に変わりました。こいつの設計・試行・実装・リリースまで1ヶ月以内でやったのは大変でしたね。友人に一杯アドバイス貰いました。お陰様で再生速度も容量も改善。ありがとう。 この新たなシステムに変わって初の『いちからの制作』となる『あままみ3』では、一つの障害にブチ当たりました。それはAfterEffectsでのコンポジットの組み方に関するものです。 今までは細切れの各カット毎にコンポジットを用意していたのが、新システムでは一連の動画にする必要が有ります。単純に考えるとコンポジットの数も、連番読み込みの数も大幅に減るので非常に効率が良くなる…ハズでした。 この新システムで扱う動画は、maxのシーンをそのままレンダリングしたものとは少々異なります。max内では『ヘッダ → ループ(ピストン1) → ヘッダ → ループ(ピストン2)』といった風にアニメーションが作られていますが、新システム用動画ではループの部分だけ2回繰り返すようにしてあります。これはFlashでの再生時、ループのガタつきを抑える為の工夫です。 『USAエッチ』でこの方式に切替えたときは、当然素材も全部揃っているし、動画の尺(フレーム数)も完全にFIXしていたので、さして問題は有りませんでした。しかし『あままみ3』で動画が出来上がりはじめた頃に面倒な事が起こりました。例えば『パイズリのループを30→40Fにする』『フィニッシュ後の余韻を増やす』などの尺の増減を行うと、連番ファイルの読み直しや、AEでのレイヤーのイン・アウト位置をカット毎に1個1個細かく調整し直すというダル~い作業が発生するのです。 自分は何でも『用意周到・計画的』に作業をするより、『感覚的・衝動・思いつき』で作業をする人間なので、こういうアドリブでの尺の変更みたいなことはしょっちゅう有ります。なので、ちょっとした尺調整でいちいちルーチンワークが発生するのは勘弁です。なんとか尺調整しても短時間で対応出来る様に出来ないかなぁ…と悩み、もがき、苦しみました。もういっそ3dsmax上でループ部分を2ループにしちゃおうかとも思いましたが、それだとレンダリング時間が増えてしまって美しくないし…。 それで色々調べていたら、AEはJavascriptを使って色々マクロっぽい事が出来るらしいじゃないですか。なのでAEのスクリプト周りの流儀を少々勉強し、例の『レンダージョブ発射Excel』のフレーム指定部分をコピペする事で、自動的にレイヤーを複製・インアウト位置を調整するスクリプトを作りました。↓
全体の尺が変わったら親コンポジの尺を自動で調整する機能付き。スクリプト自体は非常に簡素なモンなんですが、コイツのお陰で気軽に尺を変更出来る様になり、面倒なルーチンワークからの開放されました。 「こういうのでいいんだよ…こういうので」…何より、AE周りの効率で悩んだとき、スクリプトで解決するという選択肢が自分の中で生まれたことが今回の収穫だったかなと。 【費用対効果:☆☆☆☆☆】 典型的な『特定のワークフローじゃないと意味が無い』系の自家製ツール。制作時間もあまりかからなかった割に重宝してます。 ただ、コンポジットの組み方や、連番出力のフォルダ仕分け方法、『どういうスクリプトが有れば効率的か』という答えに至るまでは、上には書き切れない程の試行錯誤を繰り返しており、結構時間がかかりました。そもそもAEの知識不足ってのも大きいんですけどねぇ。 しかしJavascriptは何にでも使えるので覚えておいて損は無いですね。昔はこんなに長生きする言語だとは思わなかったなぁ…。■連番ファイルをPSDにしてみる(PSDmanager)
AE周りでもう一つ。今回いつもよりコンポジットで扱うエレメント素材が多く、1つの動画に20種類くらい必要なものも有りました。これらを1つ1つ読み込むのがまた結構大変なんですよね。1つの画像ファイルに様々な情報を仕込めるRLAやOpenEXRなんて手段も有りますが、エフェクトでいちいち抽出してやるのも面倒だし。 そこで今回導入したのがPSDmanager。割と昔からあるmax用プラグインで、レンダリング結果をPSDとして出力するというのが主な機能で、レンダーエレメント、max内の特定のレイヤー、特定のマテリアルIDなどを個別にPSD内のレイヤーとして書き出す事が出来ます。さらに…- 各レイヤーの表示のON・OFF
- 透過をマスク・透明度のどちらにするかの選択
- レイヤーの合成方法(乗算・オーバーレイなど)
どもです~
情報処理系サラリーさんの時にExcelが出始め、全く知らない「C言語」使ってプログラム組めやぁって言われて「これゼッテー無理やん!脳みそ崩壊するやん!」てババ踏む前にトンズラこいた自分にはほぼ理解できなかったっす…orz
まみさんは絵じゃなくてプログラムって事でいいのかな…
この前電子ペンみたいのでラフ絵描かれてたの見て手描きの絵も見てみたいと思いますたwww
今回はいつもと違って噛み砕かずに書いたので、おいてけぼりですみません。日常的に3Dの話を出来る人が居ないので鬱憤を晴らした形です(;・∀・)。
>脳みそ崩壊するやん!
プログラミングってまずその概念を理解するまでが壁ですからねぇ。
>まみさんは絵じゃなくてプログラム
ど…どこを縦読み@@;。
この記事で『あままみ3』も完全決着なので、たまにはなんか描いたりしたいです。
なんかとてもプロフェッショナルな話題でカッコいいですね!
PCの遍歴の絵、Lian-Liのフルタワーなのだろか・・そして980Xで4Ghz常用・・もしかして水冷ですか!?
とか、自分も分かる部分にだけ食ついてみたりして・・
自分のやりたい事を仕事にするって憧れます。自分も何か始めたくなりましたヽ(`Д´)ノ
とおりすガガーリンさん始めまして。
とおりすがりさんはいったい何タイプ居るんだ(;´ρ`)。
>Lian-Liのフルタワー
鋭い…あんな小さいドット絵でわかってしまうとは…PC-X900Rですね。当時僅かな予算でソフトと機材を調達しなければならない時に「ケースは妥協しない!モチベに関わる!」と6万円のケースを選び「シャア専用…ニヤリ」ってしてました。なんというか逆境を楽しむタイプなのかも知れません。
水冷はドジな自分だとプシャァ~ってしそうなので、Corsairの簡易水冷付けてます。
>自分も何か始めたくなりましたヽ(`Д´)ノ
創作活動は楽しいですよー\(^o^)/
素晴らしい作品をありがとうございます
杏子の作品、どうか作ってください!
たろうさん、手にとって頂いてありがとうございます。作って欲しいという気持ち、大変嬉しいですがそろそろまどマギ以外の方に食指をうごうご動かしているところだったりします。
しかし杏子、魅力的なキャラですが真面目に考えると男との絡みが想像しづらい存在ですね(; ゚з゚)
もしも、「USAエッチ2」が実現したら、処女喪失シチュエーションの音声及び出血描写のON/OFFと、ピンクローターやバイブやアナルパールでの玩具プレイを是非とも実装して欲しいですね。
左十郎さんはじめまして。僕もUSAエッチの続編出ると嬉しいです…出るんですかね( ^ω^)
ネット巡回していたら唐突にこの記事にたどり着いて、すんごい精読してしまいました。
本業プログラマで3DはBlender使い始めたばかりのひよっこなのでわからない所も多々ありますが、本格的に3Dモデリング始めたら、また参考に読み直したいです。
こういう技術的な事書いて下さってる文章は最高に好きなので、またお願いしたいです。
ところで、Blenderはやっぱりμ爛々さん的にはナシなのでしょうか?
お金に余裕がなかったので、実質Blender以外に選択肢がなかったのですが、3DS MAXを触る機会があった時に何から何まで違って意味不明でした……。
今からでも3DS MAXで覚え直した方がいいんでしょうかねぇ……。
雪風さん初めまして、拝読いただきありがとうございます。3Dを志す方が検索でうちのブログにたどり着いてしまう事もあるんですね。会社勤めでもなく、単なる趣味でもなく、生きるか死ぬかの個人事業的観点で3DCGを語ってるサイトはあんま無いと思うので、何か参考になればと思います(笑。
さて、「Blenderがナシ」…というのは?僕はあらゆる3DCGソフトをしゃぶり尽くしてから3dsmaxを最終的に選んだ…という訳ではありませんよ^^(趣味で昔MetasequoiaやStrataを、会社員時代に3dsmaxの他にmayaやXSIは使いました)。そもそも僕がBlenderを知った頃ってのは15年近く前でして、Blender自体が今とは似ても似つかないUIだった頃です。当時は海外のゲーム会社のインハウスツールとして公開されたばかりで、他の一般的な統合3DCGソフトと比較しても独特…というか難解なUIとされていました。今はAutodesk御三家に近い仕様になってて、出来る事も多いので評判が良いとは聞きます。ただ、自分はそれこそ15年来触ってないので良いツールなのか、3dsmaxと比べてどうなのか…さっぱり解りません。
—-
仕事で3DCG業界に就職する予定があるなら現場は8割方Autodesk系のソフトのスキルを求められるので、そういう予定があるのならば専門学校に行くか体験版などに齧り付いてでも覚えた方が良いんでしょうけど…趣味ならどんなソフトでも良いのでは。
ただ、3DCGは途方も無く時間が必要になる分野です。ツールの習得に必要な勉強時間もそうですし、動画1本作る為に必要な労力もそうです。人間のスキル以外でもソフト毎の得意不得意があり、Aというソフトなら1時間で出来ることがBというソフトだと3時間かかる場合もあります(Bというソフトはお金を払ってプラグインを買えば30分で済ませられる!…なんてパターンもありますけど)。
そういう観点では時間(とお金)をかけて習得するソフトは慎重に選らんだ方が良いんでしょうけど…Autodeskは学割は安いとはいえ、もう月額料金のしか無いですし、収益が得られない趣味での使用はそうとう厳しいですね。そもそも「3DCGやろ^^」って初めた後、その途方も無い作業量を知って止める人も多いですし、その篩にかけられたとしてもさらに「俺結局モデリングしかできね^^」ってなる人も多いです。モデリングしかやらないならMetasequoiaでいいよねって僕でもなります。
—
自分が作ってる作品のようなものは別に3dsmaxじゃなくても(それこそBlenderでも)作れるはずです。3dsmaxを使い続けるのは使用歴がもう10年以上で使い慣れており、自分がやりたい事・作りたい物がどの程度の時間で作れるか想定しやすいというのが大きいです(仕事なのでそれが解らないと死ねます)。そういった無形財産をかなぐり捨ててまで使いたい他のソフトが出てくるとしたら、頭とPCをUSB接続して脳内で想像しただけでモーションが付けられるとか、そういうのが出た時でしょうね(笑。