AppleサンプルARアプリを見ると、多くの現実的なオブジェクト(カップ、ろうそくなど)があります。ただし、Xcodeでシーンキットエディターを使用すると、基本オブジェクトのみを作成できることは明らかです。
私の質問は、どのソフトウェア/ファイルを使用して現実的なscn
オブジェクトを作成できますか? 3Dモデルを作成し、scn
ファイルに変換できるソフトウェアがあると確信しています。使用するソフトウェアや、scn
に変換できるファイルがわからない
注:この質問はStackoverflowのガイドラインには曖昧すぎるか広すぎるかもしれないことを理解しています。どこに質問したらいいかわかりません。これが最高の場所のようです
いくつかの既存のモデルを動作させるために、ここで私がやったことを知っています...私が知っている基本だけです。
Blender変換をスキップして、無料のオンラインOBJからDAE変換ツールのいずれかを使用することもできます。 Google it。そして、OBJファイルのみを持ち、他の多くの部品を持たないTurbosquidで安価な5ドルの範囲モデルを購入してみてください。とにかくそれらは大きすぎて、スターターアプローチとして他の問題を引き起こします。
UpdateXcodeでApple WWDCプレゼンテーションのモデルIOを見た後、ドロップできることがわかりましたOBJファイルで.scnassetsフォルダーに入れます。そのファイルを選択し、エディターに移動して、SCNファイルに変換を選択します。それも機能するはずですが、試していません。 OBJファイルのコピーを試してみる価値があります。
2018年12月の更新:3Dファイルをさらに使用してきました。この問題に関する追加のヘルプを次に示します。
MeshLabを使用して3Dモデルをインポートし、.DAEファイルに変換してみてください。 .DAEファイルをXcodeのフォルダーにドラッグします。これが、アプリで表示するために使用するものです。
ソース3Dモデルが.OBJファイルの場合、.OBJファイルと同じフォルダーにある必要がある2つの関連ファイルがあります。これらは* .mtlファイルと* .jpgまたは* .BMPファイルです。 .mtlファイルはTextEditで開くことができます。
開いて、map_Kd * .jpgという行があることを確認します。 .jpgは、3Dメッシュファイルを囲むテクスチャイメージです。テクスチャファイルが.jpg形式であることを確認するのが最善であることがわかりました。そうでない場合は、.jpg形式に変更し(たとえば、プレビューでjpegとして保存して)、新しい.jpgファイル名の.mtlファイルを編集します。
.bmpのテクスチャファイルがいくつかあったので、.jpgに変換し、.mtlファイルを編集しただけでよかったです。
2番目の問題は、.objファイル内のノードの名前です。 .objファイルはTextEditで開くこともできます。 .objファイルは、同じフォルダー内の.mtlファイルを参照する必要があります。そうでない場合は、問題があります。
そして、ここが難しい部分です。 childNodeをSceneKitシーンのrootNodeに追加する場合、「withName:」テキスト名を入力する必要があります。 .obj + .jpg + .mtlから作成した変換済みの.DAEファイルを開きます(MeshLabにインポートするときに3つすべてが使用されますが、.DAEにエクスポートすると、.DAEファイルのみが存在します)。「node id = "。 「node id = "node」。その場合、「node」という単語は、scene.rootNode.childNode(withName:"の "withName:"プロパティでテキスト名に入力するchildNodeの名前です。ノード」、再帰的に:true)呼び出し。
ノード名IDがまだない場合は、ノードに変更できます。
お役に立てれば。多くの時間を費やし、この次のラウンドの3Dモデルでの作業を理解するために他の人から助けてください。
XcodeのSceneKitエディターは3Dアートオーサリングパッケージではありません。SpriteKitエディターやInterface Builderコンポーネントは、Photoshop、Illustrator、Pixelmator、Affinity Designerなどと同等ではありません。3Dアートアセットを自分で作成するには、 Blender、Maya、3DS Max、または他の主要な3Dオーサリングツールのいずれかを学ぶ必要があります。注意してください、3Dアーティストになるための学習曲線は、2Dでペイントする方法を学ぶよりも少し急です。
SceneKitエディターの目的は3Dアーティストからの出力を取得し、それをSceneKitベースのアプリまたはゲームで使用するために準備または結合することです。 SceneKitのレンダラーで適切に見えるように定義し、個別のアセットを配置してゲームレベルまたは他のシーンを作成し、パーティクルエフェクトや物理学などの動的SceneSit固有の機能を追加します。
SceneKitがインポートできる形式のいずれかで3Dアートツールからアセットをエクスポートすることにより、これら2つの世界を橋渡しします。ここではDigital Asset Exchange(.dae)が最適なオプションの1つですが、SceneKitの下位レベルである Model I/O を介して、OBJやPixar USDなどの他の形式をインポートすることもできます。
Xcodeでそれらを開くと、SceneKitエディターが表示されるため、SceneKit固有の編集のマークを開始し、結果をアプリで使用するために.scnファイルとして保存できます。
3Dアセットのオーサリングと準備のプロセスでできることはいくつかあり、ARKitでよりリアルに見せることができます。 WWDCからのARKitセッション (およびそのセッションにアタッチされたサンプルコードプロジェクトのReadMeファイル)には、次のようなヒントが含まれています。
多くのツールでサポートされている.DAE形式でリアルな3Dモデルを作成できます。次に、Xcodeで、その.DAEファイルを.SCN形式に変換できます。変換については、これを確認してください
現実的な3Dモデルを作成する最良の方法は、次のソフトウェアパッケージのいずれかを使用することです。
Autodesk Maya、Autodesk 3DS Max、Maxon Cinema 4D、The Foundry Modo、またはBlender。
これらの3Dオーサリングツールを使用すると、多角形およびNURBSジオメトリを作成できます。しかし、現実的な3Dオブジェクトには、理想的な形状だけでなく、完璧なテクスチャも必要です。したがって、前述の各パッケージには、オブジェクトのテクスチャをインタラクティブに表示、配置、編集できる独自のUVテクスチャエディタが含まれています。 UVテクスチャエディタでは、他のモデリングツールを使用するのと同じように、サーフェスのUVトポロジを選択、移動、スケーリング、および一般的に変更できます。また、割り当てられたテクスチャマップに関連付けられた画像を、そのようなUVテクスチャエディタ内で背景として表示し、必要に応じて一致するようにUVレイアウトを変更することもできます。
オブジェクトの3Dサーフェスに属するシェーダーには、多くの異なるテクスチャが含まれている場合があります(通常、jpeg
、png
、またはtiff
)。これらのテクスチャは次のとおりです。拡散色、透明度、粗さ、バンプ、金属性、反射性、屈折性、鏡面性、半透明性など。これらのテクスチャは3Dオブジェクトをリアルに見せます。次の図を見てください。28のレンダーパスがあり、その一部はシェーディングマテリアルのスロット内のテクスチャです。
ここでは、Pluralsightによる Mayaモデリングコース を見つけることができます。
ここで Mayaシェーディングおよびテクスチャリングコース を見つけることができます。
個人的にはAutodesk Mayaが好きです。プラグイン用のモジュラーシステムと、さまざまな入出力2Dおよび3D形式があります。実際の環境での仮想3Dカーの素晴らしい例を次に示します。
3Dモデルとテクスチャをエクスポートする準備ができたら、
.DAE
ファイルをMayaに保存する必要があります。Xcodeでは、
.SCN
フォルダーに新しい.scnassets
ファイルを作成し、この.DAE
ファイルをシーンにドラッグします。または、PixarのXcode 10の新しい
.USDZ
ファイル形式でiOS 12で使用できます。シーンにドラッグアンドドロップするだけです。