ProjectAR
Blenderのシーンを、目の前の部屋にライブで。
BlenderアドオンとiPhoneアプリが連携し、開いているシーンをローカルネットワーク経由で拡張現実(AR)にストリーミングします。オブジェクトを動かす、モディファイアーを追加する、マテリアルを変える。そのたびにARビューが1秒足らずで更新されます。
ARでモデルを確認するには、変更のたびに書き出し、転送し、開き直すのが普通でした。ProjectARならBlenderを開いたまま、変更された部分だけを送信。テーブルの上のモデルは、いつでもファイルの中のモデルそのものです。
ハイライトをチェック。
すべてを、ストリーミング。
アドオンが送るもの、そしてスマートフォンを快適に動かし続ける工夫。
ライブストリーミング。オブジェクトのトランスフォームは最大毎秒60回更新。ジオメトリやマテリアルが変わるとメッシュを再送信します。
送るのは変更だけ。シーン全体を送るのは、デバイスの接続時、ファイルを開いたとき、単位スケールの変更時、またはResyncを押したときだけです。
モディファイアーを適用。評価済みのジオメトリを、ビューポートの表示どおりに送ります。
インスタンス。コレクション、パーティクル、Geometry Nodesのインスタンスを、設定した上限まで送ります。
送る内容を選択。表示中のすべて、選択したもの、または1つのコレクション。任意のオブジェクトをARで非表示にできます。
ARの原点。ワールド原点または3Dカーソルがタップした場所に来るので、原点から離れたモデルも簡単に配置できます。
更新を一時停止。重い編集の間はストリームを止めておき、再開するとスマートフォンが追いつきます。
基本的なマテリアル。Principled BSDFのBase Color、Metallic、Roughness、Alphaに対応します。
自動検出。すべてのネットワークインターフェイスでBonjourを使用。IPアドレスを手動で貼り付けることもできます。
複数デバイス。複数のスマートフォンを同時に接続でき、それぞれにデータ量の表示と切断ボタンがあります。
設定を記憶。ポート、更新レート、各種上限を保持し、Blenderの起動と同時にサーバーを開始することもできます。
処理の遅いスマートフォンも守る。オブジェクトごとの三角形ポリゴン数とインスタンス数に上限を設け、遅れたデバイスは自動で再同期します。
仕組み。
Blenderのデータを読み取るのは常にメインスレッドだけ。ネットワークスレッドに渡るのは、完成したバイトフレームだけです。
シーンを監視
depsgraphハンドラが、変更されたオブジェクトをすべてマークします。
フレームを生成
Blenderのメインスレッド上のタイマーが、削除、メッシュ、トランスフォームをバイトフレームに変換します。
各スマートフォンへ送信
デバイスごとに1つの送信スレッドが、完成したフレームを届けます。
互いを見つける
Bonjourがサーバーを
_viewar._tcpとしてアドバタイズします。IPアドレスの手動入力にも対応しています。配置する
メッシュはRealityKitのY軸上向きの空間に届きます。面をタップすると、シーンが配置されます。
ネットワーク上の1フレーム
プロトコルのバージョン1はインスタンシングに対応していません。各インスタンスはTrees/Pine#0.12のような固定IDを持つ通常のオブジェクトとして送られ、多数のインスタンスで共有されるメッシュは更新ごとに1回だけ三角形分割されます。
古いiPhoneにも、やさしく。
パネルは作業に合わせて三角形ポリゴンとインスタンスを数え、シーンが重くなる前に警告。スキップしたものも一覧で表示します。
毎秒の更新回数
デフォルトは30回。アニメーションの重いシーンでは15〜20回がおすすめです。
シーンの規模
シーン全体の三角形ポリゴンは、約100万以下に抑えてください。超えるとパネルが警告します。
プレビュー中は
ビューポートのサブディビジョンレベルを下げる、不要なものを隠す、または1つのコレクションだけをストリーミングしましょう。
スカルプト中は
更新を一時停止し、あとからスマートフォンを追いつかせましょう。
1分で、つながる。
コンピュータとスマートフォンを同じネットワークにつなぎ、ファイアウォールでBlenderを許可すれば、アプリが見つけてくれます。
技術仕様
- アドオン
- Blender 4.2以降(5.2 LTSで動作確認済み)、Windows、macOS、Linuxに対応。追加のPythonパッケージは不要で、Bonjourライブラリはwheelとして同梱されています。
- アプリ
- ARKit対応のiPhoneまたはiPadで動作するProjectAR iOSアプリ
- ネットワーク
- コンピュータとスマートフォンが同じWi-FiまたはLANに接続され、クライアント分離が無効であること
- ストリーミング対象
- メッシュ、カーブ、サーフェス、メタボール、テキストの各オブジェクトとそのインスタンス。コーナーごとの法線とアクティブなUVマップを含みます
- マテリアル
- Principled BSDFのBase Color、Metallic、Roughness、Alpha
- 今後対応予定
- ライト、カメラ、画像テクスチャ
- プライバシー
- サーバーはStart Serverを押したときだけ起動し、ローカルネットワーク上でのみ待ち受け、インターネットには一切接続しません
- ソースコード
- GitHub · 仕様と通信プロトコル