Hast du auch schon immer gedacht, dass die Welt doch nicht so rund ist, wie sie zu sein scheint? Hattest du jeher das Gefühl, dass die Kreiszahl eher quadratisch sein müsste?
Dann bist du genau hier richtig! Blockforum ist die neue Minecraft-Community. Werde Mitglied und teile mit uns Deine Leidenschaft. Wir freuen uns auf dich!

Der Zugriff auf das Forum ist für Gäste eingeschränkt, als registrierter Benutzer würden Dir alle Funktionen (wie z.B. Bildvergrößerung und Downloads) im Forum zur Verfügung stehen.

Fragen zu Minecraft blockstate , Mcmeta

      Jetzt wird's schwierig

      Unterhalb von blockstates befindet sich das Modell mit allen Texturvarianten. Ich nenne es das jetzt zur Vereinfachung einfach mal stein.
      In der stein.json stehen 6 Varianten von stein. stein1, stein2, stein3 usw.

      Damit diese Varaianten angesprochen werden können befinden sich unter models die korespondierenden .json Dateien (stein1.json, stein2.json usw.).

      Soweit ist alles klar. :)

      Jetzt möchte ich aber, dass jede Fläche des Blockes eine andere Textur bekommt. Immer die genau zugeordnete und nicht random.


      • stein1 = A
      • stein2 = B
      • stein3 = C
      • stein4 = D
      • stein5 = oben
      • stein6 = unten

      Wie beschreibt man das? Hat jemand eine Idee?

      Ich hab mich mal ein bissl reingelesen. Ich hab keine Ahnung, ob folgendes funktioniert, aber es müsste eig.
      Also am "einfachsten" wäre es demnach so:
      In Blockmodelle eine cube_faces.json erstellen mit folgendem Inhalt:

      Quellcode

      1. {
      2. elements:
      3. [
      4. {
      5. from: [ 0, 0, 0 ],
      6. to: [ 16, 16, 16 ],
      7. faces:
      8. {
      9. down:
      10. {
      11. uv: [ 0, 0, 16, 16 ],
      12. texture: "#bottom",
      13. cullface: "down"
      14. },
      15. up:
      16. {
      17. uv: [ 0, 0, 16, 16 ],
      18. texture: "#top",
      19. cullface: "up"
      20. },
      21. north:
      22. {
      23. uv: [ 0, 0, 16, 16 ],
      24. texture: "#north",
      25. cullface: "north"
      26. },
      27. south:
      28. {
      29. uv: [ 0, 0, 16, 16 ],
      30. texture: "#south",
      31. cullface: "south"
      32. },
      33. west:
      34. {
      35. uv: [ 0, 0, 16, 16 ],
      36. texture: "#west",
      37. cullface: "west"
      38. },
      39. east:
      40. {
      41. uv: [ 0, 0, 16, 16 ],
      42. texture: "#east",
      43. cullface: "east"
      44. }
      45. }
      46. }
      47. ]
      48. }


      Dann kannst du weitere Dateien im models-Ordner erstellen. z.b. eine stein.json (Die Datei, die du zuvor in blockstates deklariert hast) mit folgendem Inhalt. Du kannst beliebig viele Modelle für unterschiedliche Blöcke erstellen:

      Quellcode

      1. {
      2. parent:"block/cube_faces",
      3. textures:
      4. {
      5. particle:"blocks/stone",
      6. bottom:"blocks/stein6",
      7. top:"blocks/stein5",
      8. north:"blocks/stein1",
      9. west:"blocks/stein2",
      10. east:"blocks/stein3",
      11. south:"blocks/stein4"
      12. }
      13. }


      Zur Erklärung, wie es funktioniert (oder besser: funktionieren sollte):
      Die erste Datei enthält Definitionen für die Texturen. from: [ "x", "y", "z"] und to:[ "x", "y", "z"] ist die Größe des Blockes. Weil Standardtexturen 16x16 Pixel groß sind, ist ein voller Block 16 hoch.
      Dann kommen die faces. Hier ist uv:["x1", "z1", "x2", "z2"] Der Bereich, von dem die Textur ausgelesen werden soll. Beim Zaun z.B. wird ja Standardmäßig die Holztextur verwendet, aber nicht die Ganze, weil der Zaun an sich ja viel schmaler ist.
      texture:"#Texturenvariable" ist, wie auf diese Texturenvariable in den anderen Modellen verwiesen wird. Die Variablen können auch mehrfach verwendet werden. Wird z.B. für north and south "#front" deklariert, kann mit der Angabe einer Textur für front sowohl north als auch south eine Textur zugewiesen werden.
      cullface:"richtung" ist für die Performance wichtig. Sie bewirkt, dass diese Textur nicht dargestellt wird, wenn an der definierten Seite ein anderer Block steht.

      In der 2. Datei werden dann die spezifischen Texturen deklariert.
      parent:"Blockmodell" Sagt minecraft, welches Blockmodell geerbt werden soll. Das hat den Vorteil, dass man die erste Datei nur einmal erstellen muss und dann von allen anderen Modellen darauf zugreifen kann.
      particle:"Partikel" Beschreibt den verwendeten Partikel. In dem Fall wohl für Abbau und so was, bin mir aber net sicher^^ Einfach angeben ;)
      Das folgende sind dann die Deklarationen für die Texturen. Am Anfang verwendest du einfach die in der cube_faces festgelegten Variablen, dahinter gibst du die auszulesende Textur ab \minecraft\textures\ an.

      Noch ein Hinweis:
      In blockstates definierst du nur die Modelle. in manchen fällen steht dort zwar auch was von facing=richtung, das ist aber nur z.B. beim Werfer, der ja noch oben, unten, Norden, Süden, Westen und Osten gucken kann. Das hat aber nichts mit den Seiten des Blockes an sich zu tun. In den Modellen beschreibst du dann den Block. So auch die Texturen der einzelnen Seiten.


      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Baumeister_Daniel“ ()

      Super, werde ich morgen gleich mal ausprobieren. :)

      Baumeister_Daniel schrieb:

      Was mich gerade irritiert, ist dass anstelle von backslashes (\) normale Schlashes verwendet werden (/) sowohl bei Parent, als auch bei den Texturpfaden. Das ist aber auch in Originaldateien so...


      Dies ist nicht verwunderlich, weil der Backslash \ bei Pfadangaben nur im Windows Dateisystem vorkommt. Bzw. vorkam. Mit Win 8 funktioniert auch der Slash endlich, der ja auf der Tastatur auch wesentlich einfacher zu erreichen ist. Gib mal im Windows Explorer in der Adresszeile z.B. c:/users ein.
      Andere Dateisysteme, wie z.B. Linux, verwenden schon immer den Slash / bei Pfadangaben .

      In Programmiersprachen wird der Backslash verwendet um bestimmte Zeichen darzustellen \n z.B. für einen Zeilenumbruch.

      Baumeister_Daniel schrieb:

      Das zumindest ist falsch, bzw. unvollständig. Standard ist 1, das stimmt. Gibt es nur ein Modell, entspricht 1 auch 1/1, also 100%. gibt es aber 2, heißt es 1/2, also 50%.


      Diese Berechnung kann für die Wichtungen der Blöcke nicht stimmen. Ich habe es nun mit verschiedenen Blöcken probiert und es kommt jedesmal das Gegenteil heraus.

      Um dies mal deutlich zu machen:


      WichtungBlöcke in Minecraft
      bei insg. 14 gesetzten Blöcken
      Kuchen 1501
      Kuchen 2
      103
      Kuchen 3
      103
      Kuchen 4
      103
      Kuchen 5
      14


      Eigentlich müsste Kuchen 1 am Häufigsten vorkommen und nicht Kuchen 5. ?(

      Ein bisschen verwirrt mich das schon. :/

    Du bist nicht angemeldet.
    Anmelden oder Registrieren