2016-09-06 11 views
2

で作成されたattached two DAE filesを提供しています。SceneKit:インポートされたアセットのサイズを制御する方法、1つのDAEファイルが巨大サイズのSCNNodeを作成し、別のものが「通常」の場合

両方の資産は、Cinema 4D内で同等のサイズです。どちらのDAEファイルも同じエクスポートプロセスで作成されています。

しかし、DAEファイルをSceneKitシーンに読み込むと、結果が異なります。

Chango.daeは〜3x4x3のバウンディングボックスで「通常」のサイズでインポートします。

Tiki.daeは〜155x325x140のバウンディングボックスを持つ巨大なサイズでインポートします。 C4D内部の寸法は〜122x283x142です。

質問:

1)どのようにSceneKitシーンに "フィット" 必ず資産を作るのですか?あなたはSCNNodeの "scale"プロパティで資産をスケールダウンすることになっていますか、デザイナーに特定のサイズの資産を作るように求めていますか? SpriteKitとUIKitでは、これは簡単です。アセットサイズは画面サイズに直接関連付けられます(たとえば、20x20アイコンの解像度は解像度によってはそれほど多くなりません)。しかし、SceneKitのアナログは何ですか?アセットを1x1x1 SCNNodeに収めるには、アセットを作成するデザイナーのサイズはどのくらいですか?

2)アセットがシーンに対して大きすぎる場合、どのようにスケールダウンしますか?たとえば、UIKitでは、ScaleAspectFitなどのUIViewに合わせて画像を拡大/縮小できます。 SCNNodeにはアナログがないようです。 SCNNodeのscaleプロパティを使用すると外観は変更されますが、アセットの境界ボックスは変更されません。外観を変えることさえ正確ではありません。たとえば、Tiki.daeでは、アセットの元の高さ(バウンディングボックスで示される)は324.36です。ただし、Yスケールを0.01に設定すると、高さは〜3.24になりません。 3より小さくなります。これは、高さ3(半径1.5)の球の中に快適にフィットすることで証明できます。

Chango.dae

<unit name="meter"/> 

およびその他の場合には、彼らが表現されている:あなたはのColladaファイルを開くと

答えて

3

あなたは1におけるケースの距離はメートルで表現されていることがわかります

Tiki.dae

:センチメートルで
<unit meter="0.01" name="centimeter"/> 

したがって、1の値は、1つのファイルで1m、もう1つのファイルで1mを意味します。 これは、おそらくCinema 4Dで解決できるアセットの問題であるか、Colladaファイルを手動で編集することによって可能になります。読み込み時にユニットを変換するには、convertUnitsToMetersオプションを使用することもできます。

+0

クール感謝!スケーリングされたノードを垂直方向にセンタリングすることについての質問に答えるのを助けることができますか?スケーリングされたノードの境界ボックスは決して変更されず、スケーリングされた高さの使用は機能しません。正確な高さがなければ、スケールされたノードを親の中にどのように配置できますか?詳細:http://stackoverflow.com/questions/39133619/scenekit-vertically-center-scaled-scnnode-inside-parent – Crashalot

関連する問題