afx uni
アニメーションの撮影とエフェクト


エフェクトについて
エフェクトのKill-Ratio
【2】数々の障害


 さて、編成と計画が整い、いよいよエフェクト作業が開始されます。作戦行動開始と言ったところでしょうか。

 先のシミュレーションゲームの例えですが、目標地点に簡単に行軍でき作戦目標を達成できるゲームなどありません。必ず困難が待ち受けています。エフェクト作業も同様です。完成連番として納品するまでいくつもの困難が待ち受けています。

 どんなに高性能なハード・ソフトウェアを有していようと、それを上手く使えなければ、性能を充分に引き出せません。「重戦車」一両だけポツンとそこにあっても、使う人間が居なければどうにもならないのです。

 ここではどんな「重戦車」を有していようとも、使い方によっては「うまく働けない」結果を招いてしまういくつかの例を挙げてみます。これは「たとえ話」ではなく、現場でよく発生するもの・見かけるものです。


1・階調不足

 デジタルアニメーション(デジタル映像)の代表的な障害です。


階調を喪失して縞状になった完成画。特にキャラクターの肌の部分に注目。

 エフェクトの作業はグラデーション表現と切っても切り離せません。エフェクトはグラデーションで仕事すると言っても過言ではないくらい、グラデーションは重要な要素です。グラデーションを安定して供給できる基盤が無ければ、エフェクトは反って映像クオリティを下げる原因ともなり得ます。

 左図のように階調跳び(階調割れ・マッハバンド・バンディング)が表れてしまうと、なかなか除去できなくなります。絵がすでに階調を失っており、補完が利かないからです。

 フレアやパラを使用する段階から、階調跳びに対処する事が重要です。

 階調跳びの予防は難易度が高く、回避法は各社・各エフェクト作業者の腕の見せ所・秘策と言えます。

 また、暗い場面や明るい場面はもともと階調が乏しいので、簡単に障害が表れます。ヒストグラムを見ればどのくらい狭い輝度の範囲で絵を作っているかが解ります。

 そのような場面で色調補正を安易に行うと状況はどんどん悪化します。例えPCモニタで表れなくても、メディア変換後(DVD化など)に表れる事もよくあります。

 以下は色調補正時における階調欠損の模式図です。とても簡単な構造です。


 元の階調<Value>


 補正で1/3に階調を圧縮、端数は切り捨て<TRUNC(Value/3)>(注:式はグラフ作成に使ったAppleWorks表計算のものです)
 端数を切り捨てた理由は0-255の階調には整数しか存在しないからです。(RGB8ビット・各256階調の場合)


 補正で3倍(元の大きさ)に伸長<TRUNC(Value/3)*3>
 階調が階段状に変化、1,2,4,5,7,8,10,11の情報が欠損

 階調が豊富にあるように見えても、このように度重なる補正処理を行うと、その豊富な階調を使い捨てる事になり、結局は階調跳びが発生してしまいます。AfterEffectsのフィルタ「トーンカーブ」などは気軽に補正ができてしまい、階調損失に気付かない事が多いので、注意が必要です。フィルタで何度も色調補正したり、パラやフレア素材をいくつも重ねるのは、マッハバンド発生の大きな原因になります。

 RGB各8bit=1670万色は単なる計算上の答えでしかありません。「1670万色もある」というのは事実ですが、「どんな状況においても1670万色ある」訳ではありません。モノトーンで半分の明るさのシーンでは、1670,000階調どころか、128階調しかありません。例えば、そんな階調の少ないシーンにおいて以下のようなフィルターワークを行った場合、マッハバンドが発生する事は容易に想像できます。


1つのレイヤーに何回も色調補正を処理した、いかにもヤバそうなフィルターワーク。補正は1回で終わらせた方が良いですね‥‥。作業者の「迷い」がフィルターワークに反映されてしまっている悪い例です。

 私が自分自身およびスタッフの皆に対し基準として設定しているのは、代表的なメディア(テレビ放送、VHS、DVDなど)とPCモニタの両方でバランスのとれている品質です。そのまず第一歩がこの階調跳びの抑制です。抑制の技術はあくまで限られた諧調を上手に使う事であり、マッハバンドの発生を防ぐためにむやみにノイズを合成する事ではありません。
 そうした品質の制御は、ストリーミングムービーのような低ビットレートの映像に変換した際にも絶大な効果を発揮します。(もちろんSorensonなどの高品位な圧縮技術があってこそですが…)


2・素材の差し替え・リテーク

 自分が作業ミスを犯すのと同様、どの段階でもミスは起こります。エフェクトは最終段階に位置している為、前段階での素材ミスや変更があった場合、エフェクト作業もその変更を反映し直さなければなりません。

 もちろんミスは起こさないように各セクションで管理しなければなりませんが、そうしていても必ずミスは発生します。むしろ、そうした前段階でのミスや変更への対処を想定せずに、エフェクト作業をしてしまう事のほうに迂闊さを感じます。

 現実にある話で例えますと、バイクの整備性が上げられます。
 普通に走っている分には良いのですが、ちょっと整備しよう(プラグの交換など)とすると、外装やタンクを全部外さないと作業ができないという例です。整備性を欠いた設計の典型です。しかも車載工具では外装は外せない…というオマケつきです。

 エフェクト作業においても、素材の差し替えに対応している必要があります。素材を差し替えたらエフェクト作業のほとんどをやり直し…という作り方は、エフェクト作業者にも非が存在します。整備性を欠いた作業をしてしまった点において…です。

 リテークへの対応も同じ事が言えます。

 例えば画面ブレへのリテークが発生したとします。「全体的にもう少し小さく」と言う内容です。
 たまたまそのカットは手作業で1つ1つ位置キーフレームを設定したカットで、リテークへの対応には作業を一からやり直し…という状況になってしまいました。しかも20秒=600フレームあり、レイヤーごとに位置キーフレームが別々に設定してあるという、直すとなると悲惨な状況になる構造です。
 画面ブレの大きさにリテークが出るのは良くある事です。20秒と言うカット尺も素材を受け取った時点でわかっています。…なのに、そのような「組み方」にしてしまった…。これはエフェクト作業者に非があり、リテークを出した人間を恨むのは、「逆恨み」というものです。

 そのような「危険な匂いのするカット」は、動的にパラメータ等の設定を変更できる工夫=整備性が必要です。その為のスキルを身に付けておくのも、作業者には必要な事です。

 以下の図の四角を、制御するオブジェクト(レイヤーなど)と考えて下さい。それぞれ18,20,30の値がセットされています。

 この値を一律1.1倍にしなければならなくなったとします。その場合、それぞれのオブジェクトの値に対してひとつひとつ再設定する必要があります。18を19.8、20を22、30を33に再設定してまわらなければなりません。

 「再設定する必要」の原因の多くは「リテーク」、つまり「やり直し」です。作業にリテークはつきものですから拒絶する訳にはいきません。ではどのように作業しておけば、リテーク時にできるだけ労力を払わずに済むのでしょうか?

 答えはとても簡単です。「簡単に修正できる」構造を、あらかじめ作っておけば良いのです。以下のように組んでおく事でそれが実現できます。青い丸の存在がキモです。

 この場合、最初に作るオブジェクトは、青丸が増えて5つになってしまいますが、修正する場合に「1か所だけを直す」だけで全てが修正できます。青丸の値を「1」から「1.1」に修正するだけで、全てのオブジェクトの値が動的に(かつ、瞬時に)修正されるのです。

 青丸が「1.1」になるのと同時に各オブジェクトの最終出力値が(19.8),(22),(33)に変わりました。とてもラクチンですね。ほんのちょこっと工夫して、ほんの少しだけ回り道するだけで、「もしもの時」の損失(修正作業の手間)を最小限にとどめる事ができます。

 この方法は「プログラム」の世界ではよく用いられる方法です。AppleScriptを例に取ると以下のような感じになります。

例1)

set a1 to 10*2 --20
set a2 to 10*50 --500
set a3 to 10*100 --1000

10を20に変更せよ!

set a1 to 20*2 --40
set a2 to
20*50 --100
set a3 to
20*100 --2000

面倒です‥‥。
今回は3か所で済んだけど、もし
100か所あったらどうするんだろう‥‥?

例2)

property x : 10
set a1 to x*2 --20
set a2 to x*50 --500
set a3 to x*100 --1000

10を20に変更せよ!

property x : 20
set a1 to x*2 --40
set a2 to x*50 --1000
set a3 to x*100 --2000

3か所だろうが100か所だろうが、一カ所直すだけで全部直ります

 こうした工夫を作業に取り入れる事で「整備性」は格段に向上します。例えば、AfterEffectsならば、エクスプレッションやプリコンポーズを用いる事で容易で実現できます。

3・マシンのトラブル

 奇麗にレンダリングできたファイルをサーバに送ろうとしたら上手くいかなかった、他のアプリケーションで読み込めなかった‥‥などの障害は誰もが経験済みだと思います。エフェクト・撮影作業はすべて終わっているのに、その先の行程に進めないという障害は、スケジュールが切羽詰まっている時には、かなり堪えます。

 マシンやシステムのトラブルといっても、環境各々の事情がありますからひとくちに「こうすれば大丈夫」という対処法は存在しません。また対処法も、システム管理者が不在の会社、個人経営のフリーランス、ユーザー管理されてほとんど何も権限が与えられていない場合など、トラブルを取り囲む状況は様々です。

 しかし「何か知らないけど、動かなくなった」と繰り返すだけでは、たとえシステム管理者が在籍していてもトラブルの克服には多くの時間が浪費されてしまいます。その間にもスケジュールは刻一刻と消費されていきます。

 自分の作業環境と一番長く接しているのは自分ですから、日頃からマシンの挙動をよく観察して、何かおかしな挙動が起こった時には「異常な挙動を示す部分」を把握できるようにしておきます。レーサーがハンドルとギアさばきだけでなく、タイヤやサスペンションなどの挙動を感じながら走るのと同様に、ソフトウェアのオペレートだけでなくシステムやハードウェアの挙動を常に意識して作業する事が大切です。

 仮に異常な挙動と遭遇した時に、「動かなくなったのはバグだ」と簡単に結論付けるのはいただけません。もし「バグ」だと判断するのなら、「どのような状況が成立するとバグが発生するのか?」を理路整然と説明できなければ、何の役にもたちません。システム管理などのサポート担当者に一言「バグだ」としか説明できないようでは、何も説明していないのと同義です。

 確かに「説明しようも無い、突発的なバグ」も世の中には存在します。例えば、前触れも無くいきなりPhotoshopCSがストンと落ちるのは、端から見てると何が起こったのか皆目検討つきません。しかし、そうした特殊な例は全体の確率から鑑みれば稀です。エラーが発生するとすぐに「バグだ!」で片付けてしまうのは、あまりにも軽卒な解釈であり、「障害克服への障害」となってしまいます。

 では、どのようにしたらマシン(環境)のトラブルを克服できる、または分析できるようになるのでしょうか? ‥‥こればっかりは経験(ぎゃふん)で覚えていくしか無いのが現状ですが、仕事上の経験蓄積に待たずとも場数を増やす良い方法があります。

 「自分の家のマシンをいじりまくる」

 ‥‥です。「高速」を目指してカスタマイズするもよし、「快適」を目指してカスタマイズするもよし、「万能」でも「貯蔵庫」でも何でもかまいません。「自分の自由になるマシン」をいじり倒して「壊してみて」ください。できれば、大切なデータの数十GBは失っていただき、「もう2度とこんな目には遭いたく無い」と、システムをゼロから再インストールすると最高です。そんな事を繰り返しているうちに「クラッシュ」に免疫ができて、「マシンのキモチ」がだんだんわかるようになり、「そろそろシステムのメンテが必要だな」とか「ハードディスクが逝きかけてるな」とか「ハブが死んだ」などの、種々の状況を少なからず汲み取れるようになります。また自宅に小規模LANを構築するのも、良い勉強になります。

 ある程度自立的にマシンの面倒が見れるようになると、いざマシンのトラブルが発生した時に、「自分の面倒見れる範囲か否か」の見極めがごく短時間でできるようになります。もし自分で対応できるトラブルならば、即座に復旧して作業に戻れます。

 こうしたAfter Effects等のソフトウェアオペレート範囲外の技術も、映像作りには欠かせないのです。


1・まとめ

 以上、代表的な例でした。まだ色々ありそうですが、とりあえずこの辺にしておきます。

 映像を「最後まで作り上げる」為には、「こういう絵が作りたい」「こんなプラグインがかっこよくていい!」という表立った内容の他に、「縁の下の技術」も非常に重要だと言う事がおわかりだと思います。

 どんなに高性能なソフトウェアでカッコよい効果を付け加えても、「主人公の顔の肌部分にしましまが見える」のでは、すべて台無し・帳消しです。

 自分の「重戦車」の「火器(大砲)」の調子だけでなく、「砲弾」の管理や「エンジンやトランスミッション」の調子も面倒見て、いつでもベストの「戦える」状態を保っておく必要があります。




【1】目標を定める←
→【3】Kill-Ratio キルレシオとは?

afx uni

Integer9 INDEX

Google
Web integer9.ezqnet.com


h.ezura / afx / ezqnet