Jump to content
Unity Insider Forum

Absolute und relative Einheiten und Position


Recommended Posts

Moin zusammen,

ich weiß, dass jedes Objekt in seiner Grundgröße mit 1 x 1 x 1  bemessen wird (auch in anderen Programmen). Ähnliches gilt für die Position, die nur dann bei allen identisch ist, wenn ich sie vorab resette. Es behindert aber leider etwas den Workflow, da ich bspw. nicht sehen kann, wieviel Meter (o.ä.) ein Gebäude an Höhe hat und somit keinen exakt gleich großen Anbau errichten kann. Das ginge nur, wenn ich messe, was aber ebenfalls vom Handling her (bspw. in Blender) sehr ungünstig gemacht ist. Meine Frage ist also, wie handhabt ihr das, bzw. kann man sich auch alternative Maßeinheiten (zusätzlich) anzeigen lassen, also relative und absolute Größen?

Besten Gruß,
Alex

Link to comment
Share on other sites

Hi!

Du musst wissen, dass in Unity eine Einheit einem Meter entspricht. Wenn du also in Unity ein Würfel-Grundobjekt erstellst, dann ist das 1m hoch, breit und lang.

In 3D Programmen kann man schon messen wie groß 3D Objekte so sind. In Blender und in Cinema4D gibt es Möglichkeiten zu messen. In anderen Programmen bestimmt auch. In welchem Maßstab sie aber in Unity rein kommen, musst du einfach mal testen. Das kann von 3D Programm zu 3D Programm unterschiedlich sein. Vorallem hängt es vom Format ab. Via FBX kann man z.B. hier und da Skalierungsfaktoren einstellen.
Genauso, kannst du im Importfenster von Unity einstellen, in welchem Skalierungsfaktor die Objekte eingeladen werden sollen.
Wenn du weisst, wie du die Objekte von einem 3D Programm nach Unity in gewünschtem Maßstab rüber kriegst, sollte es eigentlich recht einfach sein.
Ich baue nicht-organische Objekte immer schon direkt in der richtigen Größe im 3D Programm, muss also meistens gar nicht nachmessen. Und wenn doch, dann ist es relativ einfach sie so zu verändern, dass die Maße auch passen. Irgendwo musst du halt messen und anpassen. Das geht (vorzusweise) im 3D Programm aber auch in Unity selbst.

Den richtige Workflow musst du selber heraus finden. Ich würde immer das 3D Programm bevorzugen.

Link to comment
Share on other sites

vor 15 Minuten schrieb malzbie:

Du musst wissen, dass in Unity eine Einheit einem Meter entspricht. Wenn du also in Unity ein Würfel-Grundobjekt erstellst, dann ist das 1m hoch, breit und lang.

Muss man sich aber natürlich nicht dran halten. Wenn du ein Sternensystem oder rote Blutkörperchen in der Ader in deiner Szene darstellen willst, dann wäre es irgendwo zwischen irrsinnig und unmöglich, sich daran zu halten.

Am Ende musst du dich in deinem System für einen Maßstab entscheiden und konsistent bleiben. Wenn ich mich recht erinnere, waren in Unreal Tournament 99 die Charaktere 84 Einheiten hoch, in Unreal Tournament 3 128, und in Gears of War waren es 100. Solange du innerhalb des Spiels konsistent bleibst, ist es echt egal.

Link to comment
Share on other sites

@Sascha
Das ist klar. Kamm man machen wie man will. Aber wenn du einen Mensch z.B. 10 Mal so groß machst und dann die Schwerkraft nutzen willst, dann solltest du die die Physikwerte auch anpassen. Es wirkt sonst nicht so recht. ;)

 

Link to comment
Share on other sites

Danke für die Antworten!

Ja, das ist mir bewusst. Alles vorab im 3D-Programm zu bauen, scheint mir auch die sinnigste Variante. Dennoch kann es ja sein, dass man nur eine Kleinigkeit hinzufügen will und dann aber nicht genau weiß, wie groß etwas ist. Da hilft nur manuell rumskallieren, was aber nicht immer exakt ist. Ich habe aber grad gesehen, dass im Box- oder Meshcollider die absoluten Maße stehen. Zumindest scheint es so. Das wäre ein Traum und würde das 'Problem' lösen.

Wie sieht es bei der Position aus? Ist meine Annahme richtig, dass die Position nur identisch ist, wenn man sie direkt nach dem Import resettet?

 

Besten Dank vorab!
Alex

 

Link to comment
Share on other sites

vor 1 Stunde schrieb malzbie:

Das ist klar.

Ja, DU weißt das, aber für @Alex Greenwood war das vielleicht nicht klar ;)

vor 1 Stunde schrieb Alex Greenwood:

Ich habe aber grad gesehen, dass im Box- oder Meshcollider die absoluten Maße stehen. Zumindest scheint es so. Das wäre ein Traum und würde das 'Problem' lösen.

Joa, ist die Größe des Colliders, aber die wird ggf. noch mit der Skalierung des Objekts durch die Transform-Komponente multipliziert.

Wenn du wirklich exakte Maße brauchst (und das tut man gar nicht mal so oft...), dann solltest du am besten mit diesen Maßen im 3D-Programm arbeiten und das nur noch importieren. Aber du kannst die absoluten Maße eines Objekts anhand von Renderer.bounds auslesen. Da hast du eie AABB (Axis-Aligned Bounding Box), also den kleinsten möglichen, an den Achsen ausgerichteten ("nicht gedrehten") Quader, der dein 3D-Modell umschließen kann. Da kannste dann die Höhe von auslesen oder so.

vor 1 Stunde schrieb Alex Greenwood:

Wie sieht es bei der Position aus? Ist meine Annahme richtig, dass die Position nur identisch ist, wenn man sie direkt nach dem Import resettet?

Identisch zu was?

Link to comment
Share on other sites

Danke für die Antwort!
Das ist ja immerhin eine gute Möglichkeit. 

Mit "identisch" meinte ich, bei allen Objekten gleich. Manchmal haben Objekte eine andere Koordinate, obwohl sie an der gleichen Stelle stehen. So geschehen bei einem aktuellen Projekt. Hier steht ein Container neben einem LKW. Die Position des Containers ist Vector3(179,1.63,981.200012), die des LKWs Vector3(-95.0999985,157.845718,503.149994). Resette ich die Position sofort nachdem ich ein Objekt in mein Projekt geladen habe, so ist es natürlich 0, 0 und 0. Mache ich das mit allen Objekten, so ist der "0-Punkt" identisch und somit auch die Position in Relation zu allen anderen Objekten, oder? 

Besten Gruß,

Alex

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...