STYLYやSketchfabに3Dファイルをアップする場合、容量の上限が50MBなので、それより大きいファイルの場合は容量を削減するのにLinuxが動くChromebookやCloudReadyで使えるBlenderアプリを紹介します。
はじめに
以下の記事でSTYLYにSketchfabからダウンロードした3Dモデルをアップして使ったVR作品の制作事例を紹介しました。
https://chrome-vr.com/2019/08/chromebookvrwebstylysketchfab3dcg.html
この時にアップした3Dモデルはファイル容量が50MB以下のものを選びましたが、実はその前に私のSketchfabページで公開している3Dモデルで一番人気の以下のモデルで試しました。
https://sketchfab.com/3d-models/taey-02-1-c73c228ab30f4f9eb64643cdfc0a3ecb
ところが、実際にアップロードしようとすると50MBを超えていたのでアップロードできないとメッセージが表示されアップロードできませんでした。
前回は50MB以下のモデルに変更してアップロードしましたが、今回はLinuxが動くChromebookやCloudReadyで使える無料の3DCG汎用アプリ「Blender」を使ってポリゴン数を減らすことでファイル容量の削減を試みました。
ポリゴン数を半分に削減した後で、Blenderからエクスポートするファイル形式をいくつか試したところBlenderがクラッシュしたりテクスチャーが付かなくて真っ白だったりと試行錯誤しました。
結果的にうまくいった方法を成功事例として紹介します。
今回紹介する方法がベストなわけではなく、もっと最適化して効率的な方法を見つけるつもりです。
特に、ポリゴン数を減らさなくても、テクスチャー画像の容量を減らすだけの方法でファイル容量を減らせるので、応用すれば簡単に作業できるようになると思います。
Chromebook/CloudReadyへのBlenderインストール
Linuxが動かない古い機種のChromebookもあるので気をつけてください。
https://chrome-vr.com/2019/08/chromebooklinuxlinuxcrostini.html
CloudReadyでChromebook化したPCはLinuxが使えます。
https://chrome-vr.com/2019/08/cloudreadylinuxpclinux.html
Linuxが使える状態にあるChromebookやCloudReady PC上でflathubからLinux版Blenderをインストールします。上記の記事でSpotifyをインストールした方法と同じです。
flatfabサイトへ行きます。
「Blender」をクリック。
下にスクロールします。
「Install:」のコマンドラインの右にある四角アイコンをクリックしてコピー。
画面左下の丸いアイコンをクリックして「Linuxアプリ」をクリックし「ターミナル」を起動します。
「sudo (スペース)」の後ろを右クリックしてコマンドラインを貼り付けEnterを押します。
以上でBlenderがインストールされました。一度シャットダウンし再起動します。
Blenderの使い方と起動
Blender初心者には操作方法が特殊なのでやっかいなアプリですが、今回は3Dファイル容量を削減することに特化した使い方のみに使用します。
以下の記事が参考になります。ここの下の方で説明してある最低限のBlenderキーボード・ショートカットは覚えてください。
http://slis.tsukuba.ac.jp/~fujisawa.makoto.fu/lecture/iml/text/blender.html
今回紹介するChromebookやCloudReadyのLinux版Blenderはこの記事のスクリーンショットとは異なる部分があるので、操作の流れを把握する程度にしてください。
画面左下の丸いアイコンをクリックして「Linuxアプリ」をクリック。
「Blender」をクリック。
起動するのにかなり時間がかかるので気長に待ちます。
「Next」をクリック。
左上の「General」をクリック。
ちなみに2回目以降の起動では、上記の画面の右側に最近使ったファイルが表示されるので、それをクリックします。
Modifierアドオンを有効化
左上のメニュー「Edit > Preferences…」をクリック。
左側の「Add-ons」タブをクリックし、「3D View: Modifier Tools」の左の四角をクリックしてチェックを入れ閉じます。
画面右側のパネルにスパナアイコン(Modifier)が加わったことを確認しクリック。
この時に「Cube」が選択状態になければ上のパネルでクリックして選択します。
上の「Add Modifier」をクリック。
「Decimate」をクリック。
「Ratio」をファイル容量を削減したい比率くらいにセットすればポリゴン数が減ります。
減る前と減った後の比較は、画面右下のステータスバーで見れます。
3Dモデルをインポート
「Cube」を右クリックして削除(delete)しておきます。
Chrome OSのファイルアプリで「Linuxファイル」に、ダウンロードした3Dモデルのファイルをコピーしておきます。
上記の上の2つのフォルダーは他の用途で使っているので無視してください。
BlenderはSTYLYのようにZIPファイルのまま読み込むことはできないので、ダブルクリックして開きLinuxファイルにコピーします。
Blenderのメニュー「File > Import > glTF 2.0 (.glb/.gltf)」をクリック。
読み込むのに少々時間がかかるので気長に待ちます。
Blenderは進捗を示すプログレスがほとんどの場合表示されないし、マウスカーソルもクルクル回らないので、時々フリーズしたように感じることがありますが、そのうち画面に反映されるので待ちましょう。
ポリゴン数を半分にする
モデルのサイズが大きすぎて全身が見えませんが、モデルの大きさ自体は今回は変えずに、カメラを引いて全体を表示します。マウスホイールを回して大きさを調整します。
モデルに色が付いていませんが、Chromebook上のLinux(Crostini)ではOpneGLが使えないのでGPUの恩恵に預かれず色や質感の表示にかなりの時間がかかります。
色が付いていない状態である程度作業して、色を確認する段階で右上のシェーディングモードを変更します。
変更が反映するまでかなり時間がかかるので気長に待ちます。画面の下にプログレスが表示されますがあまり当てになりません。
「A」ですべてのオブジェクトを選択状態にして、「Decimate」で「Ratio」を「0.5」にするとポリゴン数が半分に減ります。画面右下のステータス表示で確認できます。
すべてのオブジェクトに適用するには、マウスカーソルをシーン上に置いて「Ctrl + L」を押すとメニューがポップアップします。
「Modifiers」をクリックすればすべての(選択されている)オブジェクトに適用されます。
Before:(時刻は後になっていますが・・・)
After:
これでポリゴン数が半分の状態になったので、ここで一度メニュー「File > Save As…」から.blend形式で保存しておきます。
ちなみに、.blend形式で保存したファイル容量は約88MBと大きいので、これをSTYLYやSketchfabにはアップロードできません。
エクスポートの成功事例
「Collada(Default) (.dae)」形式でエクスポートします。
.daeファイルと画像ファイル群(.jpeg/.png)がLinuxファイルに出力されるので「textures」というフォルダーに画像ファイル群を移動します。
この時におそらく読み込んだ3Dモデルの「textures」フォルダーがあると思うので、それのファイル名を例えば「textures-org」などに変更しておきます。
ところが、新しい「textures」フォルダー内の画像の数が元の「textures-org」フォルダー内の画像の数より2つ少なかったので、不足している画像2つを「textures」フォルダーにコピーしました。
.daeのテクスチャー画像は元のテクスチャー画像の容量よりかなり小さくなっているので、こちらにテクスチャー画像を差し替えて「scene.gltf」と「scene.bin」とともにZIP圧縮します。
ファイル名は分かりやすくするために「taey-gltf-dae-textures.zip」に変更しています。
結果的には、ポリゴン数はそのままで、テクスチャー画像の容量が少ないZIPファイルが出来上がり、そのファイル容量は約22MBと、半分以下に削減できました。
STYLYに読み込んでみる
以下のように問題なく読み込めました。
まとめ
今回は成り行き上、ポリゴン数を半分にしたモデルをCollada形式でエクスポートしてテクスチャー画像群を差し替えてZIPファイルにしましたが、おそらくポリゴン数を半分にする必要は無いと思われます。
もっとも、VRやアニメーションの制作ではポリゴン数を削減する作業が必要になるケースも今後出てくると思われるので、ここで紹介した方法は今後に活かせると思います。
Chrome OSのLinux(Crostini)ではOpenGLが使えないのでGPUの恩恵に預かれないため、Blenderのような汎用的な3DCGアプリを本格的に使うには使い勝手が悪いです。
今回のようにちょっとしたファイル変換ツールとしては使えます。用途を限定して使えばそれなりに有用な気がします。
ではでは、きらやん