動く漫画を作ろう

さて、ここまでの説明で『動く漫画』を実現するために必要な
基本的な知識はおおよそ整ったように思う。
ではではいよいよみなさんお待ちかね。
Foooスクリプトを使って実際に『動く漫画』を作ってみよう。

まず素材を用意しておく。

Fooo_CreateComic_Back Fooo_CreateComic_Frame1 Fooo_CreateComic_Frame2 Fooo_CreateComic_Frame3
背景.png コマ1.png コマ2.png コマ3.png

『動く漫画』は4つのステップで作っていく。
順に詳しく見ていこう。

STEP1: デーカーの作成

最初のステップは、デーカーの作成だ。
配置などは考えず、どばばーっと書き連ねてしまおう。


method Main()
{
  CreateImage(name="背景", image="背景.png");
  CreateFrame(name="コマ1", image="コマ1.png");
  CreateFrame(name="コマ2", image="コマ2.png");
  CreateFrame(name="コマ3", image="コマ3.png");
  CreateBalloon(name="台詞1", text="それにしても腹が減った");
  CreateBalloon(name="台詞2", text="クククク…");

  Enter(to="背景");
  Enter(to="コマ1");
  Enter(to="コマ2");
  Enter(to="コマ3");
  Enter(to="台詞1");
  Enter(to="台詞2");
}

Fooo_CreateComic_Step1

ぐちゃぐちゃだが…配置を無視しているので当然である。

STEP2: 配置

次のステップは、配置の調整だ。
配置の調整は、x, y, tailパラメータなどにまず適当な値を入れて
実行してみては微調整を繰り返す地味な作業である。


method Main()
{
  CreateImage(name="背景", image="背景.png", x=0, y=0);
  CreateFrame(name="コマ1", image="コマ1.png", x=440, y=0);
  CreateFrame(name="コマ2", image="コマ2.png", x=780, y=65);
  CreateFrame(name="コマ3", image="コマ3.png", x=100, y=355);
  CreateBalloon(name="台詞1", text="それにしても腹が減った"
    , x=620, y=110, tail=-30);
  CreateBalloon(name="台詞2", text="クククク…", x=485, y=525, tail=160);

  Enter(to="背景");
  Enter(to="コマ1");
  Enter(to="コマ2");
  Enter(to="コマ3");
  Enter(to="台詞1");
  Enter(to="台詞2");
}

Fooo_CreateComic_Step2

見た目が整った。

STEP3: 順序付け

第三のステップは、表示順の整理だ。
wait文を使って、Enterに時間差をつけていく。


method Main()
{
  CreateImage(name="背景", image="背景.png", x=0, y=0);
  CreateFrame(name="コマ1", image="コマ1.png", x=440, y=0);
  CreateFrame(name="コマ2", image="コマ2.png", x=780, y=65);
  CreateFrame(name="コマ3", image="コマ3.png", x=100, y=355);
  CreateBalloon(name="台詞1", text="それにしても腹が減った"
    , x=620, y=110, tail=-30);
  CreateBalloon(name="台詞2", text="クククク…", x=485, y=525, tail=160);

  Enter(to="背景");
  wait 1000;

  Enter(to="コマ1");
  wait 1000;

  Enter(to="コマ2");
  wait 1000;

  Enter(to="台詞1");
  wait 1500;

  Enter(to="コマ3");
  wait 1000;

  Enter(to="台詞2");
  wait 1000;
}
YouTube Preview Image

もうかなり漫画っぽくなってきた。

STEP4: 演出付け

第4のステップは、演出付けだ。
コマに動きをつけていく。


method Main()
{
  CreateImage(name="背景", image="背景.png", x=0, y=0);
  CreateFrame(name="コマ1", image="コマ1.png", x=440, y=0, alpha=0%);
  CreateFrame(name="コマ2", image="コマ2.png", x="OutRight", y=65);
  CreateFrame(name="コマ3", image="コマ3.png", x=407, y=505
    , ox="Center", oy="Middle", sx=0%, sy=0%);
  CreateBalloon(name="台詞1", text="それにしても腹が減った"
    , x=620, y=110, tail=-30);
  CreateBalloon(name="台詞2", text="クククク…", x=485, y=525, tail=160);

  Enter(to="背景");
  wait 1000;

  Enter(to="コマ1");
  Opaque(to="コマ1", time=1000, alpha=100%);
  wait 1000;

  Enter(to="コマ2");
  Move(to="コマ2", time=1000, x=780);
  wait 1000;

  Enter(to="台詞1");
  wait 1500;

  Enter(to="コマ3");
  Zoom(to="コマ3", time=1000, sx=100%, sy=100%);
  wait 1000;

  Enter(to="台詞2");
  wait 1000;
}

あちこち手を加えているが、何をしているのかは説明せずともだいたいわかるだろう。
ちなみにsx, sy, angle, alphaパラメータはCreate系命令でも指定することができる。

ひとまず完成だ!

YouTube Preview Image

まだまだかなり荒削りだが『動く漫画』を作る手順はざっとこんなかんじである。
随分面倒なんだな…と思っただろうか。
思ったより簡単だな…と思っただろうか。

こんにち、このような演出はFLASHやAfterEffectsのような
タイムラインをGUIに持つエディタを使って作成していくのが一般的だ。
そんな演出を全部スクリプトで構造的に書いてしまえるというのがFoooの面白い特徴だろう。


Leave a Reply

*