合成モードを指定する

前回はフェードインを実装した。
白い幕がうっすらと消えていき「霞の中から景色が現れる」ような演出だったが
今回はそれを「まばゆい光の中から景色が現れる」カンジにしてみよう。

なんだか難しいことを言ってるかんじだが…
まったく難しくはない。

『合成モード』を変更するだけだ。

合成モードとは画像をどのように画面に合成するかという指定である。
画像処理ソフトとして有名なAdobe Photoshopのレイヤーのブレンドモードとほぼ同じものだ。

合成モードを指定するには blend パラメータを使う。
合成モードの指定はイメージデーカーだけでなく、
何かを表示する機能を持つ全てのデーカーに対して行うことができる。


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

blend パラメータには合成モードの名前を指定する。
いままでイメージデーカーを作る際に特に合成モードの指定などはしていなかったが
自動的に通常合成(Normal)で合成が行われていた。

通常合成は、画像をそのままの見た目で画面に合成する合成モードだ。
他に加算合成、乗算合成などなど様々な合成モードがある。
FoooではPhoshopのレイヤーのブレンドモードに相当する全てのモードをサポートしている。
いくつか紹介しておこう。

Blend_Normal Blend_Add Blend_Sub
Normal
(通常)
Add
(加算)
Sub
(減算)
Blend_Multiply Blend_Screen Blend_Overlay
Multiply
(乗算)
Screen
(スクリーン)
Overlay
(オーバーレイ)

このように同じ画像でも合成モードを変えると印象ががらっと変わる。
幕をまばゆい光のようにするには、合成モードを”Add”(加算合成)に変更すれば良さそうだ。
それでは組み込んでみよう。


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);

  CreateFrame(name="コマ1", image="コマ1.png"
    , x=440, y=0
    , outline_shape="Fade", outline_color=RGBA(0,0,0,64), outline_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="台詞2"
    , style="小", text="<FONT style='つぶやき'>クククク…"
    , x=470, y=520, 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="幕");
  wait 500;

  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");
  WaitDecor();

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

幕がまばゆい光のようになった!
背景の絵がテキトーなのでちょっとわかりにくいけど…


Leave a Reply

*