Knopf "Faell-Teile exportieren": Stamm in 2-3 Segmente, jeder Ast als eigenes Teil SAMT seinen Sub-Aesten und Blatt-Cards, dazu <Name>_Pieces_All.fbx mit gemeinsamem Ursprung. Je Teil zwei Material-Slots, Pivot am Massenmittelpunkt, eigene UCX-Huelle. Die Ast-Zugehoerigkeit ist ein ATTRIBUT, keine Schaetzung - wie von der UE-Seite vorgeschlagen. Der Generator legt "ast_id" an den Astpunkten ab (0 = Stamm, 1..N = Aeste). Sub-Aeste erben die ID ihres Astes automatisch, weil sie aus Punkten auf dessen Kurve entstehen; nachgemessen: bei Sub Count 0 hat jeder Ast 28 Verts, bei 3 dann 64, der Stamm bleibt konstant bei 156. Beim Blatt-Streuen wird ast_id am Punkt abgegriffen und auf die Card gespeichert. Damit ist die Zuordnung exakt nachzaehlbar, und genau das prueft der Test: Summe der Cards ueber alle Teile == Cards des Stand-Baums. 170 = 170. Die Falle, die diese Bilanz aufgedeckt hat: die Z-Schnitte am Stamm zerschnitten anfangs auch Blatt-Cards. Aus einer wurden zwei, die Bilanz stand auf 178 gegen 170 - und die Atlas-UVs der Haelften waeren kaputt gewesen. Eine Card ist ein unteilbares Billboard; sie wandert jetzt als GANZES in das Segment, in dem ihre Inselmitte liegt. Nur die Rinde wird geschnitten, ihre Schlagflaechen werden gedeckelt. Massenmittelpunkt flaechengewichtet statt Vertex-Mittelwert: wo das Mesh dicht tesselliert ist (Astansatz), wuerde der Mittelwert den Pivot dorthin ziehen und das Teil torkelte beim Fallen. Alles am REIMPORTIERTEN FBX gemessen: 12 Teile (3 Stamm, 9 Ast), UCX 18-32 Verts im Budget, Pivot maximal 16 mm vom Schwerpunkt, 0 non-manifold Kanten, Gesamtdatei 5.41 m hoch - also volle Baumhoehe und deckungsgleich rekonstruierbar. Nebenbei: _deselect fiel ueber None-Eintraege in der Objektliste, die beim Entfernen von Objekten zwischen den Teilen staendig auftreten. Neu: tests/test_faell_teile.py. 21 Tests bestehen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
106 lines
3.1 KiB
JSON
106 lines
3.1 KiB
JSON
{
|
|
"version": "v1",
|
|
"blocklist": [],
|
|
"data": [
|
|
{
|
|
"schema_version": "1.0.0",
|
|
"id": "stylized_asset_utils",
|
|
"name": "Stylized Asset Utils",
|
|
"tagline": "Handgebaute Assets auf EcoGame-Konvention bringen",
|
|
"version": "1.1.0",
|
|
"type": "add-on",
|
|
"maintainer": "D4rkst3r",
|
|
"license": [
|
|
"SPDX:GPL-3.0-or-later"
|
|
],
|
|
"blender_version_min": "4.2.0",
|
|
"website": "https://git.d4rkst3r.de/D4rkst3r/stylized-rock-generator",
|
|
"copyright": [
|
|
"2026 D4rkst3r"
|
|
],
|
|
"tags": [
|
|
"Object",
|
|
"Mesh",
|
|
"Modeling"
|
|
],
|
|
"archive_url": "./stylized_asset_utils-1.1.0.zip",
|
|
"archive_size": 6351,
|
|
"archive_hash": "sha256:71f3d1ee0db0b8ebb8a5e042a763e27de7accb83b655cb374bd2e8a3c6a3d94a"
|
|
},
|
|
{
|
|
"schema_version": "1.0.0",
|
|
"id": "stylized_grass_generator",
|
|
"name": "Stylized Grass Generator",
|
|
"tagline": "Gras, Blumen und Farne mit Wind-UV fuer SimpleGrassWind",
|
|
"version": "1.1.0",
|
|
"type": "add-on",
|
|
"maintainer": "D4rkst3r",
|
|
"license": [
|
|
"SPDX:GPL-3.0-or-later"
|
|
],
|
|
"blender_version_min": "4.2.0",
|
|
"website": "https://git.d4rkst3r.de/D4rkst3r/stylized-rock-generator",
|
|
"copyright": [
|
|
"2026 D4rkst3r"
|
|
],
|
|
"tags": [
|
|
"Object",
|
|
"Mesh",
|
|
"Modeling"
|
|
],
|
|
"archive_url": "./stylized_grass_generator-1.1.0.zip",
|
|
"archive_size": 5027,
|
|
"archive_hash": "sha256:7a6335f0fabc8620d42a234a1c70856e1cf05b9fbd555306eec15e11d7f7ee7e"
|
|
},
|
|
{
|
|
"schema_version": "1.0.0",
|
|
"id": "stylized_rock_generator",
|
|
"name": "Stylized Rock Generator",
|
|
"tagline": "Batch-Generator fuer stylized Rocks mit UE5-Export",
|
|
"version": "2.19.0",
|
|
"type": "add-on",
|
|
"maintainer": "D4rkst3r",
|
|
"license": [
|
|
"SPDX:GPL-3.0-or-later"
|
|
],
|
|
"blender_version_min": "4.2.0",
|
|
"website": "https://git.d4rkst3r.de/D4rkst3r/stylized-rock-generator",
|
|
"copyright": [
|
|
"2026 D4rkst3r"
|
|
],
|
|
"tags": [
|
|
"Object",
|
|
"Mesh",
|
|
"Modeling"
|
|
],
|
|
"archive_url": "./stylized_rock_generator-2.19.0.zip",
|
|
"archive_size": 34968,
|
|
"archive_hash": "sha256:2b412f9324263a3951b1b519648ab46025e7511b09f54b6017edf6d834a17bc6"
|
|
},
|
|
{
|
|
"schema_version": "1.0.0",
|
|
"id": "stylized_tree_generator",
|
|
"name": "Stylized Tree Generator",
|
|
"tagline": "Parametrische Baeume, Palmen, Bueschen mit Wachstums-Stufen",
|
|
"version": "1.28.0",
|
|
"type": "add-on",
|
|
"maintainer": "D4rkst3r",
|
|
"license": [
|
|
"SPDX:GPL-3.0-or-later"
|
|
],
|
|
"blender_version_min": "4.2.0",
|
|
"website": "https://git.d4rkst3r.de/D4rkst3r/stylized-rock-generator",
|
|
"copyright": [
|
|
"2026 D4rkst3r"
|
|
],
|
|
"tags": [
|
|
"Object",
|
|
"Mesh",
|
|
"Modeling"
|
|
],
|
|
"archive_url": "./stylized_tree_generator-1.28.0.zip",
|
|
"archive_size": 33772,
|
|
"archive_hash": "sha256:84ff026fecccddc944a1f847d832f3d8b45b37f142bb9e1cf342a103e2ca290f"
|
|
}
|
|
]
|
|
} |