Skip to content

Desuq Cafe

Loom

プレビュー

Blender から Unity・Unreal へのライブリンク

Blender · source Unity Unreal one binary link · two engines
1 つの Blender プロデューサー(左)が、単一のバイナリリンクを通じて 2 つのライブなエンジンビューポート、Unity と Unreal に配信します。それぞれ生成されたプロシージャルマテリアルでシェーディングされ、変更があった部分だけがワイヤーを渡ります。

Blender でモデリングしながら、その結果を Unity や Unreal で即座に確認できます。Loom はメッシュ、リグ、ライト、カメラ、マテリアルを直接のバイナリリンクでエンジンのビューポートへそのまま配信します。頂点を編集し、アニメーションをスクラブし、ライトを調整すれば、数ミリ秒で反映されます。エクスポートも、FBX の往復も、中継サーバーも不要です。納得できたら、セッション全体を実際の prefab、Blueprint、アセットへベイクします。Loom はプレビューであり、パイプラインです。

Blender Unity Unreal Python C# C++

エクスポートではなくライブ

Blender で編集すると、エンジンのビューポートが数ミリ秒で更新されます。FBX も、中継も、ディスクもありません。

2 つのエンジン、1 本のワイヤー

1 つの Blender プロデューサーが Unity(URP)と Unreal を同等に駆動します。どちらも同じプロトコル上で動きます。

メッシュだけでなくマテリアルも

20 以上のシェーダーノードを実際の URP シェーダーへトランスパイルし、19 種類すべての Mix ブレンドモードを Blender のソースから移植しています。

おもちゃではなくパイプライン

ライブセッションを実際の prefab、Blueprint、アセットへベイクし、ベイク時にコライダーと LOD も付与します。

同期される内容

Loom の守備範囲の広さこそが要点です。ライブリンクはシーンのほぼ全体を運び、ここに挙げたものはすべて、開いたどちらのエディタにも届きます。

  • 9 種類の Blender オブジェクト:メッシュ、カーブ、テキスト、サーフェス、メタボール、アーマチュア、ライト、カメラ、エンプティ
  • 1〜8 のすべての UV チャンネルに加え、RGBA 頂点カラー。大きなメッシュ向けに 32 ビットインデックスに対応
  • アーマチュアとシェイプキー。ライブなポーズとブレンドシェイプのウェイトも
  • 4 種類のライト、被写界深度を備えた透視投影・平行投影カメラ
  • ワールドの HDRI とフォグ
  • コレクション、ジオメトリノード、パーティクルのインスタンシング。リンク複製の重複排除付き
  • コンテンツ単位で重複排除されたテクスチャを備えた Principled マテリアル
  • 20 以上のシェーダーノードを実際の URP シェーダーへトランスパイル、19 種類すべての Mix ブレンドモード
  • ライブなコライダー、LOD グループ、ゲーム向けのレイヤー・タグ・static ルーティング

2 つのエンジン、1 本のリンク

Loom は Blender のプロデューサーであり、2 つの一級のコンシューマーを持ちます。同じワイヤーが両方を駆動するため、あらゆる機能がどちらのエディタにも届きます。Unreal では、各 Unity の概念に対して慣用的な対応先を使うだけです。

Unity では Unreal では
ライブメッシュ MeshFilter + MeshRenderer / SkinnedMeshRenderer UDynamicMeshComponent(CPU 線形ブレンドスキニング)
マテリアル 生成された URP シェーダー / URP Lit Custom ノードに移植した HLSL を持つ LoomLit UMaterial
インスタンシング RenderMeshInstanced による散布 UInstancedStaticMeshComponent(インスタンスごとのデータ)
ライトとカメラ Light / Camera(+ 被写界深度) U*LightComponent / UCineCameraComponent
LOD LODGroup + 子メッシュ 1 つのマルチ LOD な UStaticMesh
アニメーション .anim AnimationClip UAnimSequence(+ モーフターゲットカーブ)
ベイク prefab(.prefab) 保存済みアセット上に再利用可能な BP_LoomBake Blueprint

マテリアルとシェーダー

多くのライブブリッジはジオメトリで止まります。Loom は Blender のシェーダーノードグラフを、実際にコンパイルされるシェーダー、Unity では URP の .shader、Unreal では LoomLit マテリアル内の移植された HLSL へトランスパイルします。平坦な近似ではありません。プロシージャルノードは Blender 5.1 自身のソースから移植しているため、生成されたシェーダーは Blender の見た目を推測するのではなく再現します。

20 以上のノードを実際のシェーダーへトランスパイル

  • Noise(厳密な Perlin fBM)
  • Voronoi(厳密な PCG ハッシュ)
  • Mix Color(全 19 モード)
  • ColorRamp
  • Math
  • Vector Math
  • Map Range
  • Mapping
  • Image Texture
  • Bump
  • Normal Map
  • Fresnel
  • Layer Weight
  • Gradient
  • Checker
  • Wave
  • Magic
  • Separate / Combine
  • Object Info
  • Texture Coordinate
  • 実際にコンパイルされるシェーダーで、プレビュー用のごまかしではありません。生成されたシェーダーは Forward と Deferred、シャドウ、深度プリパス、SSAO に対応します。
  • 忠実なフォールバック。非対応のグラフは正確な Principled マテリアルへ縮退し、オフラインの事前スキャンが接続前に該当ノードを名指しします。
  • 自分のマテリアルを固定。任意の Blender マテリアルやオブジェクトを自分のエンジンマテリアルで上書きでき、再同期のたびに保持されます。
  • テクスチャを正しく処理。コンテンツ単位で重複排除し、エンジンのマップスロット(メタリックとグロス、ノーマルと強度、オクルージョン)へパックし、HDR を保持します。

高速な理由

Loom は GPU がそのまま扱えるバイトを、変更があった分だけ送ります。同期経路では、テキストへのシリアライズもディスクへの書き込みも行いません。

  • 直接のバイナリリンク。生の float32 と uint32 バッファが Blender の numpy からエンジンへ直行します。JSON も、中継も、ディスクもありません。
  • 変更分だけ。オブジェクトを動かすと 40 バイトのトランスフォームパケットを送ります。スカルプトやアニメーションは位置だけをストリーミングし、シーン全体を送ることはありません。
  • ノンブロッキング。ソケット I/O はワーカースレッドで動くため、どちらのエディタもカクつきません。
  • 自己修復。スクリプトの再コンパイルや切断を乗り越え、再接続するとシーン全体を再同期します。

ピクセル忠実、しかも証明可能

守備範囲の広さは、結果が正しくてこそ意味を持ちます。Loom は見た目が一致し、一致し続けるように作られています。

  • 目測ではなくソースから移植。プロシージャルテクスチャと 19 種類すべての Mix モードは、Blender 5.1 自身のシェーダーソースから、厳密な Perlin と PCG ハッシュに至るまで移植しています。
  • 1 本のワイヤー、3 つの実装、バイト単位で一致を証明。Python のプロデューサーと C# および C++ のコンシューマーは、同じゴールデンなワイヤーバイトのフィクスチャで検証されます。
  • エディタを閉じたままエンドツーエンドでテスト。ヘッドレスの Blender と Unity のスイートが、実際のシリアライズ、ソケット、再構築、ベイクの経路を CI で駆動します。.blend から .prefab への完全なビルドも含みます。

プレビューから本番へ

ライブプレビューは行き止まりではありません。実際のプロジェクトアセットへと巣立ちます。

prefab / Blueprint へベイク

共有メッシュと生成マテリアルは単一アセットへ重複排除され、ノードグラフシェーダーは実際のファイルとして残り、ツリー上に prefab または BP_LoomBake Blueprint が保存されます。

ベイク時点でゲーム対応

ベイクしたアセットにライトマップ UV と static GI フラグ、LOD グループ、コライダーを生成します。

AnimationClip へベイク

ボーンとブレンドシェイプのアニメーションのフレーム範囲を、Unity の .anim クリップや Unreal の UAnimSequence に取り込みます。

記録と再生

ライブストリームを .loomcache ファイルへ記録し、同じビルダーで再生して、オフラインレビューや回帰テスト用フィクスチャに使えます。

ヘッドレス / CI ベイク

エディタを一切開かずに .blend から .prefab へのビルドを駆動できるため、机に向かうアーティストだけでなく、スタジオのビルドシステムでも Loom を使えます。

制御、安全性、手ざわり

  • 選択的な同期。単一のコレクションや選択部分だけを配信し、完成したオブジェクトをフリーズして、他を調整する間は更新を止められます。
  • 既定は一方向、手編集の保護付き。エンジン側で同期オブジェクトを少し動かしても、解放するまでは上書きされず一時停止されます。
  • オプトインの双方向編集。トランスフォームや選択を Blender へ押し戻したり、非対応グラフのマテリアルをエンジン側からマップへオンデマンドでベイクしたりできます。
  • プレイモード中の同期。ライブ編集は実行中のセッションへ配信され、ドメインリロードを乗り越えます。プレイ中であることを示す明確なインジケーター付きです。
  • localhost では設定不要。スループット、キューの深さ、まとめられたフレーム、最も重いオブジェクトをライブ HUD で表示します。

対応環境

  • Blender 4.2 以降(5.1 で開発)
  • Universal Render Pipeline(URP)を使用する Unity 2022.3 LTS 以降
  • Unreal Engine 5.4〜5.8、C++ プロジェクト、Win64
  • 同一マシン上でエディタ間をループバック TCP で接続(既定は 127.0.0.1:8787)

提供状況

Loom はプレビュー段階で、まだ販売していません。機能一式は実装済みで、両エンジンにわたって継続的にテストされています。1.0 リリースまでの残作業は、ガイド付きのビジュアル調整パスとリリースパッケージングです。Blender アドオンは無料で MIT ライセンス、Unity と Unreal のコンシューマープラグインは商用で、リリース時に Unity Asset Store と Fab のリスティングが続きます。最新情報や早期アクセスをご希望ですか?下記からご連絡ください。

サポート

プレビュー中の質問、バグ報告、機能リクエストはありますか?メールでご連絡いただければ返信します。

インストール手順、アーキテクチャの解説、ロードマップは ドキュメント でもご覧いただけます。