Blenderであそんでみた

3D-CGソフトBlenderの小技や豆知識など。

GIMPのGIFアニメ作成機能を、もっと使いやすくする方法

f:id:hainarashi:20201224173234g:plain

今回はBlenderではなく、GIMPの話です。

GIMPのGIFアニメ作成機能における最大の弱点、
「枚数の多い画像に、個別の表示時間設定をするのが実質無理
という問題の解決方法を紹介します。

※記事製作時のバージョン:GIMP2.10

 

何が問題なのか?

GIFアニメの基本的な仕組みは、「フレーム毎に表示時間を指定できるコマ送り」です。

1枚1枚の画像をゆっくり切り替えるとスライドショーに、
たくさんの画像を素早く次々に切り替えるとアニメーションになります。

f:id:hainarashi:20201213180307g:plain

スライドショー(3.5秒/フレーム)

 

f:id:hainarashi:20201213214107g:plain

アニメーション(0.04秒/フレーム)

 

GIMPでの表示時間の設定方法は

  • 一括設定
  • 個別設定

の2種類があります。

一括設定には何の不便も無いのですが、個別設定の方に欠点があります。

 

下のGIFアニメは、最初の1フレームを1秒表示して間を取り、残りは0.04秒/フレームでアニメーションさせています。
このように、1フレームでも他と違う時間を指定する場合は、一括設定が使えません。
なので、個別設定で全てのフレームの時間を指定する必要があります。

f:id:hainarashi:20210608210202g:plain

最初に間を取るアニメーション

 

個別設定は、各フレームの表示時間をレイヤー名で指定します。
レイヤー名の変更は手作業です。

f:id:hainarashi:20201213223810p:plain

個別設定のフレーム表示時間指定

 

Blenderなどでアニメーションを作成すると、数秒でも軽く100フレームは超えます。
100枚以上のレイヤー名を手作業で変更・・・
やってやれない事はない、けど、実質無理。
というわけです。

 

解決方法

レイヤー名を一括リネームできるスクリプトを導入します。

「全てのレイヤーの表示時間を設定する」と言っても、基本は同じ値に変えるだけ。(24fpsなら42ms、30fpsなら33ms、というように)
違う時間を設定するのは、普通ならば1~数枚程度です。

スクリプトで基本の表示時間に一括リネームして、1~数枚を手作業で変更。
これで断然使いやすくなります。

 

スクリプトの導入手順

1. こちらのリンク先からスクリプトをダウンロード。 

GIMPの全レイヤーを連番リネーム、または連番テキストを描画するスクリプト - mieki256 wiki

f:id:hainarashi:20201214212045p:plain

スクリプト入手方法

 

2. ダウンロードしたファイル名の
 「all-layers-process-serial-number_m256.scm.txt」から末尾の「.txt」を削除して、
 「all-layers-process-serial-number_m256.scm」にリネーム。

 

3. GIMPのメニュー「編集 > 設定 > フォルダー > スクリプト」からスクリプト用フォルダーを開き、 リネームしたファイルを移動。

f:id:hainarashi:20201222075726j:plain

スクリプト用フォルダー

 

4. GIMPを再起動。

 「レイヤー」メニューの中に「全レイヤーに連番関連処理」の項目が追加されていればOKです。

f:id:hainarashi:20201214211351p:plain

追加メニュー

 

GIFアニメの作成手順

ここでは、連番画像をGIFアニメにする手順で説明します。
 

1. ファイル > レイヤーとして開く > アニメーションにする連番画像を全て選択 > 開く

 連番画像がレイヤーとして読み込まれます。

f:id:hainarashi:20201215213953j:plain

連番画像をレイヤーとして開く

 

f:id:hainarashi:20201223120116j:plain

読み込まれた連番画像

 

2. フィルター > アニメーション > GIF用最適化

 連番画像がGIFアニメ用に最適化され、別ウィンドウで開きます。

f:id:hainarashi:20201215215226j:plain

GIF用最適化

 

f:id:hainarashi:20201216212705p:plain

GIF用最適化後のレイヤー

 

3. レイヤー > 全レイヤーに連番関連処理 > 次の項目を設定

  • 開始番号:1
  • 付加文字列(後):(**ms)(combine)
    ** に設定したい時間を入力。

 これで「OK」をクリックすると、レイヤー名が一括リネームされます。

f:id:hainarashi:20201216212100j:plain

レイヤー名一括リネーム

 

f:id:hainarashi:20201216213112p:plain

一括リネーム後のレイヤー名

 

4. 違う表示時間にするフレームのレイヤー名を、手動で変更します。

f:id:hainarashi:20201217094717j:plain

レイヤー名を手動で変更

 

5. ファイル > 名前を付けてエクスポート > ファイル名の拡張子を「.gif」にする > エクスポート

f:id:hainarashi:20201223120129j:plain

エクスポート

 

6. GIFのオプション設定で、「アニメーションとしてエクスポート」をONにする > エクスポート

f:id:hainarashi:20201217174030p:plain

GIFのオプション

 

以上で完了です。

 

※GIFアニメをエクスポートする時、次の2つが自動処理されます。

  • フレーム表示時間の一の桁が四捨五入される。
  • 先頭フレームのレイヤー名から "(combine)" の文字列が削除される。

f:id:hainarashi:20201221170645p:plain

エクスポート時の自動処理

 

補足

一括設定の方法

フレーム表示時間を一括設定する場合は、「アニメーションGIFのオプション」で次の2つを設定します。

  • 指定しない場合のディレイ:設定したい時間を入力
  • 全フレームのディレイにこの値を使用:ON

一括設定は個別設定より優先され、全フレームの表示時間が「指定しない場合のディレイ」の数値で上書きされます。

f:id:hainarashi:20201221211955p:plain

一括設定

 

なお、「ディレイ」とはこの記事で言う「フレームの表示時間」のことです。
ソフトやwebサービスによって「ディレイ」「待ち時間」「ウェイト」「持続時間」「点滅間隔」「アニメーション間隔」・・・などなど、様々な名前で表記されます。

 

ファイルサイズの調整

フレーム表示時間とは別の話ですが、GIFのファイルサイズを小さくしたい場合は、画像を縮小してエクスポートし直します。

例えば50%に縮小すると、ファイルサイズは約1/4になります。
ただし、縮小するほど画質も悪くなります。

f:id:hainarashi:20201221212458j:plain

画像の拡大・縮小

 

 

以上、GIMPのGIFアニメ作成機能を、もっと使いやすくする方法でした。 

 

※添削・構成アドバイス:相方

 

twitter

灰ならし (@hainarashi) | Twitter

 

参考サイト

GIMPで連番画像からGIFアニメを作成する方法は、こちらの記事を参考にしました。
GIFアニメの作成手順全般が詳しくまとめられています。

nomoreretake.net