株式会社サムザップは9月8日(火)、技術ブログ「Sumzap Engineering Blog」にて記事「RenderMeshPrimitivesでブロックを大量描画して動かす」を公開した。Unityの描画API「Graphics.RenderMeshPrimitives」の活用記事で、同社開発推進室のグラフィックスエンジニア・財津大睦氏が執筆。画像を最大約104万個のブロックで再構成し、GameObjectとの描画性能の比較や、Vertex ShaderとCompute Shaderによるアニメーション表現の実装方法を解説している。

ピクセル情報から画像を立体化して性能の限界を検証

本記事では、サムザップのバーチャル社員「宇田川きいろ」の画像を大量のキューブで再構成する表現を題材に、描画の高速化とアニメーションの実装を解説。まず、元画像のピクセルを一定間隔で間引くダウンサンプリングを行い、透明やほぼ黒のピクセルを除外。残ったピクセルの位置と色情報を取得し、それぞれを1個のブロックに対応させる。

最初の検証では、ブロックをUnityのGameObjectとして個別に生成し、同じメッシュとマテリアルを共有しながら配置した。この方法でも画像を再現できるが、ブロック数の増加に伴って処理負荷が急増。約10万個を表示した段階でフレームレートは約6FPSまで低下した。

RenderMeshPrimitivesの利用で約104万個のブロックでも435FPS以上に

そこで、同一メッシュの大量描画に適したAPI「Graphics.RenderMeshPrimitives」による高速化を試みている。このAPIを用いると、通常のGameObjectによる描画とは異なり、各ブロックの位置や色情報をGraphicsBufferにまとめてGPUへ転送し、シェーダ側で個々のブロックを描き分ける。CPUからブロックごとに描画命令を発行する必要がなくなり、処理負荷を大幅に削減できる。

MacBook Pro(M4 Max)、Unity 6000.5.0f1、URP 17.5.0での検証では、約10万個のブロックをGameObjectで表示すると5.7〜5.8FPSだったのに対し、RenderMeshPrimitivesでは710〜865FPSを記録。シーン全体のDraw Callも54,525回から42回に減少した。

さらに、ブロック数を約104万個に増やしてもドローコールは42回のまま、435〜439FPSを維持。なお、数値はいずれもUnity EditorのStatisticsウィンドウによる計測結果だ。

GPU処理で波や反発、重力崩壊をアニメーション表現

▲Vertex Shaderによる波の表現

記事後半では、RenderMeshPrimitivesで大量描画したブロックにアニメーションを付ける方法を解説。財津氏は、動きの実装方法について「前フレームの状態が必要かどうか」が重要になると説明する。

時間の経過だけで位置を決められる動きにはVertex Shaderを使用。ブロック全体が波打つ表現や、散らばったブロックが下から順に集まり、元の画像へ組み上がる演出を実装している。

一方、前フレームの位置や速度を引き継ぐ必要がある動きにはCompute Shaderを使用。カーソルを近付けるとブロックが磁石のように反発し、離すと元に戻る表現や、ブロックが重力で崩れ落ちて山状に積もる表現を実装した。重力崩壊では物理エンジンを使わず、GPU上で落下や反発、停止を計算する。各手法のシェーダコードやC#側の処理も掲載されている。

■RenderMeshPrimitivesでブロックを大量描画して動かす(Sumzap Engineering Blog)
https://tech.sumzap.co.jp/entry/graphic-api-mass-mesh-rendering

CGWORLD関連情報

●THINK AND SENSEが制作を手がけた「山寺ギャラリア」オープン Unity製VFXシステムや実写とAIを融合した映像表現を採用

名湯一門高見屋が運営する体験型アート施設「山寺ギャラリア」が山形県山形市にオープン。総合プロデュース・企画はティーアンドエス、制作は同社のクリエイティブ部門THINK AND SENSEが担当。山寺(宝珠山立石寺)に伝わる約1,200年の精神文化を、映像、光、音、香りと身体反応に連動するインタラクティブ表現で再解釈した。現地での実写撮影や3Dスキャン、生成AIを組み合わせた制作に加え、Unityを用いた独自VFXシステムも導入されている。
https://cgworld.jp/flashnews/01-202611-Yamadera.html

●モノリスソフト、Houdiniによるプロシージャルなツタ生成ツールの紹介記事を公開 成長方向や巻きつき、分岐をパラメータ制御、サンプルファイルも無償提供

モノリスソフトが同社TECH BLOGに技術解説記事「プロシージャルにツタわさわさ~」を公開。社内R&Dの一環として制作されたHoudini用のプロシージャルツタ生成ツールを紹介する内容で、ツタの発生点とコリジョンを指定するだけで、任意の3Dモデルにツタを自動生成できる。サンプルファイルも公開されている。
https://cgworld.jp/flashnews/01-202610-Monolith-Ivy.html

●コロプラ、『異世界∞異世界』キャラモデル仕様を公開 モバイルゲームとして品質と量産性のバランスを確保するためのモデル作成ルールを詳説

コロプラが公式note「COLOPL Creators」にモバイルゲーム『異世界∞異世界』(2026年4月サービス終了)における3Dキャラクターモデルの仕様を紹介する技術記事「異世界∞異世界 キャラモデル仕様紹介」を公開。多様なアニメIPのキャラクターが登場する運営型モバイルゲームにおいて、モデルの品質と量産性のバランスをいかに両立させたかについて、ポリゴン数やテクスチャ、頂点カラー、ボーン、法線調整などの具体的かつ詳細なワークフローと技術仕様を、3Dキャラクターアーティストの菅野氏が解説している。
https://cgworld.jp/flashnews/01-202610-Colopl-Isekai.html