見出し画像

【Google AI Studio】時短クッキング No.40:アニメGIF形式からAPNG形式に変換するアプリ

「時短クッキング No.35」で「APNG形式からアニメGIF形式に変換するアプリ」を公開しました。今回は、この逆変換を行います。

GIFからAPNGへ変換する

なぜ作る気になったのかというと、せっかく世の中にGIF資産があるのだから「変換できるようにしておこう」というのもありますが、直接は「旧Sora」に「GIF」出力機能があることを発見し、
これを切り出してLINEアニメーションスタンプを作る方法もあるな
というちょっと邪な気持ちが生まれたからだったりします(笑)。

旧SoraのGIF出力メニューを発見





一番簡単な使い方手順

「GIF形式からAPNG形式に変換するアプリの名称は「GIF TO APNG PRO」となりました。

アプリの、一番簡単な使い方の手順は次の通りです。ちなみに、長尺のアニメGIFでもクラッシュしないように設計しています。

1.起動画面→GIFファイルをアップロード

「GIF TO APNG PRO」起動画面

アプリを起動したら、アニメGIFデータを「Import Source GIF」と書かれている点線枠エリアにドラッグ&ドロップなどでアップロードします。

2.再生&タイムライン表示

再生&タイムライン表示

即座にアニメーションGIFが再生されます。
「縦二本線」ボタンで再生停止します。「<」ボタンで1フレーム戻す、「>」ボタンで1フレーム進める、ができます。タイムライン下のスライダで、フレーム位置を自由に移動できます。

3.APNG変換→ダウンロード

「Generate APNG」ボタンを押すと変換

画面右の「Generate APNG」ボタンを押すと、GIF→APNG変換が行われ、終了すると「Download APNG」ボタンが現れます。
Download APNG」ボタンを押すと、ファイルがダウンロードされます。


別のファイルを読み込みたい

他のGIFファイルをアップロードしたいときには、プレビュー画面右下の「Reset Media」ボタンを押してください。

「Reset Media」を押す

背景色を変えたい

プレビュー右上のボタンで、背景を「透明」「白」「黒」に切り替えることができます。

背景を「白」に設定

ファイルサイズを小さくしたい

Export Quality」メニューで、出力時の色数を選択できます。クオリティーの引き換えになりますが、下ほどファイルサイズが小さくなります。通常は、一番上の「Lossless(24-bit+alpha)」にしておきましょう。

「Export Quality」メニュー





フレーム範囲を設定する方法

長尺のアニメGIFについて、一部だけを切り出したいときには、タイムラインで「Set Start」(開始位置)と「Set End」(終了位置)を設定します。この設定用ボタンは、「Configuration」と、タイムライン下の2か所で行うことができ、どちらも同じに使えます。

タイムラインの中央が白枠になっています。「Set Start」を押すと、白枠位置が開始位置として設定されます。「Set End」を押すと、白枠位置が終了位置として設定されます。除外されたフレームは、グレーアウト表示になります。

Set Startで開始位置を設定

Set Endで終了位置を設定

開始位置と終了位置を設定することで範囲が設定

タイムラインのサムネイルについて

タイムラインのサムネイルについて、全フレーム数によってステップ数が変わるのでご注意ください。

全フレームが60枚以下の場合:ステップは1となり、すべてのフレームがサムネイルとして表示されます。
全フレームが120枚の場合:ステップは2となり、2フレームごとの表示になります。
全フレームが300枚の場合:ステップは5となり、5フレームごとのサムネイルが表示されます。

つまり、動画の長さに合わせて「全体で最大60個のサムネイルを表示する」という仕様になっています。

正確な開始位置と終了位置の設定と確認

正確なフレーム数については、「<」「>」ボタンでフレームを選択してください。また、開始位置と終了位置の設定は「SELECTED RANGE」で確認してください。

正確な開始位置と終了位置の設定と確認





LINEスタンプ用のフレーム範囲設定

LINE用のアニメーションスタンプは最大20フレームと決まっているので、簡単に設定するための「+20f」ボタンと「-20f」ボタンを用意しました。

  • 「+20f」ボタン:開始位置から後方に20フレームが選択されます

  • 「-20f」ボタン:終了位置から前方に20フレームが選択されます

20フレームを選択する専用ボタン





画面の一部範囲を切り取るクロップモード

GIF画像全体ではなく、一部範囲だけ使いたいこともあります。そこで、クロップモード(トリミング機能)を実装しました。
クロップモードにするには、「CROP MODE」スイッチ(下図の赤枠部分)をオンにします。
下に関係する設定項目(下図の緑枠部分)が表示されます。

「CROP MODE」スイッチをオンにすると表示される

次のスライダを使って、範囲を設定します。

  • WIDTH:横幅を調整します

  • HEIGHT:高さを調整します

  • OFFSET X:横位置を調整します

  • OFFSET Y:縦位置を調整します

範囲選択すると、点線で範囲が示される。

LINEスタンプルールの適合チェック

クロップモードで、さらに「LINE FRAME RULE」スイッチをオンにしておくと、LINEスタンプのルールが適合されます。適合しない場合には「Rule Violation」(ルール違反)と赤文字で表示されるので、ルールに適合する状態に調整してください。

LINEスタンプルールに違反すると赤文字表示される





シェアURL

お試しください。





まとめ:Sora出力動画をLINEアニメスタンプ登録できた話

当初の目的であった
「Soraで生成した動画を、LINEアニメーションスタンプとして登録できるか?」
についてですが、結論から言うと、実際に登録まで成功しました。

Soraで生成した動画をGIFとして書き出し、本アプリでAPNGに変換することで、LINEアニメスタンプとして問題なく登録できることが確認できました。

Soraで作成した動画
LINEアニメスタンプ登録ができた

ただし、実際にやってみると、いくつか現実的な壁も見えてきます。
特に、アニメGIFから20フレームを切り出した場合、ファイルサイズが300KBを超えてしまうケースが多い という点です。そのままではLINEの容量制限に引っかかり、登録ではじかれてしまいます。

対処方法としては、

  • 縦横サイズを小さくする

  • 色数を減らす

  • フレーム数を減らす

といった調整が必要になりますが、もっとも手軽で効果が高いのは 「フレーム数を減らす」 ことでしょう。

今後、Sora側で「同じキャラクターを安定して生成できる」ようになれば、
動画生成 → GIF出力 → APNG変換 → LINEアニメスタンプ登録
という流れが、実用的な制作フローとして成立する可能性も十分にあります。

今回は、その第一歩として「技術的には可能である」ことを確認できた、というところで締めたいと思います。

以上!

いいなと思ったら応援しよう!

ROROSUKE LABO 記事なり、プログラムなりが役に立ったと思った方は、 チップの応援よろしくお願いいたします。 次の開発もがんばろうかな、という気になりますのだ (笑)