Ubuntu Japanese Team代表の小林です。昨年の8月,夏休み特別企画として「夢の仰向けUbuntu生活」という記事を,今年の3月には春休み特別企画として「Ubuntu上で"俺の嫁"に踊ってもらおう!」という記事を寄稿させていただきました。いずれも,「不真面目な内容を真面目にやる」系のネタ記事です。そんな流れもあって,他のメンバーから「今年の夏休みも当然"特別企画"やるんですよね?」と言われてしまいました。
なにをやろうかずいぶん迷ったのですが,今回は「アスキーアートを似非3D化する方法」を紹介することにしました。きっかけは,6月ごろに話題になった週アスPLUSの「2Dなのに飛び出す! 3D環境ゼロでつくる3D写真のつくりかた」という記事の最後にある,アスキーアートを3DっぽくしたアニメーションGIFを見たことです。
「これならGIMPで似たものが作れるのでは?(GIMPのスクリプトとか作ったことないけど)」と思っていたので,この週末に実際にやってみたところ以下のような画像を作ることができました。
というわけで,こういった画像を作るまでの手順を解説します。
作業環境の準備
利用するソフトウェアはGIMPだけです。まだインストールしていなければ,以下のコマンドでインストールしておきましょう。
sudo apt-get install gimp
ご存知の方が多いと思うのですが,日本語のサイトで広く使われているアスキーアートはMS Pゴシック16ピクセル(12ポイント)を前提に作られており,基本的に他のフォントでは適切に表示されません。しかしながら,MS PゴシックはWindowsに含まれているフォントであり,Ubuntuなど他のOSにコピーして利用することはライセンス違反となる疑いがあります。
そこで,各グリフの幅をMS Pゴシックなどと同じになるように調整した「モナーフォント」を使うことにしましょう。完全に同じというわけにはいきませんが,近い状態で表示できるようになります。以下のコマンドでインストールできます。
sudo apt-get install ttf-mona
なお,GIMPはWindowsでも動きます。アスキーアートの表示クオリティを考えれば,MS Pゴシックが使えるWindowsで作業したほうがいいかもしれません。でも,この連載は「Ubuntu Weekly Recipe」ですので…ここではUbuntuで作業を進めます。Windowsを使われる方も,ほぼ同様の手順で同じことができるはずなので参考にしてください。
GIMPでアスキーアートを画像化する
GIMPの画像にアスキーアートを貼り込む場合,普通はテキストツールで「Mona」を選択し,アスキーアートをペーストします。これでもいいのですが,毎回やるのは面倒です。そこで,アスキーアートを保存したテキストファイルから新しい画像を自動作成するPythonスクリプトを作成しました。
以下のように実行すると,~/aa.txtからテキストを読み込んで画像に貼り付けます。Windowsで使う場合はスクリプト中のfilename変数を適切なものに書き換えてください。なお,実行前にGIMPを終了しておく必要があります。
gimp --console-messages --no-data --no-splash --batch-interpreter python-fu-eval --batch - < gimp-load-aa.py
処理が完了すると,白い背景とアスキーアートの2枚のレイヤーを持つ画像が生成されます。必要に応じて余白を調整してください。
アスキーアートを「距離」ごとに分割する
2D画像を3Dっぽくみせるには,画像中の「距離」に応じて横に揺らす必要があります。今回は,手前と奥の揺れる幅を大きくし,中央に近づくに従って揺れを小さくする形にします。そのためには,物体の距離に応じてレイヤーを分けていかないといけません。
ここでは,手前の物体から切り抜いて新しいレイヤーに貼り付けていくことにしましょう。必要に応じて,作業しやすいように拡大率を調整します。そして,図3のように手前の物体を選択します。この例では「自由選択」ツールを使いましたが,選択できればなんでもかまいません。横揺れさせたときに他の文字とかぶる部分は,重なっても自然になるよう工夫して選択すると仕上がりがきれいになります。
選択したら,Ctrl+Xや[編集]-[切り取り]を使って切り取ります。そしてCtrl+Vなどで貼り付けます。すると,レイヤーの一覧に「フローティング選択範囲」があらわれるはずです(図4)。それを右クリックし,「レイヤーを追加」を選びます。そうすると,レイヤーの名前が「貼り付けられたレイヤー」に変わります。これで,一番手前のレイヤーができました。


