Reality その6:ネットワークレンダリングとLinux
Category : Reality
『Reality その2:LuxRenderでのポストワーク』にて、LuxRenderのNetworkタブの解説として、ネットワーク上の他のコンピュータにレンダリング作業を分散させるネットワークレンダリングについて少し触れました。今回はそれがどのくらい有効なのか、実際のレンダリングで検証したいと思います。
LuxRenderでのレンダリングは非常に時間のかかる作業です。寝る前にセットして、朝起きたら止めるなんて余裕です(-_-;) そのため、GPUによるレンダリング補助(将来のバージョンで導入される予定です)やネットワークレンダリングが用意されているのです。しかし、シーンの複雑さによってメモリ使用量が増大するため、レンダリングを行うPCの性能が求められるということは何度かお伝えしてきました。ネットワークレンダリングの作業を分担するスレイブPCがWindowsXP(32bit)では難しいので、今回は64bitLinuxにLuxRenderをインストールしてスレイブとして使うということまでやってしまいます。
※LuxRenderのネットワークレンダリングでは、スレイブPCのOSを問いません。

■ネットワークレンダリングの方法
まずは簡単にネットワークレンダリングの仕方をおさらいしておきます。
※最初にLuxRenderでレンダリングを始めたPCをマスター、作業を分担するPCをスレイブと呼びます。
(1)スレイブPCでluxconsoleをサーバーモードで起動します。
そのためにはコマンドプロンプト(ターミナル、コンソール)で
と実行します。Windowsではスタートメニューに「Start LuxRender Slave」というショートカットがあるので、それを実行して下さい。
この時、表示されるIP Addressを覚えておいて下さい(表示されない場合はifconfigなどのコマンドで確認します)。
luxconsoleとはコマンドラインベースのLuxRenderで、GUIはありませんがもくもくとレンダリングをしてくれるいいヤツです。
(2)マスターPCでレンダリング中にNetworkタブを開き、Server欄に先ほどのIP Addressを入力、+ボタンをクリックします。
(3)データがスレイブPCに送られるのをじっと待ちます。
(4)マスターPCのレンダリングが再開され、Update Intervalの秒数毎にスレイブPCからレンダリングデータが送られてくるようになります。
・スレイブPCでのレンダリングを終了したい場合は、マスターPCのLuxRenderのNetworkタブを開き、Server欄の-ボタンをクリックしてから、スレイブPCのコマンドプロンプトを閉じます。
・マスターPCのLuxRenderを終了させると、スレイブPCのluxconsoleは待機状態になります。
・マスターPCのLuxRenderでレンダリングをPauseまたはStopした場合でも、スレイブPCではレンダリングが継続し、マスターPCへデータを送り続けます。
ネットワークレンダリングをするにはLAN上の他のPCとデータのやり取りをしなければいけません。そのため、アプリケーションの予期しない通信をブロックするファイアウォールソフトが邪魔をしてしまう場合があります。私の場合はWindows7をスレイブとした時Windowsファイアウォールが通信をブロックしていたので、それを許可する必要がありました。
手順としては、コントロールパネルでセキュリティ>Windowsファイアウォールとクリックし、左の「Windows ファイアウォールを介したプログラムまたは機能を許可する」をクリックします。

表示されるリストから「LuxRender Slave」を探してチェックを入れます。ホーム/社内(プライベート)にチェックの入っている方でいいようですが、環境によって変わってくるかもしれません。

■Linux版LuxRenderのインストール
さて、上記の方法で2台のPCを使ってネットワークレンダリングをしようとしたのですが、以前の記事でも書いたように問題がありました。それは、簡単なシーンしかレンダリングできないという点です。スレイブPCとして使おうと思っているマシンは4GBのメモリを積んでいるものの、32bitのWindowsXPです。『Reality その5:32bitWindowsでの運用』の記事で書いたように、V4フィギュア1体置いただけでもテクスチャの量によってはエラーで止まってしまいます。しかもスレイブとして使うPCではLuxRenderはマスターの時よりも多量のメモリが必要になるようです。
※後でわかったことですが、ネットワークのスレイブとなるPCではテクスチャの管理が非効率になってしまっているようです。例えばV4の胴体マテリアルの場合Diffuseテクスチャは1枚しか使われていないのですが、SpecularとBumpテクスチャは同じものが5枚ずつ(マテリアルの数だけ)使われていました(ログとテンポラリフォルダで確認)。しかも、DS上で隠したオブジェクトやパーツもマテリアルファイル上では記述がされているようで、その分のテクスチャもスレイブPCに送られるようです。LuxRenderの問題なのかRealityの問題なのかは不明です。
そこで、無料で導入できる64bitのLinuxをインストールしようと考えました。
ここで私がやった通りに手順を書いても、環境によって同じ工程が必要になるかはわかりませんし、OSのインストールには自分で調べてできるぐらいのスキルがないと危険だと思いましたので、飛ばします。
すんなりいけば、30分ぐらいで起動まで持っていけます。私にとってのチェックポイントはWindowsとのデュアルブートと、マルチディスプレイでした。
私は初Linuxでしたので、無数にあるディストリビューションの中から導入が簡単だと言われているUbuntu10.04(AMD64)を選びました(AMDと書いてありますがIntel機でも使えるようです)。
ここから、Ubuntu(AMD64)にLuxRender(バイナリ)をインストールする手順を解説します。
(1)LuxRenderの公式ページのDownloadより「LuxRender Linux 64bit」をダウンロードします。

※マスターPCと同じバーション(Reality1.01だとv0.7)をダウンロードして下さい。
(2)上のパネルのメニューから 場所>ダウンロード を選択し、ダウンロードフォルダを開きます。

(3)ダウンロードしたファイル(luxrender-0.7-x86_64-sse2.tar.bz2)をダブルクリックします。

(4)書庫マネージャが開きますので、ファイルをデスクトップに展開します。

(5)上のパネルのメニューから アプリケーション>アクセサリ>端末を選択します。

(6)端末が起動しますので、そこでルート権限でファイルマネージャを起動します。
そのためには、端末で
と入力しENTERキーを押します。するとアカウントのパスワードを聞かれるので、入力してENTERキーを押してください。
(7)起動したファイルマネージャで場所ファイルシステムをクリックし、 /usr/local/bin へ移動します。
(8)デスクトップ上の(4)でできたフォルダを開き、その中の実行ファイルを(7)のウィンドウにドラッグ&ドロップします。

※画像では全部移動させていますが、LuxBlend_0.7.pyとpylux.soはBlender用だと思いますので必要なさそうです。
(9)端末のウィンドウをクリックした上でCtrl+cキーを押してファイルマネージャを終了し、端末を閉じます。
必要があれば、パネルのアプリケーションメニューやデスクトップにLuxRenderを登録してください。
■Linuxをネットワークスレイブにする
さて、無事にUbuntuのインストールとLuxRenderのインストールまで済ませました。
これがどのくらいの性能を発揮するのか、このようなシーンで確認してみました。

このシーン、スレイブにWindowsXP 32bitを使うとメモリが足りなくてエラーになってしまいます。そこで、スレイブPCのOSを64bitLinuxに変更し、レンダリング性能を計測します。
マシンの性能はこのようになっています。
<マスターPC>
<スレイブPC>
スレイブPCの起動直後の使用メモリ量は約530MiBです。

上のシーンのレンダリングが始まると3.3GiBまで使用します。

※単位はWindowsで表記されるMB、GBと同じです。
luxconsoleの使用メモリ量は約2.8GiBと、確かにWindowsXP 32bitではエラーが出てしまう量です。
(A1)マスターPCのみのレンダリング
(B1)スレイブPCとのネットワークレンダリング
2倍近くスピードアップがされていることがお分かりいただけたでしょうか?予想以上の効果です。
このスレイブPCではメモリが4GBしか積まれていませんので周りに何もない寂しいシーンになってしまっていますが、もっとメモリを増やせば複雑なシーンでも大丈夫です。一応搭載メモリ量をオーバーしても、HDDのスワップ領域を使うのでレンダリングはできるのですが、速度がガクンと落ちてしまうのでメモリ容量内での使用をオススメします。
このコスチュームが気に入ったので別ポーズでもう1枚レンダリングしました。

(A2)マスターPCのみのレンダリング
(B2)スレイブPCとのネットワークレンダリング
もう少し突き詰めてみようとCUI環境でUbuntuを起動してGUI(GNOME)に使う分のメモリを削減してみました。その場合の起動直後のメモリ使用量は283MiBと、かなり減ります。UbuntuのCUI起動にはGrub2の設定を書き換える方法を使いました。Ubuntuマシンをネットワークレンダリングにだけ使うならコマンドラインだけで十分ですし、問題なくluxconsoleも起動できましたので、これも有効ではないかと思います。
■Linux版LuxRenderでのレンダリング
ここからはおまけコーナーです。
前の記事でWindows32bit環境しか無い場合に、レンダリングのためにLinux64bitを導入するのをご提案しました。
今回せっかくその環境ができたので、ネットワークスレイブとして使うだけではなくスタンドアロンでレンダリングしてみようと思い立ちました。
・Linux版DAZ Studioはありませんので、LuxRenderに渡すファイルはWindows32bit上で作成します。
・Linux上からテクスチャデータが入ったWindowsのパーティションへアクセスする必要があります。
・LinuxはUbuntu10.04(AMD64)で話を進めていきます。
※上でご紹介しているように、ネットワークレンダリングのスレイブとしてLinuxを使う場合は、次のような手続きは必要ありません。アプリケーション1つを立ち上げておくだけで大丈夫です。
(1)Windows32bit上のDAZ Studioでシーンを作成し、LuxRenderでレンダリングを始めます。メモリオーバーしてしまってレンダリングができないとしても諦めず、できたファイルの場所を覚えておきます。
(2)WindowsをシャットダウンしてUbuntuを起動します。
(3)ホームフォルダに作業用の「Reality」フォルダを作成します。
(4)Windowsのパーティションをマウント(上のパネルの場所メニューから目的のものをクリックするだけです)します。
(5)Realityフォルダへ(4)から(1)で作成されたファイル(lxm、lxo、lxsの3つ)をコピーしてきます。
(6)lxmファイルをgeditなどのテキストエディタで開き、テクスチャのパスを書き換えます。UbuntuでマウントしたWindowsパーティションは「/media/<パーティション名>/」というパスになります。Linuxではファイル名などの大文字小文字が別のものとして判別されてしまいますのでご注意下さい。
例えば、Windowsの
C:\/Poserdata/Runtime/Textures/Mytexture.jpg
というパスが、Ubuntuからは
/media/ボリューム/Poserdata/Runtime/Textures/Mytexture.jpg
となったりします。
※テクスチャがたくさんのランタイムから使われている場合は、いっそテクスチャフォルダを全てUbuntuのパーティションへコピーしてしまうのが簡単かもしれません。
(7)lxsファイルをgeditなどのテキストエディタで開き、
"string filename"
のパスも書き換えます。(3)の通りだと
/home/<ユーザー名>/Reality/
というパスになりますね。
(8)LuxRenderを起動して、(3)のファイルをOpenしてレンダリングを開始します。
この方法を使えば、アプリケーションのメモリ2GB制限から解放されるために、結構複雑なシーンでもレンダリングできるようになります。
しかし、この方法で一番のネックになるのが、シーンを調整するのにはWindowsへ戻らなくてはいけないという所です。いちいちPCを再起動するのにはちょっと大変ですよね。
LuxRenderのメモリを圧迫する一番の原因はテクスチャの解像度です。そこで、Windows側では低解像度のテクスチャを用意して使い、Ubuntuでテクスチャのパスを書き変える際に高解像度のテクスチャへ変えてしまう、というのはどうでしょうか?
64bitのWindows7などを購入するのが一番なんですけどね。
とりあえず、同じシーンをレンダリングした時の速度を比較してみました。
WindowsXP 32bit : 53156S/s
Ubuntu10.04 64bit : 67311S/s
※同じマシンでOSを変更した環境での比較です。
64bit効果かOSの差かはわかりませんが、かなりの速度アップができています!
今回のツールと画像の素材はこちら
LuxRenderでのレンダリングは非常に時間のかかる作業です。寝る前にセットして、朝起きたら止めるなんて余裕です(-_-;) そのため、GPUによるレンダリング補助(将来のバージョンで導入される予定です)やネットワークレンダリングが用意されているのです。しかし、シーンの複雑さによってメモリ使用量が増大するため、レンダリングを行うPCの性能が求められるということは何度かお伝えしてきました。ネットワークレンダリングの作業を分担するスレイブPCがWindowsXP(32bit)では難しいので、今回は64bitLinuxにLuxRenderをインストールしてスレイブとして使うということまでやってしまいます。
※LuxRenderのネットワークレンダリングでは、スレイブPCのOSを問いません。

■ネットワークレンダリングの方法
まずは簡単にネットワークレンダリングの仕方をおさらいしておきます。
※最初にLuxRenderでレンダリングを始めたPCをマスター、作業を分担するPCをスレイブと呼びます。
(1)スレイブPCでluxconsoleをサーバーモードで起動します。
そのためにはコマンドプロンプト(ターミナル、コンソール)で
luxconsole -s
と実行します。Windowsではスタートメニューに「Start LuxRender Slave」というショートカットがあるので、それを実行して下さい。
この時、表示されるIP Addressを覚えておいて下さい(表示されない場合はifconfigなどのコマンドで確認します)。
luxconsoleとはコマンドラインベースのLuxRenderで、GUIはありませんがもくもくとレンダリングをしてくれるいいヤツです。
(2)マスターPCでレンダリング中にNetworkタブを開き、Server欄に先ほどのIP Addressを入力、+ボタンをクリックします。
(3)データがスレイブPCに送られるのをじっと待ちます。
(4)マスターPCのレンダリングが再開され、Update Intervalの秒数毎にスレイブPCからレンダリングデータが送られてくるようになります。
・スレイブPCでのレンダリングを終了したい場合は、マスターPCのLuxRenderのNetworkタブを開き、Server欄の-ボタンをクリックしてから、スレイブPCのコマンドプロンプトを閉じます。
・マスターPCのLuxRenderを終了させると、スレイブPCのluxconsoleは待機状態になります。
・マスターPCのLuxRenderでレンダリングをPauseまたはStopした場合でも、スレイブPCではレンダリングが継続し、マスターPCへデータを送り続けます。
ネットワークレンダリングをするにはLAN上の他のPCとデータのやり取りをしなければいけません。そのため、アプリケーションの予期しない通信をブロックするファイアウォールソフトが邪魔をしてしまう場合があります。私の場合はWindows7をスレイブとした時Windowsファイアウォールが通信をブロックしていたので、それを許可する必要がありました。
手順としては、コントロールパネルでセキュリティ>Windowsファイアウォールとクリックし、左の「Windows ファイアウォールを介したプログラムまたは機能を許可する」をクリックします。

表示されるリストから「LuxRender Slave」を探してチェックを入れます。ホーム/社内(プライベート)にチェックの入っている方でいいようですが、環境によって変わってくるかもしれません。

■Linux版LuxRenderのインストール
さて、上記の方法で2台のPCを使ってネットワークレンダリングをしようとしたのですが、以前の記事でも書いたように問題がありました。それは、簡単なシーンしかレンダリングできないという点です。スレイブPCとして使おうと思っているマシンは4GBのメモリを積んでいるものの、32bitのWindowsXPです。『Reality その5:32bitWindowsでの運用』の記事で書いたように、V4フィギュア1体置いただけでもテクスチャの量によってはエラーで止まってしまいます。しかもスレイブとして使うPCではLuxRenderはマスターの時よりも多量のメモリが必要になるようです。
※後でわかったことですが、ネットワークのスレイブとなるPCではテクスチャの管理が非効率になってしまっているようです。例えばV4の胴体マテリアルの場合Diffuseテクスチャは1枚しか使われていないのですが、SpecularとBumpテクスチャは同じものが5枚ずつ(マテリアルの数だけ)使われていました(ログとテンポラリフォルダで確認)。しかも、DS上で隠したオブジェクトやパーツもマテリアルファイル上では記述がされているようで、その分のテクスチャもスレイブPCに送られるようです。LuxRenderの問題なのかRealityの問題なのかは不明です。
そこで、無料で導入できる64bitのLinuxをインストールしようと考えました。
ここで私がやった通りに手順を書いても、環境によって同じ工程が必要になるかはわかりませんし、OSのインストールには自分で調べてできるぐらいのスキルがないと危険だと思いましたので、飛ばします。
すんなりいけば、30分ぐらいで起動まで持っていけます。私にとってのチェックポイントはWindowsとのデュアルブートと、マルチディスプレイでした。
私は初Linuxでしたので、無数にあるディストリビューションの中から導入が簡単だと言われているUbuntu10.04(AMD64)を選びました(AMDと書いてありますがIntel機でも使えるようです)。
ここから、Ubuntu(AMD64)にLuxRender(バイナリ)をインストールする手順を解説します。
(1)LuxRenderの公式ページのDownloadより「LuxRender Linux 64bit」をダウンロードします。

※マスターPCと同じバーション(Reality1.01だとv0.7)をダウンロードして下さい。
(2)上のパネルのメニューから 場所>ダウンロード を選択し、ダウンロードフォルダを開きます。

(3)ダウンロードしたファイル(luxrender-0.7-x86_64-sse2.tar.bz2)をダブルクリックします。

(4)書庫マネージャが開きますので、ファイルをデスクトップに展開します。

(5)上のパネルのメニューから アプリケーション>アクセサリ>端末を選択します。

(6)端末が起動しますので、そこでルート権限でファイルマネージャを起動します。
そのためには、端末で
sudo nautilus
と入力しENTERキーを押します。するとアカウントのパスワードを聞かれるので、入力してENTERキーを押してください。
(7)起動したファイルマネージャで場所ファイルシステムをクリックし、 /usr/local/bin へ移動します。
(8)デスクトップ上の(4)でできたフォルダを開き、その中の実行ファイルを(7)のウィンドウにドラッグ&ドロップします。

※画像では全部移動させていますが、LuxBlend_0.7.pyとpylux.soはBlender用だと思いますので必要なさそうです。
(9)端末のウィンドウをクリックした上でCtrl+cキーを押してファイルマネージャを終了し、端末を閉じます。
必要があれば、パネルのアプリケーションメニューやデスクトップにLuxRenderを登録してください。
■Linuxをネットワークスレイブにする
さて、無事にUbuntuのインストールとLuxRenderのインストールまで済ませました。
これがどのくらいの性能を発揮するのか、このようなシーンで確認してみました。

Character: | Victoria 4.2 : Elite Utopian |
---|---|
Skin: | Angel for V4 |
Hair: | V4 Ranger , Ranger Hair Color and Movement |
Costume: | Fighting Fae Armor for V4 |
Renderer: | LuxRender through Reality plugin |
このシーン、スレイブにWindowsXP 32bitを使うとメモリが足りなくてエラーになってしまいます。そこで、スレイブPCのOSを64bitLinuxに変更し、レンダリング性能を計測します。
マシンの性能はこのようになっています。
<マスターPC>
OS: | Windows7 64bit |
CPU: | Intel Core2Quad Q9550 (4コア2.83GHz) |
Memory: | 8GB |
Graphic: | Geforce 9600GT 512MB |
<スレイブPC>
OS: | Ubuntu10.04 AMD64 |
CPU: | AMD AthlonII X4 620 (4コア2.6GHz) |
Memory: | 4GB |
Graphic: | Radeon HD5450 512MB |
スレイブPCの起動直後の使用メモリ量は約530MiBです。

上のシーンのレンダリングが始まると3.3GiBまで使用します。

※単位はWindowsで表記されるMB、GBと同じです。
luxconsoleの使用メモリ量は約2.8GiBと、確かにWindowsXP 32bitではエラーが出てしまう量です。
(A1)マスターPCのみのレンダリング
レンダリング時間: | 2時間21分14秒 |
平均のサンプリング数/秒: | 114932TotS/s |
画像のサンプリング数/pixel: | 2000S/px |
(B1)スレイブPCとのネットワークレンダリング
レンダリング時間: | 1時間16分38秒 |
平均のサンプリング数/秒: | 214640TotS/s |
画像のサンプリング数/pixel: | 2026S/px |
2倍近くスピードアップがされていることがお分かりいただけたでしょうか?予想以上の効果です。
このスレイブPCではメモリが4GBしか積まれていませんので周りに何もない寂しいシーンになってしまっていますが、もっとメモリを増やせば複雑なシーンでも大丈夫です。一応搭載メモリ量をオーバーしても、HDDのスワップ領域を使うのでレンダリングはできるのですが、速度がガクンと落ちてしまうのでメモリ容量内での使用をオススメします。
このコスチュームが気に入ったので別ポーズでもう1枚レンダリングしました。

(A2)マスターPCのみのレンダリング
レンダリング時間: | 1時間39分49秒 |
平均のサンプリング数/秒: | 162625TotS/s |
画像のサンプリング数/pixel: | 2000S/px |
(B2)スレイブPCとのネットワークレンダリング
レンダリング時間: | 52分44秒 |
平均のサンプリング数/秒: | 313430TotS/s |
画像のサンプリング数/pixel: | 2036S/px |
もう少し突き詰めてみようとCUI環境でUbuntuを起動してGUI(GNOME)に使う分のメモリを削減してみました。その場合の起動直後のメモリ使用量は283MiBと、かなり減ります。UbuntuのCUI起動にはGrub2の設定を書き換える方法を使いました。Ubuntuマシンをネットワークレンダリングにだけ使うならコマンドラインだけで十分ですし、問題なくluxconsoleも起動できましたので、これも有効ではないかと思います。
■Linux版LuxRenderでのレンダリング
ここからはおまけコーナーです。
前の記事でWindows32bit環境しか無い場合に、レンダリングのためにLinux64bitを導入するのをご提案しました。
今回せっかくその環境ができたので、ネットワークスレイブとして使うだけではなくスタンドアロンでレンダリングしてみようと思い立ちました。
・Linux版DAZ Studioはありませんので、LuxRenderに渡すファイルはWindows32bit上で作成します。
・Linux上からテクスチャデータが入ったWindowsのパーティションへアクセスする必要があります。
・LinuxはUbuntu10.04(AMD64)で話を進めていきます。
※上でご紹介しているように、ネットワークレンダリングのスレイブとしてLinuxを使う場合は、次のような手続きは必要ありません。アプリケーション1つを立ち上げておくだけで大丈夫です。
(1)Windows32bit上のDAZ Studioでシーンを作成し、LuxRenderでレンダリングを始めます。メモリオーバーしてしまってレンダリングができないとしても諦めず、できたファイルの場所を覚えておきます。
(2)WindowsをシャットダウンしてUbuntuを起動します。
(3)ホームフォルダに作業用の「Reality」フォルダを作成します。
(4)Windowsのパーティションをマウント(上のパネルの場所メニューから目的のものをクリックするだけです)します。
(5)Realityフォルダへ(4)から(1)で作成されたファイル(lxm、lxo、lxsの3つ)をコピーしてきます。
(6)lxmファイルをgeditなどのテキストエディタで開き、テクスチャのパスを書き換えます。UbuntuでマウントしたWindowsパーティションは「/media/<パーティション名>/」というパスになります。Linuxではファイル名などの大文字小文字が別のものとして判別されてしまいますのでご注意下さい。
例えば、Windowsの
C:\/Poserdata/Runtime/Textures/Mytexture.jpg
というパスが、Ubuntuからは
/media/ボリューム/Poserdata/Runtime/Textures/Mytexture.jpg
となったりします。
※テクスチャがたくさんのランタイムから使われている場合は、いっそテクスチャフォルダを全てUbuntuのパーティションへコピーしてしまうのが簡単かもしれません。
(7)lxsファイルをgeditなどのテキストエディタで開き、
"string filename"
のパスも書き換えます。(3)の通りだと
/home/<ユーザー名>/Reality/
というパスになりますね。
(8)LuxRenderを起動して、(3)のファイルをOpenしてレンダリングを開始します。
この方法を使えば、アプリケーションのメモリ2GB制限から解放されるために、結構複雑なシーンでもレンダリングできるようになります。
しかし、この方法で一番のネックになるのが、シーンを調整するのにはWindowsへ戻らなくてはいけないという所です。いちいちPCを再起動するのにはちょっと大変ですよね。
LuxRenderのメモリを圧迫する一番の原因はテクスチャの解像度です。そこで、Windows側では低解像度のテクスチャを用意して使い、Ubuntuでテクスチャのパスを書き変える際に高解像度のテクスチャへ変えてしまう、というのはどうでしょうか?
64bitのWindows7などを購入するのが一番なんですけどね。
とりあえず、同じシーンをレンダリングした時の速度を比較してみました。
WindowsXP 32bit : 53156S/s
Ubuntu10.04 64bit : 67311S/s
※同じマシンでOSを変更した環境での比較です。
64bit効果かOSの差かはわかりませんが、かなりの速度アップができています!
今回のツールと画像の素材はこちら
![]() Reality 4 - DAZ Studio Edition |
![]() Angel for V4 | ![]() V4 Ranger | ![]() Ranger Hair: Color and Movement |
![]() Fighting Fae Armor for V4 |
関連エントリー