2009/2/14 (土)
モジュールの整備〜ツールキットの確立
プログラムを本職としている方々と違い、私のような映像畑の人間が「ヘルパーツール」程度のプログラムを作る時は、「つれづれなるままに」書く事が多いのです。気ままに作れて短期で完成する‥‥のが利点ではありますが、異なった視点で見れば「場当たり的で無計画」とも言えます。
10年以上スクリプトを書き続けていると、「前にも似た様なのを書いた事あるなあ‥‥」と言うルーチンを何度も書き直す事があります。書いた事があるのなら再利用すれば良いのでしょうが、(自分で言うのもナニですが)管理がずさんなのでどこにあるのか解りません。もし探し出したとしても、メインルーチンに組み込まれていて分離がめんどくさかったり、そもそもスクリプト文書き方そのものが場当たり的で内容を整理するのに手間取ったり、‥‥まあ、情けない状態なのです。
そんな事から、4〜5年前から「外部スクリプトモジュール群」を作って、「スクリプト本文は骨組み作りに徹して、肉付けは各種外部スクリプトモジュールでおこなう」取り組みをしている‥‥のですが、外部スクリプト自体の管理ができていなければ、やはり結果は以前と同じ「グダグダな状態」になります。
なので、最近は「使い易いスクリプトモジュールのシステム」の整備と保守に力を注いでいます。映像制作のスクリプトを作る際に有用な新しい「ツールキット」(各種モジュールをひとまとめにしてパッケージしたもの)を確立する取り組みです。
ツールキットを自作する際に気をつけているのは、入出力のスタンダードを(大まかでも)決めておく事‥‥と、何と言っても「ヘルプ〜使用法説明」の記述です。自分で書いたものでも、数年経てば細かい仕様など忘れてしまいますからネ。
現在編纂しているツールキットの内容は多岐にわたります。いくつか挙げると‥‥
・フォルダの中の連番ファイルの1番目を探すルーチン(対象外ファイルは除外しつつ)
・フォルダの中の連番ファイルの数を数えるルーチン
・連番のカウントと実際のファイル数の一致を調べるルーチン
・連番ファイルを任意コーデックのQTファイルに変換するルーチン
・QTファイルにチャプターを打ち込むルーチン
・QTファイルの各種情報を取得するルーチン
・尺などの情報をデータベースに照合するルーチン
・数字から0+0の尺書式へ変換するルーチン
・30fpsのフレーム数を24fpsへ読み変えるルーチン〜その逆もあり
・書式を正式化するルーチン〜「1C」を「001c」に変換するとか
・バーコードをクエリ文字列(=カット名正式書式)へ変換するルーチン
・ファイル名から各種情報を取り出すルーチン
・辞書クラスの配列を任意キーのバリューでソートするルーチン(AppleScriptには無いんだよね、こういうのが‥‥)
・プルダウン時にAfter Effectsのレンダリング範囲を微調整するルーチン
・After EffectsのアイテムIDからアイテムオブジェクトそのものを取得するルーチン
・タイムシートなどの文字列からタイムリマップキーデータを生成するルーチン
・ログを書き出すルーチン
‥‥など、挙げればきりがないほどです。「挙げればきりがない」ものを放置してれば、そりゃあ、収拾がつかなくなるわな。
ツールキットを構築し始めた最初のうちは、整理整頓のほうに手間取って「逆に開発が進まない」と感じる事もありましたが、ある程度出来上がって来ると、開発自体が楽になり、さらにはアップデートの効率も良くなりました。
ただ、いまはまだ移行の中途段階で、色々と悩ましい事もあります。特に今でも稼働中のxtoolsは旧スクリプトモジュールが必要不可欠なので、新ツールキットへの移行が面倒です。‥‥まあ、がんばるしか無いですけど。

