スクリーンショット/GIFアニメ作成技術が集まるスレ

お題「スクリーンショット/GIFアニメ作成技術が集まるスレ」

最近、仕事でも趣味でもスクリーンキャプチャしまくっている。
結構いろいろツール使ったりしてるので、メモっとくと需要あるかなって。

マイお題も作ったので、皆さまのGIFアニメ作成技術やこだわりを投稿してくれると助かります!😸

目次

キャプチャツール

GIF Brewery 3

gifbrewery.com

macOS向けの高機能なGIF作成/編集ツール。
スクリーンを撮影するだけでなく、Webカメラや動画ファイルからGIFアニメを作成できる。

フレームレートやスピードを簡単に設定できる上、軽量化もできる。
仕事で開発中の画面のアニメを撮影する時はだいたいコレで完結する。

もっとクオリティとサイズにこだわりたいときは、GIF Breweryで撮影したあと、後述のgifsicleやezgifで軽量化したりする。

Quicktime Player

ちょっと長めの動画とか、音声入りでキャプチャしたい時はこれ。
音声出力を取得するにはSoundflowerとかと組み合わせる必要がある。

Licecap

Cockos Incorporated | LICEcap

昔使ってた。
Windows版とMac版がある。

事前に録画する秒数を指定したり、フレームレートを指定してから録画を開始する。

デュアルディスプレイの時に出力がおかしくなることがあった気がする。
もう直ったかな?

GIF Breweryに移行してからは使ってない。

編集/軽量化

Gifsicle

Gifsicle: Command-Line Animated GIFs

CLIツール。
gifsicle -O3 foo.gif > foo2.gif とかやるとサクッと軽量化できる。
オプション覚えるのがめんどくさいのであんまり使ってない。

ezgif.com

ezgif.com

Web上でGIFの操作ができるサービス。
Optimizeメニューでは、普通に圧縮したり、カラーパレットをいじったり、ディザリングしたりできる。
フレーム毎にスキップ指定してファイルサイズを落としたりもできる。

Gifsicleのオプション覚えずに済むので楽。
処理も意外と速い。

ffmpeg

定番動画変換ツール。 Quicktime Playerで録画したやつをGIFアニメに変換する時に使ってる。

PCからTwitterに動画を投稿するとメッチャ失敗するんだけど、こちらの記事にあるオプションを付けてffmpegで変換すると投稿できるようになる。

kivantium.hateblo.jp

高画質なGIFアニメを作る方法については、いろんな記事があるのでそちらを参照。

動画ファイルからより良いアニメーションGIFを作る — Genji App Blog

ffmpeg、とにかくオプションむずすぎる。
僕はオプション勝手に指定してくれるスクリプトつくって ~/bin に入れてるけど、結局あんまり使ってない……

その他小技

  • Retinaディスプレイだと解像度2倍になってキャプチャもカクつくしファイルサイズもでかくなるので、サブディスプレイでキャプチャしたりディスプレイの解像度を落とすと良い
  • Twitterは7.5秒以内の動画だとループ再生してくれるので、GIF Breweryとかでフレームを調整してキレイな無限ループにしてあげると良い
  • 頑張って高画質GIF作ってもTwitterに投稿するとメチャメチャになったりするのでmp4の方が良かったりする
  • 仕事でUIのキャプチャする時は 5fps くらいで充分

キャプチャデバイス買おうか迷ってる

最近はGLSLを書いたりVJっぽい活動をしてることもあり、キャプチャ専用デバイスを買おうか迷ってる。
一番の候補はこれ。

av.watch.impress.co.jp

レビューの記事では「音が小さい」って書いてあるけど、オーディオインターフェースあるからどうにかなるのではって思ってる。

使ってる人とか、オススメのデバイスとかあったら教えてほしいです!

AtomでVJできるパッケージを作った #GLSL #livecoding

https://user-images.githubusercontent.com/1403842/28673275-1d42b062-731d-11e7-92b0-bde5ca1f1cae.gif

GLSLでVJやライブコーディングができるAtomパッケージを作りました。
その名も VEDA !!!

atom.io

この記事では、VEDAの使い方や機能を説明します。

目次

このパッケージでできること

AtomでこんなVJができちゃいます!

この動画は、先日僕が VEDA を使ってVJした時のものです。
動画素材や画像素材をロードしつつ、GLSLで加工したり動きを付けたりしています。
動画素材をロードしてMIDIコントローラーで操作きるので、コードをほぼ書かずにVJすることも可能です。

GLSLはOpenGLWebGLといった3Dグラフィックで用いられる言語です。
GPUで実行されるため、高画質なグラフィックをリアルタイムに描画できるという特長があります。

AtomにはTidalCycles等、ライブコーディングで音楽を演奏するパッケージがいくつか存在しているので、組み合わせると一人でDJ/VJ両方できたりもします。
TidalCyclesについては以前記事を書きました。

amagitakayosi.hatenablog.com

機能一覧

VEDAは、GLSLファイルを実行してAtomの背景に表示するパッケージです。
linterやautocompleteといった既存のパッケージを利用し、快適なコーディング環境を実現しています。

GLSL実行環境としては、以下のような機能をもっています。

  • GLSL Sandbox互換の uniform 変数
  • 音声入力対応
  • MIDI入力対応
  • 任意の画像/動画をロードできる

インストール

glslangValidatorのインストール

VEDA の動作には glslangValidator が必要です。
先にインストールしましょう。

macOSの場合

macの場合はhomebrewでインストールできます。
homebrewが入っていない場合は、まず以下のページに従ってインストールしてください。

Homebrew — The missing package manager for macOS

その後、ターミナルで brew install glslang を実行すると glslangValidator コマンドを使えるようになります。

glslangValidatorを自分でビルドする場合は、21-3さんの記事を参考にしてください。
(21-3さんありがとうございます!)

r21nomi.log — Art & Tech log

Windows, Linuxの場合

glslangValidator はVulkan SDKに含まれています。
こちらからVulkan SDKをインストールしましょう。

LunarG® Vulkan™ SDK - What's in the SDK - Where to Download

Windowsの場合は C:/VulkanSDK/(バージョン番号)/Bin/glslangValidator がインストールされるので、こちらに環境変数PATHを通してください。

VEDA本体のインストール

Atomの設定画面、または apm より veda をインストールします。

Failed to require... というエラーが出た時

場合によっては以下のようなエラーが表示されるかもしれません。

Failed to require the main module of 'glsl-livecoder' because it requires an incompatible native module.
Run `apm rebuild` in the package directory to resolve.

この場合は、画面下部の虫アイコンをクリックし、 Rebuild Packages を実行してください。

使い方

VEDAをインストールすると、Atomに以下のコマンドが追加されます。

  • Veda:Toggle
    • VEDA を起動/停止する
  • Veda:Load Shader (key: ctrl-enter)
    • 現在のタブのGLSLファイルを実行する
  • Veda:Watch Shader (key: ctrl-shift-enter)
    • 現在のタブを監視し、内容が変更されたら自動で実行する
  • Veda:Watch Active Editor (key: ctrl-alt-enter)
    • アクティブなタブを監視し、 watch-shader を実行する
  • Veda:Stop Watching (key: ctrl-.)
    • watch-shaderwatch-active-editor を停止する

実際にサンプルコードを手元で動かしてみましょう。

まず、glsl-livecoder-examplesをcloneし、Atomで開きます。

git clone https://github.com/fand/glsl-livecoder-examples
cd glsl-livecoder-examples
atom .

コマンドパレットを開き、Veda:Toggle を実行してください。
VEDAが起動し、デフォルトのGLSLコードが評価されます。

f:id:amagitakayosi:20170804140250g:plain

このディレクトリにはサンプルコードが沢山入っています。
試しに sample2.frag を開き、 ctrl-enter で実行してみましょう。
GLSLが実行され、次のような画面になるはずです。

f:id:amagitakayosi:20170804145503g:plain

GLSLを書き換えて実行すると、すぐに反映させることができます。
例えば、7行目に p *= fract(time); を追加して実行すると、画面全体をアニメーションさせることができます。

f:id:amagitakayosi:20170804162040g:plain

次は動画のロードを試してみましょう。
video.frag を開いて ctrl-enter で実行すると、複数の動画がミックスされた画面が表示されます。

f:id:amagitakayosi:20170804162728g:plain

動画のパスは .liverc で指定しています。
.liverc を編集することで、任意の画像や動画をロードすることができます。
.liverc を保存すると即反映されるので、動画の入れ替えも簡単に行なえます。

// .liverc
{
    "IMPORTED": {
        // 動画ファイルは videos/ 内にに保存されている
        "video1": {
            "PATH": "./videos/1.mp4",
        },
        "video2": {
            "PATH": "./videos/2.mp4",
        },
        "video3": {
            "PATH": "./videos/3.mp4",
        },
    },
}

もちろん、動画をGLSLで加工することもできます!
21行目の // uv *= uv; のコメントを外して、再度 ctrl-enter してください。
画面全体が左右対象にグニャッと歪んで表示されると思います。

f:id:amagitakayosi:20170804163206g:plain

以上、おおまかな使い方を紹介しました。
音声入力やMIDI入力の使い方に関しては、それぞれ audio.fragmidi.frag を参考にしてください!

今後の開発

今後は以下のissueに取り組んでいこうと思います。

  • パフォーマンス向上
  • カメラ入力対応
  • glslify対応

他に機能のリクエストやバグ報告があれば、TwitterGitHubでお気軽にご連絡ください!

それでは、よいVJライフを!


修正履歴

  • 2017/12/20: パッケージ名をVEDAに変更したため、修正しました。