画像を変形させる

ユニバーサルトランジッションやクロスフェードトランジッションでは
結局のところ画像をフェードさせることしかできない。
画像を変形させるような演出にはまた別の機能を使用する。

Transform命令

Transform命令はその名のとおり画像を変形させる命令である。


Transform(to="画像1", effect="LinearLeft", time=1000);

effectパラメータには、変形効果の種類を指定する。
かなりの種類があるのだが、いくつか紹介しておこう。

Transform_LinearLeft Transform_BlindLeft Transform_CurtainLeft Transform_ShaveLeft Transform_SlashH
LinearLeft BlindLeft CurtainLeft ShaveLeft SlashH
Transform_BoxCenter Transform_HoleCenter Transform_FanCenter Transform_TensileLeft Transform_Mosaic
BoxCenter HoleCenter FanCenter TensileLeft Mosaic

ユニバーサルトランジッションを使えば実現できるものも多いが
わざわざ画像を用意する必要がない分、場合によってはこっちの方が簡単だ。
さっそく使ってみよう。


method Main()
{
  CreateImage(name="画像2", image="画像2.png");
  CreateImage(name="画像1", image="画像1.png");
  Enter(to="画像1");
  wait 1000;

  Transform(to="画像1", effect="LinearLeft", time=1000);
}
YouTube Preview Image

他の変形も試してみよう。
メソッド化して簡潔に記述する。


method Test(string $effect)
{
  Transform(to="画像1", effect=$effect, time=1000);
  wait 1000;
  Transform(to="画像1", effect=$effect, time=1000, begin=100%, end=0%);
  wait 1000;
}

method Main()
{
  CreateImage(name="画像2", image="画像2.png");
  CreateImage(name="画像1", image="画像1.png");
  Enter(to="*");
  wait 1000;

  call @Test(effect="LinearLeft");
  call @Test(effect="BlindLeft");
  call @Test(effect="CurtainLeft");
  call @Test(effect="ShaveLeft");
  call @Test(effect="SlashH");
  call @Test(effect="BoxCenter");
  call @Test(effect="HoleCenter");
  call @Test(effect="FanCenter");
  call @Test(effect="TensileLeft");
  call @Test(effect="Mosaic");
}

YouTube Preview Image
※動画がなんだかガクついてるのは動画圧縮の問題?

トランスフォームは単に画像を変形させるだけで、
厳密には画像を入れ替える演出ではないが、主にトランジッション効果として使用する。


Leave a Reply

*