Morph

 画像変形する Morph / Warp についての事柄をまとめます。


Morp のあらまし

 Morph は、二つの画像の間を滑らかに補間すること。犬の画像から熊の画像へ補間を行うと、その中間の補間画像は、犬と熊の奇妙なミクスチャになります。また、順番に補間画像をつないで動画にすれば、犬が熊に変身していく姿を見ることが出来ます。

 単に、二つの画像が滑らかに繋ぐだけだと Morph とは呼ばれません。犬から熊への Morph ならば、犬が熊に変身していくように外形の変形を行う必要があります。また、犬の顔は熊の顔に移行しなければなりません。つまり、画像カラーの移行も必要です。そこで、Morph のために、外形の補間と画像カラーの補間の二つの補間を行います。

 カラー画像の補間は、開始画像と、終了画像の対応する点同士のミックスの割合を順に変えていけば実現できます。クロスディゾルブと呼ばれている手法です。

 外形の補間は、結構難しくて、開始画像、終了画像の対応する部分を何らかの方法で指示し、その位置を対応点同士の位置を滑らかに繋いでいきます。この外形の変形を Warp と呼んでいます。
 補間の方法は色々考えられるのですが、一般的に使われているのは、メッシュモーフ(ワープ)とフィールドモーフ(ワープ)の二つの手法です。
 メッシュモーフは開始画像と終了画像を1:1対応する基本図形(三角形とか四角形)に分割しその位置の変化を補間します。基本的には三角形のテクスチャレンダリングを行うので比較的付加少なく実現できます。ただ、図形の分割が図形を敷き詰めるように行われる必要があります。補間中の図形も同様です。これが守られないと滑らかでない、珍妙な画像になることがあります。
 フィールドモーフはジオメトリックなモーフで、座標を分割するのではなく、対応点を示す図形(多くの場合は線分)を指定し、それらと着目点との距離によって、図形の影響を按分して座標を決めるます。
 変形の仕方はメッシュモーフよりも大胆にできます。制御図形が多くなると処理は重くなります。


Warp !!

 Warp は、Morph の外形の補間部分を使って、形状を変形する技術です。単に、カラーの補間をやめればいいだけなので、殆どの Morph ソフトは Warp 機能を持っています。
 開始画像だけでも Warp 処理は出来るのですが、対応ポイント設定のための参照として終了画像を指定できると便利ですが、開始画像しか指定できないソフトもあります。


ランダムメモ

手元にある Morph ができる ソフトウェア

  • Morph1.5

     相当昔に手に入れたものです(copyrightは、1992,1993)。「CD-Morph」という洋書についてきたものです。MorphとWarpのクオリティは十分。ストーリーボードでシーケンスを定義して全体で長いアニメーションを作成できます。
     インタフェースはシンプルで使いやすいし、複雑な設定も少ないので理解しやすい。各シーケンスごとに Warp / Morph の選択、大雑把な Ease (変化の仕方)の設定が出来ます。
    キーポイント(対応点)の各点が座標変化と、カラー変化の Ease の設定ができます。

  • VideoCraft

    ストーリーボードにシーケンスを入れていく形でアニメーションを作ります。各シーケンスは三段にスタックしたエフェクトをかけることができ、その中に、Morph と Warp が組み込まれています。これも古いソフト(1995)。前進はPhotoMorphというMorphソフトでした。
    これもたぶん、メッシュモーフ。モーフのクオリティは問題なし。アルファチャンネルを含んだ画像をそのままMorphできるので背景合成などに使えます。三段エフェクトの他の段でオーバレイを行えば、背景合成も簡単に行えます。また、ダイナミックモーフ(動画を使ったモーフ)もできます。
    ただ、Morph / Warp でのキー打ち画像が小さいので作業しにくいのが難点。 簡単な画像処理も付属しているので、オブジェクトの切抜きなどを除けば、あらかたの処理はこのソフトの中で行えます。

  • VR xTransit

     名前が示すように二つの画像(あるいは動画)のトランジションを行うソフト。トランジションをストーリーボードに並べてアニメーションを作るソフトです。このトランジションの一つとして、Morp と Warp が選べます。トランジションのリンクという機能で前後のトランジションのトランジションから画像を引用できます。
    たぶん、メッシュモーフ。手元のパソコンでは表示メニューが使えないので、やっと動いている状態。古い(1996)から仕方がないです。
    作成したアニメーションは、すべて、メモリ中に置くので、大きなアニメーションは苦しいです。

  • WinMorph

     たぶん、フィールドモーフ(ジオメトリなモーフ)だと思います。変形はスムーズです。基本的にはモーフとワープですが、メッシュモーフではないので大胆な変形ができます。対応点の指定を図形で行い、対応関係を編集できるなど、複雑な機能が搭載されています。
    Videoに対するMorph/Warpも可能。
    もっと、触らないとわからないです。まだ少ししか使っていません。
    フリーウェア。

  • SmartMorph

     メッシュモーフです。機能は静止画のモーフとワープ。シンプルでわかりやすいソフトです。メッシュが正常でなくなると、警告が出ます。 現在は開発が止まっていて、後継のソフトはPopizmというワープ・モーフを含むビデオ編集ソフトです。
    基本的には AVI ファイルを出力。連番ファイルも出力可。 まだ少ししか使っていません。

  • SqirlzMorph

     たぶん、メッシュモーフ。ただ、変形が非常に滑らかなのでメッシュモーフとは言い切れないのですが…。
    静止画のモーフとワープ。任意枚数の画像でモーフができます。A-B-Cの順にモーフするなどです。まだ少ししか使っていません。

  • FotoMorph

     メッシュモーフです。アニメーションは、シーケンスの連続で定義され、各シーケンスはMorph / Warp / Pan / Transition の中から選びます。部品ではなく完成したアニメーションを作れるところが利点ですね。

変形を試してみた

 各ソフトで単純な図形の変形の様子を試してみました。変形の元になるのは右のような単純な図形です。
 Morphでは判りにくいのでWarpで動画を作成し、AnimationGIF に変換してあります。
 変形のポイントは1点だけにして画像の左端近くやや上の点右端近くやや下の点に対応させています。

Morph1.5  メッシュモーフで三角形を基本に直線的(リニア)な変形をしていることがわかります。クオリティをBetterにしたので、アンチエリアシングがかかっています。
Xtransit  これも、メッシュモーフで直線的な変形。Morph1.5に良く似ています。
SmartMorph  これも、また、メッシュモーフで直線的な変形。アンチエリアシングを指定しましたが、それでもやや、ギザが出ています。
FotoMorph  メッシュモーフのなので、上のソフトと同じような傾向。枠と影はデフォルトのため設定で出ています。
SqirlzMorph  メッシュモーフだと思いますが、変形が滑らかです。多角形ではなく、スプラインパッチを使っているのかも?と、想像しているのですが…。
WinMorhph  このソフトだけがフィールドモーフ。点ではなく、線で画像の対応(変形)が決まります。くの字状の制御図形を変形しています。外側に四角で枠を固定しないと、画像全体が回転してしまいます。
ともかく、スムースです。
Morph1.5 を使う

入力ファイルの形式: 静止画のみ
*.bmp; *.dib; *.dcx; *.gif; *.jpg; *.pct; *.pcx; *.tga; *.tif; *.wmf; *.wpg;
アルファチャンネルの扱い:アルファチャンネルは扱えない。 (32bit-Bmp: 正常に読めない / tga: アルファチャンネル無視)
// 開始/終了は同一サイズのファイルしか読み込めない。

出力ファイル: 動画: avi/flc/flic
他連番ファイル bmp/dib /dcx/eps/gif/jpg/pcx/pct/tga/tif/wmf
静止画:bmp/dib /dcx/eps/gif/jpg/pcx/pct/tga/tif/wmf

 開始/終了イメージ上での特殊なキー操作。

  • SHIFTキーを押すと、押している間だけ Hand ツールとして働く。
  • Adjusting ツールで CONTROL を押しながらキーポイントをクリックするとテンションダイアログが開く。
  • Magnifying Glass ツールで右クリックするとズームアウトする。
  • Adjusting Tool 以外が選ばれているとき TAB を押すと、Adjusting Tool に切り替わる。Adjusting Tool が選らば得れているときに TAB を押すと Key Point Tool に切り替わる。
  • Delete キーは、削除機能
  • CTRLキーを押しながら、キーポイントを作ると、作ったキーポイントを直線で結ぶ。
  • Adjusting Toolでキーポイントをクリック、あるいは、ドラッグで囲むと選択解除。

VideoCraft を使う

入力ファイル: 動画: avi
静止画:bmp / dib / iff / jpg / pcc / pcx / ras / rgb / rle / tga / tif / wpg / pcd
アルファチャンネルを扱える bmp / dib /

出力ファイル: 動画: avi アルファチャンネルは出せない。連番ファイルが出ないので、アルファチャンネルの出力が難しい。
静止画(プレビュー出力時): bmp / dib / tga / tif
素材の出力(静止画): bmp / dib /eps/iff/jpg/pcx/ras/rgb/rle/tga/tif/wpg/ alpha が 出せるのは、 bmp / dib / tif

動画のアルファチャンネルを動画として出力できれば、マスク設定で対応できる。
アルファ付きの動画は内部では有効なので、これをマスクムービーにして、黒/白静止画に対してトランジション(アルファ)を掛ければよいはず。

VR xTransit を使う

最初/最後のイメージウインドウ でのキー操作

  • コントロールポイント追加: [Ctrl] 押しながらマウス左クリック
  • コントロールポイント削除: [Ctrl] 押しながら"D"又は [Del] キー
  • コントロールポイント設定/修正:変えたいポイントをダブルクリック
  • コントロールポイント表示切り替え: [Ctrl] 押しながら"T"
  • 拡大:[Alt]押しながら"Z"
  • 縮小:[Alt]押しながら"O"
  • 拡大の割合を再設定:[Alt]押しながら"A"
  • イメージに合わせてウインドウサイズ設定:Ctrl押しながら"S"
  • ウインドウを元に戻す: [Ctrl] 押しながら"R"
  • Fadeダイアログを表示:コントロールポイントをダブルクリック

完全な Morph ムービーには何匹の猫が必要か

特に猫はいらないのですが…。

 二枚の写真から Morph したとき、気が付くのは、背景が一緒に変形してしまうことです。開始画像と終了画像の背景が同一のマットな色の画像が好ましいのですが、このために特別に撮影するのは難しい。
 ということで、対象物を切り抜くツールが必要です(できれば、アルファチャンネル画像にしたい)。ペイント系のソフトでこの作業を行います。最近のレタッチソフトには、ある程度、自動の切り出しが出来ることもあります。また、専用のソフトもあります。いずれにしても、最終的には、ペイント系のソフトで確認したい。当然画像サイズも合わせなきゃいけないし。

 次に Morph します。これは、Morph できるソフトが必要ですね。これが二匹目の猫。

 出来上がった Morph ムービーは、そのままでは、背景がありません。ということで、普通なら、背景画像(動画でも良いけれど)を用意して、それと合成することになります。  三匹目の猫は、背景とMorphの結果を合成できるソフト。動画編集ソフトや、バッチで二画面合成が出来るソフトが好ましいです。

BMP32の扱い(またはアルファチャンネルをどう考えるか)

 *.bmpファイルは通常、最大24ビット(r8g8b8)なのですが、これに 8bit のアルファチャンネルを付け加えて 32bit で保存するソフトが増えています。この形式を扱うソフトで最初に見たのはVIDEOCRAFTでした。
photoImpact10 bmp32は扱えない。tif/tgaなどでは選択範囲として扱う
bmp32を読むと終了するまで正常に動作しなくなるようだ。
gimp2 bmp32を読める。ベースのアルファチャンネルになる。
gimpでは、保存形式を広く選べる。BMP16/BMP24/BMP32
XRES BMP32 読み書き可能。チャンネル#4として現れる
COREL P7 BMP32は読めるが通常の画像。TIF/TGA では 「現行のマスク(=選択範囲)」として扱われる
PicturePublisher6 BMP32読めない。アルファTGAでは選択範囲がブラック。アルファTIFは正常に読めない。 アルファTGA 自分で書いたものは選択範囲も読める。
PHOTOMAGIC PP6と同じ?
PIXIA BMP24読めるが、アルファは無視。TGA/TIFも同様。PNGではアルファを認識する。
PICTBEAR BMP24異常なフォーマット。TGA/TIF アルファを認識?が、後ろが黒くなる。
openoffice draw bmp32読める。アルファ無視その他(tif/tga)でも同じ?。pngでは認識する。
coreldraw7 bmp32他、読める。アルファ無視。


アルゴ算法堂へ戻る