2016-09-09 3 views
0

私はSVGイメージを読み込んで、そのデータに基づいてボクセルワールドを生成するシステムを持っています。基本的に、SVGイメージはプログラムにどのブロックを配置するかを指示します。AFrame.ioでたくさんのキューブを作成するきれいな方法

これまではMinecraftのために働いていましたが、私はそれを変更して、ブラウザフレンドリーな方法でボクセルワールドを作成したいと考えています(つまり、人々はMinecraftと必須インフラストラクチャをインストールすることなくモデルを見ることができます)。

キューブがたくさんあります。 1つの明白な方法は、多くの<a-box position="-1 0.5 -3" rotation="0 0 0" color="#4CC3D9"></a-box>ステートメントでHTMLページを生成することですが、私はそれが優雅ではないと仮定し、大きなモデルで問題につながる可能性があります。

AFrame.ioベースのボクセルワールドを外部(JavaScript以外の)アプリケーションで作成する際の選択肢は何ですか?私はヘッドレスモードで動作するソリューションを探しています(つまり、私はSVGファイルをサーバーに送信し、それをAFrame.ioボクセルの世界に変換します)。

答えて

1

https://ngokevin.github.io/aframe-magicavoxel-projects/のような例をご覧ください。https://github.com/ngokevin/aframe-magicavoxel-projectsあなたのニーズには十分かもしれません。

私は、オブジェクトへのマージとパフォーマンスの取得を理解していますが、柔軟性がないか、マージはしませんがパフォーマンスが低下すると予想しています。測定せずに、シーンのサイズとターゲットプラットフォームのサイズの両方を大まかに見積もっていなければ、まずマージまたはエクスポートせずに試してみてください。

+0

ありがとう、しかし私はMagicaVoxelを使いたくありません。むしろMagicaVoxelのようなソフトウェアがAframeと互換性のある方法でモデルをエクスポートする方法を知りたいと思っています。 –

+1

MagicaVoxelは標準のobj + mtl形式にエクスポートします。 – Utopiah

+0

"標準obj"形式とは、この[this](https://en.wikipedia.org/wiki/Wavefront_.obj_file)を意味しますか? –

1

テンプレートコンポーネント:https://github.com/ngokevin/aframe-template-component/を使用できます。この方法で、forループをHTMLで使用できます。

またはエンティティジェネレータコンポーネント:https://github.com/ngokevin/aframe-entity-generator-component。それをmixinに渡すと、そのmixinを使ってX個のエンティティが作成されます。次に、レイアウトやランダマイザーなどの他のコンポーネントと組み合わせてカスタマイズすることができます

+0

テンプレートコンポーネントとエンティティジェネレータのメリットとデメリットは、OBJファイルの表示(前の回答の説明)と比較してどのようなものですか?数百のボクセルを持つボクセルモデルでこのソリューションを動作させたいと考えています。 –

+0

私はあなたが何らかの形でSVGをOBJに事前に変換することができればいいと思う。おそらくそれを解析することによって。私は実際にあなたの質問を再読しました。私の答えはそれには意味がありません。申し訳ありません。各ボクセルのボックスを作成し、ジオメトリをマージして(ジオメトリコンポーネントAPIをチェックして)、すべてが1回のドローコールであるようにすることができます。 – ngokevin

関連する問題