窓に枠をつける

ウィンドウデーカーで作った「中身を動かせるコマ」には
枠がなかったことに気がついただろうか。
コマの枠はフレームデーカーの機能なのだから、当然といえば当然…
でもコマとして作っているのでやはり枠が欲しい…

Decor_Outline アウトラインデーカー

そんな時はアウトラインデーカーという特殊なデーカーを使う。
アウトラインデーカーは枠を表示するデーカーだ。
アウトラインデーカーを使えばフレームデーカーのものとまったく同じ枠を作ることができる。
アウトラインデーカーを作るにはCreateOutline命令を使う。


CreateOutline(name="枠"
  , w=405, h=720, shape="Fade", color=RGBA(0,0,0,64), thick=8);

さてさて、枠を作るのはこれだけで済むのだけれど
どーせなら窓と枠を1つの部品としてみなせるようにしておきたい。
そんな時は…そう、親子にすればいい。

ただウィンドウデーカーの子としてアウトラインデーカーを作ると、
アウトラインデーカーはウィンドウデーカーの表示制限機能によって見えなくなってしまう。
逆にアウトラインデーカーの子としてウィンドウデーカーを作ればよさそうではあるが
枠に窓がくっついているというのもイマイチ妙だ。
どちらかというと、窓と枠は兄弟なかんじがする。

Decor_Node ノードデーカー

そんな時に使うのがノードデーカーだ。
ノードデーカーは何も表示せず、何の機能も持たない最もシンプルなデーカーだ。
デーカーをひとまとめにしたい時に親として使う。
ノードデーカーを作る命令は…そう、CreateNodeだ。


CreateNode(name="コマ1"
  , x=440, y=0);

それでは組み込んでみよう。
全体としてコマとみなせるように名前も整理しておこう。


style 普通 { face="MS ゴシック", size=32 }
style 小 { size=24 }
style つぶやき { interval=100, speed=250, effect="Rise" }

method Main()
{
  CreateImage(name="背景", image="背景.png"
    , x=0, y=0);

  CreateNode(name="コマ1"
    , x=440, y=0);
  CreateWindow(name="コマ1/窓"
    , w=405, h=720);
  CreateImage(name="コマ1/窓/画像", image="コマ1.png"
    , x=222, y=324, ox="Center", oy="Middle", sx=110%, sy=110%
    , sampling="BieLinear");
  CreateOutline(name="コマ1/枠"
    , w=405, h=720, shape="Fade", color=RGBA(0,0,0,64), thick=8);

  CreateFrame(name="コマ2", image="コマ2.png"
    , x="OutRight", y=65
    , outline_shape="Vivide", outline_color=white, outline_thick=8);
  CreateFrame(name="コマ3", image="コマ3.png"
    , x=407, y=505, ox="Center", oy="Middle", sx=0%, sy=0%
    , outline_shape="Vivide", outline_color=black, outline_thick=8);

  CreateBalloon(name="台詞1"
    , style="普通", text="それにしても...<BR>腹(はら)が減(へ)った"
    , x=585, y=65, shape="Dumpling", w=300, h=185, tail=-30);
  CreateBalloon(name="コマ3/台詞2"
    , style="小", text="<FONT style='つぶやき'>クククク…"
    , x=63, y=15, shape="Rock", w=220, h=125, tail=160);

  CreateColor(name="幕", color=white, w=1280, h=720, blend="Add");

  Enter(to="背景");
  Enter(to="コマ1");
  Enter(to="コマ1/窓");
  Enter(to="コマ1/窓/画像");
  Enter(to="コマ1/枠");
  Enter(to="幕");
  wait 500;

  Move(to="コマ1/窓/画像", time=1000, x=182, step="DecSin");
  Opaque(to="幕", time=1000, alpha=0%, step="DecSin");
  WaitDecor();

  Enter(to="コマ2");
  Move(to="コマ2", time=800, x=780, step="Dec3");
  WaitDecor();

  Enter(to="台詞1", effect="Bound");
  WaitDecor();

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

  Enter(to="コマ3/台詞2", effect="Expand");
  WaitDecor();
}
YouTube Preview Image

やりたいことは単純なのに、デーカーの親子関係にこだわったせいで
ちょっと面倒な作業になってしまった。
しかしこのようにノードデーカーを使って親子関係を整理しておくことが
演出を強化していく上で後々効いてくるのだ。


Leave a Reply

*