2016年2月13日土曜日

GIMP GIF アニメーションを自分で (3) 256 色の制限

GIMP でアニメーション GIF Animation を作成出来る事は 何回か 書いて来ました。
実際に、作成して見ると、 何だか、グラデーションが綺麗に表現出来ない! と思った事はないですか?。
そうなのです。
GIF の制限から、 色数が 256 色 に落とされてしまうのです。


雪降りや煌きのアニメーションを 以前に ご紹介していますが、
これらは、コマ数が増えても、 そうは色数の増加には繋がりませんでした。
でも、 2枚の写真等から、アニメーションを作ろうとすると、ついつい、この事(色数)を忘れて作業して、
最終的な成果品の .gif ファイルが 出来上がってから、 愕然 とする場合もあります。

  グラデーションが綺麗に表現出来ない!。
  地図の等高線の様に グラデーション が纏められてしまう!。
  まるで、コーヒーの染みの様な模様が現れる!。
  なだらかな諧調が 切り絵の紙を貼った様に 雲が浮かんでしまう!。
  均一色に塗り潰された 塊 が もこもこ と動き回る!。

これらは、皆、 色数 256 色 の制限が原因です。
.gif の規格上の問題ですから、 別のフォーマットに変更しない限り、この呪縛からは逃れられません。

GIF Animation を作成する以上、 この事を忘れてはいけません。

GIMP では手軽にアニメーション化が可能なのですが、
素材や動画の変遷を考える上で、
諧調落ち し易くなる と言う事を前提に、 企画や構想を練らないと、ガッカリする羽目に見舞われるのですね。

    GIMP アニメーション 等の語句で Internet 検索すると、色々な例を発見出来ますが、
    中には この 諧調落ち と思われる事例があったりします。



これで終わりにしてしまうと、 「 じゃぁ、どうすりゃぁ いいんだぁ! 」 とお叱りを受けるでしょうから、 ヒントを。



目の錯覚を利用する のです。

  そもそも、GIMP の GIF アニメでは、デフォルト(標準で) 1秒に 10 コマの画像を想定しています。  100ms / Frame 。
  このタイミングでも、 まあ、滑らかに感じられるのは、 目の錯覚 です。

  色も同じです。
  色の変化や表現を確認したければ、
  画像 > モード > インデックス で RGB から インデックス (最大色数 255) に変えて見る事です。
       注: 透明(アルファ チャンネル) を持つ画像の場合、 256 ではなく、 透明相当の1を引いた 最大色数 255 になります。
  当然、色数が減るので、まだらに、なります。  (ディザリング無しの場合)
  これを補うのが、 ディザリング です。
  誤差拡散(通常) か 同(補正あり) か ポジション かで、 最適パレットを生成しましょう。  注 参照。.

  単独のコマで見た場合には、ディザリング無しの方が滑らかですが、
  諧調を纏めている分、 動画として動かすと、不自然な模様として 錯覚 してしまいます。
  これを逆手に取り、あえて、分散させる事で、 動かした時の印象を原画に近付ける のですね。
  短い間隔で変わって行く動画は、多少の あら は 認識出来ない 事を利用しましょう。

  滑らかな変化を期待して、コマの推移を細かく(コマ数を多く)取ると 逆効果 に繋がります。  負担が大きい とも言えます。.
  基本的に、 多色での 烈しい且つ激変の コマ推移 は なるべく避けて、
  諧調飛びへの対策は ディザリング 適応で 対処しましょう。
  インデックス モード へ移行した画像(複数のコマ(レイヤー))を元に、アニメを作成し、.gif 形式にエクスポートします。


具体的な作業手順の概要を書いて置きます。

  1. 必要コマを 追加レイヤーとして 準備する
  2. 必要なら、 コマを補充するフィルター類 ブレンドや専用アニメーション フィルター(透過背景でないもの) を適応する
  3. 上記を参考に、 画像 を RGB から インデックス モード+ディザリング (誤差拡散 or ポジション) に変更する
  4. GIF 最適化 を適応する
  5. 差分最適化 を適応する (省略も可)
  6. .gif 形式にエクスポートする
もし、専用フィルターが透過背景のレイヤーで追加するタイプ(レイヤー名が 例えば xxx(100ms)(combine)) ならば、
上記の作業手順の 2. と 3. とを入れ替えても いいかも です。
その辺りは試行錯誤して見て下さい。


    注:  GIMP 2.8.16 を基準に書いています。
        GIMP 2.6 系では、  誤差拡散 ではなく Floyd-Steinberg ディザリング と表記されています。  恐らく、同じ ?。.



0 件のコメント:

コメントを投稿