水草の3DモデルをPythonで手続き生成してみて分かった、個人開発の作業環境に投資すべきもの

個人開発している水槽レイアウトシミュレーター「AquaDraft」で、モス(苔)の質感をどう出すか、しばらく悩んでいました。Blenderでベイクしたテクスチャだと「本物のコケっぽさ」が出なかったので、最終的にBlenderのベイク機能を使わず、Pythonの画像処理ライブラリ(Pillow)で、苔のフロンド(葉の房)を1本1本カーブさせながら伸ばす自前のアルゴリズムを書いてテクスチャそのものを生成する、という方法に落ち着きました。開発の進捗はAquaDraft公式ブログでも随時まとめています。

この作業を通して、「3Dモデリング×コードでの自動化」を個人でやる時に、地味だけど効いてくる投資ポイントがいくつか見えてきたので、実体験ベースでまとめておきます。

結論:効果が大きいのはGPUより先に画面とSSD

3D個人開発というとまずグラフィックボードに目が行きがちですが、実際にモデリング→スクリプト実行→ブラウザ確認を繰り返す作業で真っ先にストレスになったのは「画面が足りないこと」と「アセットの読み書きが遅いこと」でした。

買ってよかった・投資する価値があったもの

機材何に使うか効いた理由
サブモニター(縦置き可)Blenderのビューポートを常時表示コードを書きながら3D形状の変化を横目で確認でき、確認のたびのウィンドウ切り替えが要らなくなる
外付けSSD(USB3.2以上)GLBアセット・Blenderプロジェクトのバックアップ手続き生成は試行錯誤で何十世代もファイルが増える。世代ごと退避できる速い外部ストレージがないと管理が破綻する
静音性の高いメカニカルキーボードパラメータ調整→実行→確認の高速な繰り返し数値を少し変えては再生成、を1日に何十回も繰り返すので、タイプ音のストレスが地味に効いてくる

サブモニターは「BenQ GW2480T」を使っています。高さ調整とピボット(縦回転)ができるスタンドが標準でついているので、コードを縦に長く表示したい時と、Blenderのビューポートを横長で見たい時を、モニターごと回して切り替えられるのが便利です。BenQ GW2480TをAmazonで見る

外付けSSDは「SanDisk Extreme Portable SSD(1TB)」を使っています。手続き生成のテストで数十世代のGLBファイルが積み上がっていくので、書き込み速度が遅いと退避作業自体が待ち時間になります。このモデルは持ち運びサイズながら転送が速く、作業を止めずに退避できるのが決め手でした。SanDisk Extreme Portable SSD(1TB)をAmazonで見る

キーボードは「ロジクール MX Mechanical」を使っています。メカニカルなのに静音仕様として作られているので、1日に何十回もパラメータを打ち直して確認する作業でもタイプ音のストレスがなく、静かな時間帯の作業でも気兼ねなく使えます。ロジクール MX MechanicalをAmazonで見る

Blenderでの手続き生成、地味にハマりやすいポイント

今回の作業では、UV展開やベイクといった重い処理を含む操作でBlenderが不安定になる場面が何度もありました。こうした重い編集系オペレータを避け、メッシュの生成自体をスクリプトだけで完結させる(法線の再計算などの軽い処理に留める)ようにしてから、作業が安定して進むようになりました。個人開発でBlenderをコードから叩く場合、UIから普段何気なく使っている機能ほど、スクリプト経由では相性が悪いことがある、というのは覚えておいて損はないと思います。

公式のPython APIドキュメントは、この手のクラッシュを避ける書き方を探す上でも一番頼りになる一次情報です。

Blender Python API公式ドキュメント

今すぐ買わなくていいもの

ハイエンドのグラフィックボードへの即買い替えは、今回のようなメッシュ生成・テクスチャ生成が中心の作業では優先度が高くありません。ボトルネックになっていたのはGPUの描画性能ではなく、確認作業の往復にかかる手間の方でした。まずは今の環境のどこで手間取っているかを観察してから投資先を決めるのがおすすめです。

まとめ

3Dモデリングとコードを組み合わせた個人開発では、派手なスペックより「確認のたびに発生する小さな手間」を減らす投資の方がリターンが大きい、というのが今回の実感です。まずはサブモニターとSSDから見直してみてください。