に投稿

[PCコンテ10] ページ毎の秒数の集計方法

今日は、ページ毎の秒数の集計方法に付いて説明します。

ページ毎の秒数を集計してフッタ領域に表示するためには、かなり特殊な方法で、各カットの秒数を予め設定しないと実現出来ません。つまり、各カットの秒数を変数として代入するような方法でしか実現出来ないのです。

そのため、単に秒数の欄に秒をキーボードで入力する方法とは異なり、多少面倒な作業が必要になります。

もし、各ページの合計秒数が必要ないのでしたら、前回までの方法で全体の合計秒数を求めるのが簡単にできるので、ページ毎の集計はやめた方が良いと思います。

仕事の場合などは、後で手描きでそこだけ集計しても良いのですが、なんかそこだけ手書きはカッコ悪いので一応自動化する方法を見つけ出しました。以下、その説明です。

●まずは1ページの2倍程度の秒数の変数を用意する

いきなり変数なんていうプログラムで使うような用語が出ていますが、これを設定しないと「本文」と「全てのページで共通であるフッタ」という全く異なる2つの領域を超えることができません。

いや……、表のアドレス直打ちでもフッタ内に本文内の表の計算を設定することはできます。しかし、フッタは全てのページで共通のものが使用されます。その方法では、全てのページで同じ結果が表示されるだけです。

変数の場合、その各ページの変数の状態に応じて、フッタにその変数の計算結果が表示出来ます。

したがって、マクロで本格的にプログラムをやってしまう方法よりは簡単に済まそうとしても、変数くらいは使わないと話になりません。

1ページの2倍程度の変数を用意する理由は、1ページ分の変数だけ用意するだけでは不都合が発生するためです。

たとえば、1ページは5行のコマがありますので、 sec1 から sec5 という5つの変数を用意したとします。

sec1 + sec2 + sec3 + sec4 + sec5 = ページの合計

として、求めたとします。最初はこれでいいのですが、もし途中でその中の1カットをカットしたとします。

すると、行がつめられて2ページ目の sec1 が1ページ目に移動してきます。その時点で、フッタより前に、sec1 への代入が2箇所で行われてしまうことになり、1回目の代入値が消失します。

したがって、合計が間違った結果になります。

あらかじめ、変数を sec1 ~ sec9 まで用意したとしたら、そのリスクは軽減されます。あくまで軽減ですが…。

変数が 9 個あれば、間のカットを削除してつめられたとしても、同じ変数が同じページに知らないうちに入ってしまうリスクは少ないというわけです。

まぁ、同じページに同じ変数がこなきゃいいわけで、その辺は、自分で注意していればなんとかな るものです。

●次に、秒数を変数に代入しつつ秒の欄に入力する

それでは、今ある本文1ページ目の「秒数」の欄に順次秒数を入力していきましょう。

ただし、前回のようにただ表に手入力していっても変数と結びつけられませんのでダメです。

今回は、変数に秒数を代入しつつページの「秒数」の欄に入力する必要があります。

それでは、ここまでの作業を実際に行う方法をムービーで御覧下さい。

例によって Flash ムービーなので PC で閲覧した方が良いと思います。

ムービー : 1ページに秒数の変数をsec1からsec9まで作り、その後秒数の欄に設定する方法 (2.3MB)

●フッタ領域に1ページ分の秒数の合計を集計表示する方法

ムービーでは、合計秒数を入力する表組みまででした。その続きを説明します。

秒数は、アニメーションの場合「秒」と「コマ」に分解して記入するのが普通です。しかし、このPCを利用したコンテ作成システムでは、全ての秒の欄をそういう風に組むと計算が大変になりますし、50ページ位のコンテの場合、それらの(秒とコマを分解して計算する)処理が重くて話になりません。秒とコマを分けることはそれほどまでに重要では有りません。現に全て小数点の尺しか使わない監督さんもいるわけですし…。

したがって、このシステムでは「秒数」の欄は普通の小数点付きの秒数で入力することにしています。

1ページの合計も、同様に小数点付きの秒数にした方が計算が軽くなりますが、ここはあえて、(秒+コマ)の表示に挑戦してみます。(ちなみに、自分が仕事で描いているコンテは小数点付きの尺しか使用していません。仕事はスピード優先ですから…。)

秒数を分解する方法として、普通のプログラムであれば、整数部を取り出すのは int などへキャストすれば簡単に求められます。しかし、OpenOffice の 表計算ソフトCalc では関数のINTが使えるのですが、 Writer では INT がなぜか使えません。

ためしに =INT(1.5) と表のセルに入力してみると、そのまま 1.5 と表示されます。普通表記が間違ってたらエラーがでるはずなのでまったく謎です……。

いろいろ調べた結果、四捨五入の round が使えることがわかりましたので、それでやっています。

他にも便利な命令があるかもしれません。前述のように普段自分がやっている作業では(秒+コマ)では無く単に(秒)のみで表示しているので、この方法を調べたのがついさっきの事です…、ブログを書くために適当に見て目に止まった命令を使っているに過ぎません。もし、もっと良い方法があったら教えてください。

それでは、ムービーを御覧下さい。

ムービー:ページのフッタ領域に(秒+コマ)の形式で1ページ分の合計尺を出す方法(1.3MB)

●2ページ目以降でも正常な合計を出すために重要なこと

さて、ではまだ1ページ目だけなので、2ページ目を入力したときに旨く表示されるかはわかりません。

フッタの特性は全てのページで同一の書式で出力することですから、もしかしたら、2ページ目も1ページ目と同じ結果になるかも知れません。

では確認してみましょう。ビデオを御覧下さい。

ムービー:2ページ目以降でも正常に表示するために重要なこと(1.3MB)

さて、どうでしたか?

この方法で重要なのは、1ページ毎に変数のリセットを行うことです。このリセット作業が面倒ですが、これしか方法はありません。

私は、全部コンテを書き終わってから、納品の前にこのリセット作業……、つまりページの最初のセルのどこかに全ての変数を0初期化するための作業を行なっています。あ…、リテイクのことも考えて、この初期化をする直前のバージョンも別名で保存しておきますけどね……。

OpenOfficeのマクロは、マニュアルすら読んだ事ないんだけど、誰か分かる人がいたら、ページ内の特定のセルのみ集計するようなマクロ作ってくれないかなぁ……。

次は、いよいよ絵コンテに絵を入れる作業なのですが、新 AniLaPaint 発表予定の10月まで数ヶ月しか無くて間に合うのか不安なので、これからはブログ更新は隔週程度にします。