Ubuntu 9.10(Karmic Koala)では、ログイン時の画面の前後に背景画像とともにスプラッシュアニメーションが表示されるようになりました。何とかしてこれを自作できないかと探ってみたところ、単なる縦長のpng画像だということが判明。Blenderというソフトで簡単な3Dのアニメーションを作って、試してみました。

xsplash-0
赤いトーラスがその場で回転するだけのシンプルなものですけど。


Blenderは、本格的な3DCGを作成することもできるオープンソースの3DCG作成ソフトです。使い方には結構コツがいるので、今回はデフォルトのトーラスを回転されるだけの単純なアニメを作る手順だけに絞って紹介します。Xsplashでは、解像度と画像の枚数だけ合わせれば、複雑なCGでも表示できるはずですので、腕に自信のある方はチャレンジしてみては?
スプラッシュアニメーションの画像は、/usr/share/images/xsplashフォルダの中のthrobber_xtra_large.png、throbber_large.png、throbber_small.pngという画像(それぞれ画像サイズは異なります)です。どの画像が使われるかは環境によるようですが、僕のPCではthrobber_small.pngが使われているようでしたので、以下ではこの画像を変更するという前提で話を進めます。

Blenderのインストール

Synapticパッケージマネージャで「blender」というパッケージをインストールします。端末から導入するには、次のコマンドを実行します。

$ sudo apt-get install blender

これで、Gnomeメニューに次の2つの項目が加わります。

● アプリケーション>グラフィックス>Blender(fullscreen)
● アプリケーション>グラフィックス>Blender(windowed)

Blender(fullscreen)は全画面表示、Blender(windowed)はウィンドウ内での表示となります。なお、Compizを有効にしたままでは表示が不安定になるので、Compizを使っている場合は、Metacityに変更して実行した方がいいでしょう。

アニメーション画像の作成方法

Xsplashで使われているアニメーション画像は、画像サイズ300x150のpng画像50枚を縦に結合して、画像サイズ300x7500にしたものが使われています。そこで、まずBlenderを使って、画像サイズ300x150のアニメーション画像50枚を作成します。オブジェクトの作り方は省略しますが、基本的にどんなオブジェクトでもアニメーション画像自体の作成は同様の手順で可能だと思います。

STEP 1開始位置での設定
Blenderを起動してオブジェクトを用意します。ここでは単純な赤いトーラスを1つ描いておきました。

xsplash-1
フレーム1(青丸の部分に表示されている数字)の画面でこのオブジェクトを選択して、「Object>Insert Keyframe」(赤で囲った部分)を選択します。


xsplash-2
続いて表示されるリストのいずれかを選択します。


それぞれの項目には次のような意味があります。

 Loc:平行移動
 Rot:回転
 Scale:拡大縮小
 LocRot:平行移動+回転
 LocScale:平行移動+拡大縮小
 LocRotScale:平行移動+回転+拡大縮小
 RotScale:回転+拡大縮小
(以下省略)

フレーム1はスタート位置ですが、これから動かしたい動作をここで指定しておくわけです。ここでは「View>Front」の画面で「rot」を選択しました。

STEP 2終了位置での設定
2つ上の画像の青丸の部分にマウスポインタを置き、上矢印キーを5回押すと「フレーム51」になります。さらに、左矢印キーを1回押して「フレーム50」にします。このフレームで終了までに動かす動作を施します。今回は、オブジェクトを360度回転させ、STEP 1と同様に「Object>Insert Keyframe」で「rot」を選択しました。

《参考》 フレームの切り替え
 ● 上矢印キー:10フレーム単位で先に進みます。
 ● 下矢印キー:10フレーム単位で前に戻ります。
 ● 右矢印キー:1フレーム単位で先に進みます。
 ● 左矢印キー:1フレーム単位で前に戻ります。


ここは単純に最初(フレーム1)から最後(フレーム50)までの動きを最後の状態を指定するだけで行いましたが、例えばフレーム20でそこまでの動きを指定して、フレーム50で以後ラストまでの動きを指定するという形で動きに変化を与えることもできます。

STEP 3アニメーションの設定
Xsplashのアニメーションはログイン前に5秒間程度、ログイン時に10秒間程度表示されます(環境によって異なるかも)。以下では、これを考慮してフレームレートを設定して下さい。

xsplash-3
まず「Panals>Scene>Render」で設定画面を表示してレンダリング設定を行います。


xsplash-4
変更するのは、右下の「Anim」、「Format」の部分だけです。


「Anim」の部分
・「End:250→End:50」に変更。
「Format」の部分
・「SizeX:300」・「SizeY:150」に変更。
・画像形式を「PNG」に変更。
・1秒間に表示させるフレーム数をFPSの部分で
 変更(この場合FPS=5に設定している)。
・背景を透明にするなら「RGBA」を選択。

STEP 4画像の出力
《参考》 フレームの切り替えの手順でフレームをフレーム1に戻してから、「Anim」の部分にある「ANIM」ボタンをクリックすれば、レンダリングが開始されます。終了すると、/tmpフォルダ内に出来上がった画像が「0001.png〜0050.png」という名前で保存されます。

画像の結合方法

ここではホームディレクトリにtestフォルダを作成し、そこに出来上がった300x150の画像50枚を保存します。次のコマンドを順番に実行してみて下さい。

$ mkdir ~/test
$ mv /tmp/*.png ~/test
$ cd ~/test
$ convert -append *.png throbber_small.png


最後のconvertコマンドが実際に結合させるコマンドで、一般に次のような形で使います。

縦方向に画像を結合する場合
$ convert -append (元画像)(出力画像)

横方向に画像を結合する場合
$ convert +append (元画像)(出力画像)


元画像の指定はいくつでも可能で、上のようにワイルドカード(*)で指定すると一度に番号順に並べてくれます。画像の順序を入れ替えたい場合は、lsコマンドでファイルのリストを作成し、順序を入れ替え、catコマンドと併用するといいでしょう。

カスタマイズしたXsplashを確認する

あとは、新たに作成した「throbber_small.png」を/usr/share/images/xsplashに保存すれば終了です(もとのthrobber_small.pngは名前を変更してバックアップしておくといいでしょう)。ログインしなおすか、次のコマンドを実行することで、Xsplashが変更されていることを確かめることができます。

$ sudo xsplash

ちなみに、/usr/share/images/xsplashの中には、Xsplashの背景画像やUbuntuのロゴも含まれています。これらを入れ替えれば、背景やロゴを変更することも可能です。ただし、ファイル名はもともと含まれていたものと同一にしておく必要があります。