どうもお久しゅうございます。Zweiglinieです。
今回は巷で噂のParty ParrotをPDFファイルで動かしてみました。もちろん使うのはです!!!なぜか私が作ることになってしまいました。なんででしょうかね~不思議ですね~
(おことわり:私は研究室時代にチョットをいじっただけのなんちゃって電気屋です。この記事は情報工学の専門的なことはともかく、ZweiglinieのメモみたいになっているんDA)
Party Parrotって何?
これ読んでおけば流行に至った経緯が分かります。(流行りものの記事は頻繁に編集されるニコニコ大百科のリンクを貼るのは避けたかったのですが、ちょうどいいサイトが見つかりませんでした…ちょうどいいのが見つかったら差し替えます)
参考にしたサイト
最初に参考文献を載せるのはどうかと思うものの、私が参考になったサイトを見る方が正しく早く理解できるでしょう。不運にもこの記事に辿り着いてしまった方は参考文献の閲覧をおすすめします。
acetaminophen.hatenablog.comやっていることはこちらの記事のほぼパクリです。是非とも読んでください。
higuma.github.ioImagemagickをインストールするために参考にした記事。
imagemagick.bizImagemagickを使用するにあたってコマンドを軽く理解するために日本語マニュアルが参考になりました。
www.imagemagick.orgImagemagickを起動する方法がようやくわかった記事。
http://ftp.yz.yamagata-u.ac.jp/pub/CTAN/macros/latex/contrib/animate/animate.pdf
animate.styのマニュアル(英語)。さらに色々といじってみたい人向け。
やり方
さて本題。を使ってPDFにGIF動画を埋め込む方法は大きく2段階あります。
- ImagemagickでGIF動画を複数の画像ファイルに分割する
- のanimate.styで分割した画像ファイルを統合する
なんとこれだけでGIF動画を埋め込めます!!!!やったね!!!
ImagemagickでGIF動画を画像ファイルに分割
インストール
まずImagemagickを使ったことがなかったので、インストールから始めていきます。
http://www.imagemagick.org/script/download.php#windows
上のリンクからダウンロードします。今回私は参考文献を鵜呑みしてImageMagick-7.0.10-7-Q16-x64-static.exe(Windowsのstatic版)をインストールしてみました。
GIF動画の分割
ImagemagickはCUIベースなので、コマンドプロンプトを立ち上げます。[WIndows]+[R]で[cmd]+[Enter]で起動!!!
cdコマンドでpdfを作りたいディレクトリ(フォルダ)に移動します。
あ、使いたいGIF動画はpdfを作りたいディレクトリ(フォルダ)に予め移動しておきましょう。今回使うGIFはParrot.gifです。
図1 Parrot.gif
cdコマンドで移動したら下のコードをコマンドプロンプトに打ちます。
magick convert parrot.gif -coalesce parrot_%03d.png
magickはImagemagickを起動するコマンドです。parrot.gifの部分は分割するファイル名、parrot_%03d.pngは分割後のファイル名です。%03dとすることで分割後のファイルに3桁の通し番号が付与されます。での処理を簡単にするべく、通し番号は必ずつけましょう。
蛇足
今回はGIF動画の分割後のファイル形式をPNGにしましたがJPGでも可能です。しかし、1コマ目以外が下図のように背景が黒くなってしまったので、今回は諦めました。
図2 背景が黒くなったParrot.jpg
TeXで分割した画像を統合
画像処理が終わったのでを書いていきます。参考文献ではエンジンをpもしくはupを使用していますが、今回はLuaを使用します。
texファイルの作成
私はTeXworksのような統合環境ではなく、コマンドプロンプトとテキストエディタでPDFを作る面倒くさい野郎なので、コマンドプロンプトからtexファイルを作成します。
type nul > hoge.tex
texファイルの記述
texファイルでは以下のような記述をしました。
\documentclass[a4j]{ltjsarticle}
\usepackage[varg,cmintegrals,cmbraces]{newtxmath} %数式の書体
\usepackage{newtxtext}
\usepackage{graphicx} % 画像の出力
\usepackage{animate} %PNGとGIFの動画対応
\title{Party Parrot}
\author{Zweiglinie}
\begin{document}
\maketitle
\begin{abstract}
PARTY OR DIE
\end{abstract}
\section{Normal Parrot}
\animategraphics[autoplay,loop]{20}{parrot_}{000}{009}
\end{document}
Parrot.gifを貼り付けるだけならこれで十分になります。
タイプセット(コンパイル)
コマンドプロンプトで下のコード打って終わり!簡単!
lualatex hoge
…遅い!Luaはタイプセットがpと比べて遅いので気長に待ちましょう。
成果物
タイプセットが成功するとhoge.pdfが生成されます。早速PDFを開きたいところですが、GIF動画はAdobe Acrobat Reader DCなどの一部のソフトでしか動きません。私は普段PDFをFireFoxで見ている偏屈野郎なのですが、FireFoxでも動きません。ChromeもEdgeもAdobe Reader Touchも動きません。リーダーがGIF動画に対応しているか確認してから成果物の確認をしましょう。
さて、GIFが動いている様を動画に収めてみたかったのですが、エラーが出たのでスクショで代用です。許し亭許して。
オウムがぐるぐるしているのが分かるだろう?
軽い解説
animate.styについて
GIF動画をでPDFに埋め込むためにはanimate.styとgraphicx.styが必須です。プリアンブル部で必ず記述しましょう。
参考文献では
\usepackage[dvipdfmx]{graphicx}
\usepackage[dvipdfmx]{animate}
と記述していますが、Luaではdvipdfmxを使用しないためオプションを省略しています。
\animategraphicsの使い方
\animategraphicsという命令(コマンド)は\animategraphics[<options>]{<frame rate>}{<file basename>}{<first>}{<last>
options(オプション)はその名の通り様々な機能や命令を付け加えられます。autoplayはPDFを開いた時にGIFが動くようにするオプション、loopは最後の画像まで再生したら最初の画像に戻るオプションです。参考文献ではさらにGIF動画の高さやGIF動画のプレイヤーを付加しています(私は必要性を感じなかったため記述しませんでした)。他のオプションはマニュアルに書いてありますから、英語に自信のある方は読んで試してしてください。
frame rate(フレームレート)はfpsを設定します。10なら10 fpsで、1秒ごとに10フレームの設定になります。埋め込む分割した画像の枚数は一定なので、fpsを増やすとGIF動画が速くなります。つまり、馬鹿みたいな速さでpartyするparrotを簡単かつ詳細に作れます。たーのしー!!!!!!!!ちなみに20 fpsにすると本家と同等の速さになります。
file basenameは分割したファイルの基本的な名前です。ここで記述されたファイル名でないと当然ながら認識されません。だから、{parrot_}とアンダーバーまで記述する必要があったんですね。
firstは埋め込む最初の画像、lastは埋め込む最後の画像です。そのまんまですね。
他にも\animategraphicsの使い方があるようですが、省略します。マニュアル読んでね!!!!!!!!!!!!!!
書体について
\usepackage[varg,cmintegrals,cmbraces]{newtxmath} と\usepackage{newtxtext}はTimes系の英文書体(フォント)です。研究室時代の癖で使ってますが、GIF動画の埋め込みとは無関係です。人目気にするな自由に書体設定しよう
応用例
レポートっぽくしてみる
といえばレポートです。レポートに挿入した画像のような体裁にすることも可能です。\usepackage{float}を追加した上で
\animategraphics[autoplay,loop]{20}{parrot_}{000}{009}
この部分のコードを
\begin{figure}[H]
\animategraphics[autoplay,loop]{20}{parrot}{000}{009}
\centering
\caption{Parrot.gif}
\label{Parrot}
\end{figure}
とすると
レポートっぽくなりました。
反省点・課題
LuaLaTeXが遅い
どうしようもない点です。clsファイルの知識を持っている訳でもないので、高速化するアイデアも全くありません。対策としては、
- Luaを使うときは十分な時間を用意する
- upを使う
- タイプセットの回数を減らす
- 性能の良いパソコンを用意する
- Ryzen 3950Xを用意する
- ファンレスのノートパソコンではなくミドルタワーのLEDが光るデスクトップパソコンを自作する
などの点が挙がります。余裕を持ってで遊んでみましょう。なおupでタイプセットする際にはdvipdfmxを使用することに注意しましょう。
jpgで分割すると背景が黒くなる
Parrot.gifを埋め込むのを機に初めてImagemagickをいじったこともあってよく分からなかったです。多分もうImagemagickを使う機会はないでしょうから、特に気にすることはないかと思いますが…
英語が読めない
今まで勉強してこなかったツケだ一生かけて反省しろ
まとめ
いかがでしたでしょうか?なんとParrotを動かすことに成功しました!課題点もありますが、なんだかよく分かりませんでした。それではチャンネル登録をお願いします!!!!!!!!!!!!!!!!!!
以上がZweiglinieのメモ帳でした。ウッカリこの記事を開いてしまった不運な方は暇な時に是非ともで遊んでいってください。はPCなら無料!なんと無料!でダウウンロードできます!!!!やったね!
じゃあ俺、詳しいことは他の人に任せて、ギャラ貰って帰るから…
参考文献
Party Parrot とは 〜イカれたオウムの歴史を紐解く〜 - Qiita
Party Parrotとは (パーティーパロットとは) [単語記事] - ニコニコ大百科
PowerPointやPDFにいろいろなマルチメディアを埋め込む(1) - Acetaminophen’s diary
ImageMagick (1) インストール編 | I code therefore...
Imagemagickのコマンド | | Imagemagickの使い方日本語マニュアル
ImageMagick - Command-line Tools: Convert
http://ftp.yz.yamagata-u.ac.jp/pub/CTAN/macros/latex/contrib/animate/animate.pdf