U5.5 Schlackenklaue: zweite Meshy-Figur (g02)
Konzept aus Icon, Phase-4-Modell und Kohlenbeißer-Konzept als Stilvorlage, Modell, Skelett und sieben Bibliotheks-Clips für 68 Credits; Figurendatei vom Kohlenbeißer übernommen, Lane-Fassung inklusive. Bildwerkzeug und Stresstest nehmen aufgewertete Truppen. Stresstest 35 Schlackenklauen: Mid 152,5 -> 135,8 fps, Karte 116,7 -> 115,6. Tests grün, Fingerabdrücke unverändert. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
490
Assets/Luneraria/Art/Characters/schlackenklaue.export.json
Normal file
|
|
@ -0,0 +1,490 @@
|
||||||
|
{
|
||||||
|
"id": "schlackenklaue",
|
||||||
|
"group": "Characters",
|
||||||
|
"source": "tools/meshy/build_figure.py",
|
||||||
|
"exporter_version": 11,
|
||||||
|
"blender": "5.2.2 LTS",
|
||||||
|
"fbx_settings": {
|
||||||
|
"use_selection": true,
|
||||||
|
"use_visible": false,
|
||||||
|
"use_active_collection": false,
|
||||||
|
"global_scale": 1.0,
|
||||||
|
"apply_unit_scale": true,
|
||||||
|
"apply_scale_options": "FBX_SCALE_UNITS",
|
||||||
|
"axis_forward": "Y",
|
||||||
|
"axis_up": "Z",
|
||||||
|
"bake_space_transform": false,
|
||||||
|
"object_types": [
|
||||||
|
"ARMATURE",
|
||||||
|
"EMPTY",
|
||||||
|
"MESH"
|
||||||
|
],
|
||||||
|
"use_mesh_modifiers": true,
|
||||||
|
"use_mesh_modifiers_render": true,
|
||||||
|
"mesh_smooth_type": "OFF",
|
||||||
|
"use_subsurf": false,
|
||||||
|
"use_mesh_edges": false,
|
||||||
|
"use_tspace": false,
|
||||||
|
"use_triangles": false,
|
||||||
|
"colors_type": "LINEAR",
|
||||||
|
"prioritize_active_color": true,
|
||||||
|
"use_custom_props": false,
|
||||||
|
"add_leaf_bones": false,
|
||||||
|
"primary_bone_axis": "Y",
|
||||||
|
"secondary_bone_axis": "X",
|
||||||
|
"use_armature_deform_only": true,
|
||||||
|
"armature_nodetype": "NULL",
|
||||||
|
"bake_anim": true,
|
||||||
|
"bake_anim_use_all_bones": true,
|
||||||
|
"bake_anim_use_nla_strips": false,
|
||||||
|
"bake_anim_use_all_actions": true,
|
||||||
|
"bake_anim_force_startend_keying": true,
|
||||||
|
"bake_anim_step": 1.0,
|
||||||
|
"bake_anim_simplify_factor": 0.0,
|
||||||
|
"path_mode": "STRIP",
|
||||||
|
"embed_textures": false,
|
||||||
|
"batch_mode": "OFF"
|
||||||
|
},
|
||||||
|
"checks": [
|
||||||
|
{
|
||||||
|
"check": "turn_applied",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "units_metric",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "METRIC"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "unit_scale_1",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "no_negative_scale",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "{}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "object_scale_1",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "{}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "mesh_names_unique",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "['SchlackenklaueBody_LOD0', 'SchlackenklaueBody_LOD1']"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "material_slots_filled",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "{}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "normals_unit_length",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "{}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "no_blend_shapes",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "{}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "triangles_match_godot",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "25577 fbx / 25577 godot"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "one_armature",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "['SchlackenklaueRig']"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "single_root_bone",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "['Root']"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "root_bone_name",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "['Root']"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "bone_count_match_godot",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "25 / 25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "bone_names_portable",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "skinned_meshes_present",
|
||||||
|
"ok": true,
|
||||||
|
"detail": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "clips_match_godot",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "required_clips_present",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "roundtrip_mesh_names",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "roundtrip_triangles",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "25577 / 25577"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "roundtrip_materials",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "roundtrip_bones",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "roundtrip_clips",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "['ability', 'attack_a', 'attack_b', 'death', 'hit', 'idle', 'walk']"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"generator": {
|
||||||
|
"clips": {
|
||||||
|
"idle": {
|
||||||
|
"source": "Idle",
|
||||||
|
"frames": [
|
||||||
|
0.0,
|
||||||
|
96.0
|
||||||
|
],
|
||||||
|
"seconds": 4.0,
|
||||||
|
"loop": true,
|
||||||
|
"contact_seconds": -1.0
|
||||||
|
},
|
||||||
|
"walk": {
|
||||||
|
"source": "Slow_Orc_Walk",
|
||||||
|
"frames": [
|
||||||
|
0.0,
|
||||||
|
132.0
|
||||||
|
],
|
||||||
|
"seconds": 2.7917,
|
||||||
|
"loop": true,
|
||||||
|
"contact_seconds": -1.0
|
||||||
|
},
|
||||||
|
"attack_a": {
|
||||||
|
"source": "Right_Hand_Sword_Slash",
|
||||||
|
"frames": [
|
||||||
|
0,
|
||||||
|
36
|
||||||
|
],
|
||||||
|
"seconds": 1.0417,
|
||||||
|
"loop": false,
|
||||||
|
"contact_seconds": 0.4051
|
||||||
|
},
|
||||||
|
"attack_b": {
|
||||||
|
"source": "Punch_Forward_with_Both_Fists",
|
||||||
|
"frames": [
|
||||||
|
18,
|
||||||
|
56
|
||||||
|
],
|
||||||
|
"seconds": 1.0,
|
||||||
|
"loop": false,
|
||||||
|
"contact_seconds": 0.4737
|
||||||
|
},
|
||||||
|
"hit": {
|
||||||
|
"source": "Hit_Reaction",
|
||||||
|
"frames": [
|
||||||
|
0,
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"seconds": 0.5,
|
||||||
|
"loop": false,
|
||||||
|
"contact_seconds": -1.0
|
||||||
|
},
|
||||||
|
"ability": {
|
||||||
|
"source": "Charged_Ground_Slam",
|
||||||
|
"frames": [
|
||||||
|
6,
|
||||||
|
64
|
||||||
|
],
|
||||||
|
"seconds": 1.2083,
|
||||||
|
"loop": false,
|
||||||
|
"contact_seconds": 0.7292
|
||||||
|
},
|
||||||
|
"death": {
|
||||||
|
"source": "dying_backwards",
|
||||||
|
"frames": [
|
||||||
|
0.0,
|
||||||
|
52.80000305175781
|
||||||
|
],
|
||||||
|
"seconds": 2.2083,
|
||||||
|
"loop": false,
|
||||||
|
"contact_seconds": -1.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"textures": {
|
||||||
|
"glow_share": 0.0878,
|
||||||
|
"palette_gains": {
|
||||||
|
"rock": [
|
||||||
|
1.0042,
|
||||||
|
1.4305,
|
||||||
|
1.856
|
||||||
|
],
|
||||||
|
"metal": [
|
||||||
|
1.4216,
|
||||||
|
1.1999,
|
||||||
|
0.8197
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"size": [
|
||||||
|
2048,
|
||||||
|
2048
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"unit": 0.009999999776482582,
|
||||||
|
"lod": {
|
||||||
|
"lod0_triangles": 20579,
|
||||||
|
"lod1_triangles": 4998,
|
||||||
|
"lod1_vertices": 2482,
|
||||||
|
"welded_triangles": 20579,
|
||||||
|
"lod0_screen": 0.2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"inputs_sha256": {
|
||||||
|
"tools/meshy/g02/figure.json": "22b1569fda9bed6d4999b811faad28631d80a80d533e33da2cf60d3a0c0acbf6",
|
||||||
|
"assets-source/meshy/g02/schlackenklaue-skelett.glb": "fe250ead98b9c0de8f1e03f80e67a57f6c2df0009674e0d630527db1326e86d3",
|
||||||
|
"assets-source/meshy/g02/schlackenklaue-animationen.glb": "37dcbec85dbba1598e5823b02e74db9a2e2071d3313f7557eeef592bc18ae12a"
|
||||||
|
},
|
||||||
|
"source_sha256": "9eb17a4e3dc7029b7031f3be85f6676877c521788835137eb199c352c5b35aa4",
|
||||||
|
"removed_modifiers": 0,
|
||||||
|
"kind": "skinned",
|
||||||
|
"fps": 24.0,
|
||||||
|
"objects": 3,
|
||||||
|
"meshes": {
|
||||||
|
"SchlackenklaueBody_LOD0": {
|
||||||
|
"mesh": "SchlackenklaueBody_LOD0",
|
||||||
|
"triangles": 20579,
|
||||||
|
"vertices": 26122,
|
||||||
|
"ngons": 0,
|
||||||
|
"materials": [
|
||||||
|
"AI_Schlackenklaue"
|
||||||
|
],
|
||||||
|
"uv_layers": [
|
||||||
|
"UVMap"
|
||||||
|
],
|
||||||
|
"color_attributes": [],
|
||||||
|
"active_color": null,
|
||||||
|
"custom_normals": true,
|
||||||
|
"normals_unit_length": true,
|
||||||
|
"bad_normals": 0,
|
||||||
|
"degenerate_triangles": 0,
|
||||||
|
"shape_keys": 0,
|
||||||
|
"skinned": true,
|
||||||
|
"scale": [
|
||||||
|
1.0,
|
||||||
|
1.0,
|
||||||
|
1.0
|
||||||
|
],
|
||||||
|
"bounds_unity": {
|
||||||
|
"min": [
|
||||||
|
-0.8261,
|
||||||
|
0.0,
|
||||||
|
-0.416
|
||||||
|
],
|
||||||
|
"max": [
|
||||||
|
0.8265,
|
||||||
|
1.5,
|
||||||
|
0.4193
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"SchlackenklaueBody_LOD1": {
|
||||||
|
"mesh": "SchlackenklaueBody_LOD1",
|
||||||
|
"triangles": 4998,
|
||||||
|
"vertices": 2482,
|
||||||
|
"ngons": 0,
|
||||||
|
"materials": [
|
||||||
|
"AI_Schlackenklaue"
|
||||||
|
],
|
||||||
|
"uv_layers": [
|
||||||
|
"UVMap"
|
||||||
|
],
|
||||||
|
"color_attributes": [],
|
||||||
|
"active_color": null,
|
||||||
|
"custom_normals": false,
|
||||||
|
"normals_unit_length": true,
|
||||||
|
"bad_normals": 0,
|
||||||
|
"degenerate_triangles": 0,
|
||||||
|
"shape_keys": 0,
|
||||||
|
"skinned": true,
|
||||||
|
"scale": [
|
||||||
|
1.0,
|
||||||
|
1.0,
|
||||||
|
1.0
|
||||||
|
],
|
||||||
|
"bounds_unity": {
|
||||||
|
"min": [
|
||||||
|
-0.8264,
|
||||||
|
0.0017,
|
||||||
|
-0.416
|
||||||
|
],
|
||||||
|
"max": [
|
||||||
|
0.8265,
|
||||||
|
1.5,
|
||||||
|
0.4216
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"armatures": {
|
||||||
|
"SchlackenklaueRig": {
|
||||||
|
"bones": [
|
||||||
|
"Root",
|
||||||
|
"Hips",
|
||||||
|
"Spine02",
|
||||||
|
"Spine01",
|
||||||
|
"Spine",
|
||||||
|
"neck",
|
||||||
|
"Head",
|
||||||
|
"head_end",
|
||||||
|
"headfront",
|
||||||
|
"LeftShoulder",
|
||||||
|
"LeftArm",
|
||||||
|
"LeftForeArm",
|
||||||
|
"LeftHand",
|
||||||
|
"RightShoulder",
|
||||||
|
"RightArm",
|
||||||
|
"RightForeArm",
|
||||||
|
"RightHand",
|
||||||
|
"LeftUpLeg",
|
||||||
|
"LeftLeg",
|
||||||
|
"LeftFoot",
|
||||||
|
"LeftToeBase",
|
||||||
|
"RightUpLeg",
|
||||||
|
"RightLeg",
|
||||||
|
"RightFoot",
|
||||||
|
"RightToeBase"
|
||||||
|
],
|
||||||
|
"roots": [
|
||||||
|
"Root"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"empties": {},
|
||||||
|
"bounds_unity": {
|
||||||
|
"min": [
|
||||||
|
-0.8264,
|
||||||
|
0.0,
|
||||||
|
-0.416
|
||||||
|
],
|
||||||
|
"max": [
|
||||||
|
0.8265,
|
||||||
|
1.5,
|
||||||
|
0.4216
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"clips": [
|
||||||
|
{
|
||||||
|
"name": "ability",
|
||||||
|
"frames": [
|
||||||
|
0.0,
|
||||||
|
29.0
|
||||||
|
],
|
||||||
|
"seconds": 1.2083,
|
||||||
|
"loop": false,
|
||||||
|
"contact_seconds": 0.7292
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "attack_a",
|
||||||
|
"frames": [
|
||||||
|
0.0,
|
||||||
|
25.0
|
||||||
|
],
|
||||||
|
"seconds": 1.0417,
|
||||||
|
"loop": false,
|
||||||
|
"contact_seconds": 0.4051
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "attack_b",
|
||||||
|
"frames": [
|
||||||
|
0.0,
|
||||||
|
24.0
|
||||||
|
],
|
||||||
|
"seconds": 1.0,
|
||||||
|
"loop": false,
|
||||||
|
"contact_seconds": 0.4737
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "death",
|
||||||
|
"frames": [
|
||||||
|
0.0,
|
||||||
|
53.0
|
||||||
|
],
|
||||||
|
"seconds": 2.2083,
|
||||||
|
"loop": false,
|
||||||
|
"contact_seconds": -1.0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "hit",
|
||||||
|
"frames": [
|
||||||
|
0.0,
|
||||||
|
12.0
|
||||||
|
],
|
||||||
|
"seconds": 0.5,
|
||||||
|
"loop": false,
|
||||||
|
"contact_seconds": -1.0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "idle",
|
||||||
|
"frames": [
|
||||||
|
0.0,
|
||||||
|
96.0
|
||||||
|
],
|
||||||
|
"seconds": 4.0,
|
||||||
|
"loop": true,
|
||||||
|
"contact_seconds": -1.0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "walk",
|
||||||
|
"frames": [
|
||||||
|
0.0,
|
||||||
|
67.0
|
||||||
|
],
|
||||||
|
"seconds": 2.7917,
|
||||||
|
"loop": true,
|
||||||
|
"contact_seconds": -1.0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"expected_from_godot": {
|
||||||
|
"triangles": 25577,
|
||||||
|
"bones": 25,
|
||||||
|
"clips": [
|
||||||
|
"idle",
|
||||||
|
"walk",
|
||||||
|
"attack_a",
|
||||||
|
"attack_b",
|
||||||
|
"hit",
|
||||||
|
"ability",
|
||||||
|
"death"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"meshes_with_ngons": {},
|
||||||
|
"meshes_without_uv": [],
|
||||||
|
"triangles": 25577,
|
||||||
|
"fbx": "Assets/Luneraria/Art/Characters/schlackenklaue.fbx",
|
||||||
|
"fbx_bytes": 3377708,
|
||||||
|
"ok": true
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0dae5ca84cb654b13a68d4ccf7559e7a
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Luneraria/Art/Characters/schlackenklaue.fbx
Normal file
337
Assets/Luneraria/Art/Characters/schlackenklaue.fbx.meta
Normal file
|
|
@ -0,0 +1,337 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0c290acf657e14113bb202a836b03242
|
||||||
|
ModelImporter:
|
||||||
|
serializedVersion: 24300
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
materials:
|
||||||
|
materialImportMode: 2
|
||||||
|
materialName: 0
|
||||||
|
materialSearch: 1
|
||||||
|
materialLocation: 1
|
||||||
|
searchTexturesGlobally: 0
|
||||||
|
animations:
|
||||||
|
legacyGenerateAnimations: 4
|
||||||
|
bakeSimulation: 0
|
||||||
|
resampleCurves: 0
|
||||||
|
optimizeGameObjects: 0
|
||||||
|
removeConstantScaleCurves: 0
|
||||||
|
motionNodeName:
|
||||||
|
animationImportErrors:
|
||||||
|
animationImportWarnings:
|
||||||
|
animationRetargetingWarnings:
|
||||||
|
animationDoRetargetingWarnings: 0
|
||||||
|
importAnimatedCustomProperties: 0
|
||||||
|
importConstraints: 0
|
||||||
|
animationCompression: 0
|
||||||
|
animationRotationError: 0.5
|
||||||
|
animationPositionError: 0.5
|
||||||
|
animationScaleError: 0.5
|
||||||
|
animationWrapMode: 0
|
||||||
|
extraExposedTransformPaths: []
|
||||||
|
extraUserProperties: []
|
||||||
|
clipAnimations:
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: ability
|
||||||
|
takeName: SchlackenklaueRig|ability
|
||||||
|
internalID: -4048321311079535208
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 29
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events:
|
||||||
|
- time: 0.6034925
|
||||||
|
functionName: OnLuneContact
|
||||||
|
data:
|
||||||
|
objectReferenceParameter: {instanceID: 0}
|
||||||
|
floatParameter: 0
|
||||||
|
intParameter: 0
|
||||||
|
messageOptions: 0
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: attack_a
|
||||||
|
takeName: SchlackenklaueRig|attack_a
|
||||||
|
internalID: -2802361397210963005
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 25
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events:
|
||||||
|
- time: 0.38888356
|
||||||
|
functionName: OnLuneContact
|
||||||
|
data:
|
||||||
|
objectReferenceParameter: {instanceID: 0}
|
||||||
|
floatParameter: 0
|
||||||
|
intParameter: 0
|
||||||
|
messageOptions: 0
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: attack_b
|
||||||
|
takeName: SchlackenklaueRig|attack_b
|
||||||
|
internalID: -910029017348537388
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 24
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events:
|
||||||
|
- time: 0.4737
|
||||||
|
functionName: OnLuneContact
|
||||||
|
data:
|
||||||
|
objectReferenceParameter: {instanceID: 0}
|
||||||
|
floatParameter: 0
|
||||||
|
intParameter: 0
|
||||||
|
messageOptions: 0
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: death
|
||||||
|
takeName: SchlackenklaueRig|death
|
||||||
|
internalID: 3697148975191831741
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 53
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events: []
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: hit
|
||||||
|
takeName: SchlackenklaueRig|hit
|
||||||
|
internalID: -2946493978370488727
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 12
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 0
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events: []
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: idle
|
||||||
|
takeName: SchlackenklaueRig|idle
|
||||||
|
internalID: 3294942166485504915
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 96
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 1
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events: []
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
- serializedVersion: 16
|
||||||
|
name: walk
|
||||||
|
takeName: SchlackenklaueRig|walk
|
||||||
|
internalID: -2480628682241362284
|
||||||
|
firstFrame: 0
|
||||||
|
lastFrame: 67
|
||||||
|
wrapMode: 0
|
||||||
|
orientationOffsetY: 0
|
||||||
|
level: 0
|
||||||
|
cycleOffset: 0
|
||||||
|
loop: 0
|
||||||
|
hasAdditiveReferencePose: 0
|
||||||
|
loopTime: 1
|
||||||
|
loopBlend: 0
|
||||||
|
loopBlendOrientation: 0
|
||||||
|
loopBlendPositionY: 0
|
||||||
|
loopBlendPositionXZ: 0
|
||||||
|
keepOriginalOrientation: 0
|
||||||
|
keepOriginalPositionY: 1
|
||||||
|
keepOriginalPositionXZ: 0
|
||||||
|
heightFromFeet: 0
|
||||||
|
mirror: 0
|
||||||
|
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||||
|
curves: []
|
||||||
|
events: []
|
||||||
|
transformMask: []
|
||||||
|
maskType: 3
|
||||||
|
maskSource: {instanceID: 0}
|
||||||
|
additiveReferencePoseFrame: 0
|
||||||
|
isReadable: 1
|
||||||
|
meshes:
|
||||||
|
lODScreenPercentages:
|
||||||
|
- 0.25
|
||||||
|
- 0.01
|
||||||
|
globalScale: 1
|
||||||
|
meshCompression: 0
|
||||||
|
addColliders: 0
|
||||||
|
useSRGBMaterialColor: 1
|
||||||
|
sortHierarchyByName: 1
|
||||||
|
importPhysicalCameras: 1
|
||||||
|
importVisibility: 0
|
||||||
|
importBlendShapes: 0
|
||||||
|
importCameras: 0
|
||||||
|
importLights: 0
|
||||||
|
nodeNameCollisionStrategy: 1
|
||||||
|
fileIdsGeneration: 2
|
||||||
|
swapUVChannels: 0
|
||||||
|
generateSecondaryUV: 0
|
||||||
|
useFileUnits: 1
|
||||||
|
keepQuads: 0
|
||||||
|
weldVertices: 1
|
||||||
|
bakeAxisConversion: 1
|
||||||
|
preserveHierarchy: 0
|
||||||
|
skinWeightsMode: 0
|
||||||
|
maxBonesPerVertex: 4
|
||||||
|
minBoneWeight: 0.001
|
||||||
|
optimizeBones: 1
|
||||||
|
generateMeshLods: 0
|
||||||
|
meshLodGenerationFlags: 0
|
||||||
|
maximumMeshLod: -1
|
||||||
|
meshOptimizationFlags: -1
|
||||||
|
indexFormat: 0
|
||||||
|
secondaryUVAngleDistortion: 8
|
||||||
|
secondaryUVAreaDistortion: 15.000001
|
||||||
|
secondaryUVHardAngle: 88
|
||||||
|
secondaryUVMarginMethod: 1
|
||||||
|
secondaryUVMinLightmapResolution: 40
|
||||||
|
secondaryUVMinObjectScale: 1
|
||||||
|
secondaryUVPackMargin: 4
|
||||||
|
useFileScale: 1
|
||||||
|
strictVertexDataChecks: 0
|
||||||
|
tangentSpace:
|
||||||
|
normalSmoothAngle: 60
|
||||||
|
normalImportMode: 0
|
||||||
|
tangentImportMode: 3
|
||||||
|
normalCalculationMode: 4
|
||||||
|
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||||
|
blendShapeNormalImportMode: 1
|
||||||
|
normalSmoothingSource: 0
|
||||||
|
referencedClips: []
|
||||||
|
importAnimation: 1
|
||||||
|
humanDescription:
|
||||||
|
serializedVersion: 3
|
||||||
|
human: []
|
||||||
|
skeleton: []
|
||||||
|
armTwist: 0.5
|
||||||
|
foreArmTwist: 0.5
|
||||||
|
upperLegTwist: 0.5
|
||||||
|
legTwist: 0.5
|
||||||
|
armStretch: 0.05
|
||||||
|
legStretch: 0.05
|
||||||
|
feetSpacing: 0
|
||||||
|
globalScale: 1
|
||||||
|
rootMotionBoneName:
|
||||||
|
hasTranslationDoF: 0
|
||||||
|
hasExtraRoot: 0
|
||||||
|
skeletonHasParents: 1
|
||||||
|
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||||
|
autoGenerateAvatarMappingIfUnspecified: 1
|
||||||
|
animationType: 2
|
||||||
|
humanoidOversampling: 1
|
||||||
|
avatarSetup: 1
|
||||||
|
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||||
|
importBlendShapeDeformPercent: 1
|
||||||
|
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||||
|
additionalBone: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
246
Assets/Luneraria/Art/Generated/schlackenklaue.controller
Normal file
|
|
@ -0,0 +1,246 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1102 &-8296090009237200059
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: ability
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: -4048321311079535208, guid: 0c290acf657e14113bb202a836b03242, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1102 &-7123214123767340412
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: idle
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: 3294942166485504915, guid: 0c290acf657e14113bb202a836b03242, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1107 &-5144906310720532957
|
||||||
|
AnimatorStateMachine:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_ChildStates:
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: -7123214123767340412}
|
||||||
|
m_Position: {x: 200, y: 0, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: -8296090009237200059}
|
||||||
|
m_Position: {x: 235, y: 65, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: -3136430937946300746}
|
||||||
|
m_Position: {x: 270, y: 130, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: -2029554885935577019}
|
||||||
|
m_Position: {x: 305, y: 195, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: -41940961257773465}
|
||||||
|
m_Position: {x: 340, y: 260, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 7072605793965285187}
|
||||||
|
m_Position: {x: 375, y: 325, z: 0}
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 1453078541785764107}
|
||||||
|
m_Position: {x: 410, y: 390, z: 0}
|
||||||
|
m_ChildStateMachines: []
|
||||||
|
m_AnyStateTransitions: []
|
||||||
|
m_EntryTransitions: []
|
||||||
|
m_StateMachineTransitions: {}
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
||||||
|
m_EntryPosition: {x: 50, y: 120, z: 0}
|
||||||
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
|
m_DefaultState: {fileID: -7123214123767340412}
|
||||||
|
--- !u!1102 &-3136430937946300746
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: attack_a
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: -2802361397210963005, guid: 0c290acf657e14113bb202a836b03242, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1102 &-2029554885935577019
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: attack_b
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: -910029017348537388, guid: 0c290acf657e14113bb202a836b03242, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1102 &-41940961257773465
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: death
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: 3697148975191831741, guid: 0c290acf657e14113bb202a836b03242, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!91 &9100000
|
||||||
|
AnimatorController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: schlackenklaue
|
||||||
|
serializedVersion: 5
|
||||||
|
m_AnimatorParameters: []
|
||||||
|
m_AnimatorLayers:
|
||||||
|
- serializedVersion: 5
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_StateMachine: {fileID: -5144906310720532957}
|
||||||
|
m_Mask: {fileID: 0}
|
||||||
|
m_Motions: []
|
||||||
|
m_Behaviours: []
|
||||||
|
m_BlendingMode: 0
|
||||||
|
m_SyncedLayerIndex: -1
|
||||||
|
m_DefaultWeight: 0
|
||||||
|
m_IKPass: 0
|
||||||
|
m_SyncedLayerAffectsTiming: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
|
--- !u!1102 &1453078541785764107
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: walk
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: -2480628682241362284, guid: 0c290acf657e14113bb202a836b03242, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1102 &7072605793965285187
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: hit
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: -2946493978370488727, guid: 0c290acf657e14113bb202a836b03242, type: 3}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c833b53f8efae4cbe8d914eebcba8ceb
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 9100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Luneraria/Art/Textures/ai-schlackenklaue-albedo-2k.png
Normal file
|
After Width: | Height: | Size: 8 MiB |
|
|
@ -0,0 +1,117 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 49e8beab6d97949b99b91d47cc5324ce
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Luneraria/Art/Textures/ai-schlackenklaue-normal-2k.png
Normal file
|
After Width: | Height: | Size: 6.2 MiB |
|
|
@ -0,0 +1,117 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2aee458cb05024cd09c56224b4856219
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 0
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 1
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Luneraria/Art/Textures/ai-schlackenklaue-orm-2k.png
Normal file
|
After Width: | Height: | Size: 3.6 MiB |
117
Assets/Luneraria/Art/Textures/ai-schlackenklaue-orm-2k.png.meta
Normal file
|
|
@ -0,0 +1,117 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 70de1b274a1144d69a5c2a6d41a293b0
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 0
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -185,6 +185,10 @@ MonoBehaviour:
|
||||||
Neutral: {fileID: 2100000, guid: 19529a85bbe534478a40059f9505d897, type: 2}
|
Neutral: {fileID: 2100000, guid: 19529a85bbe534478a40059f9505d897, type: 2}
|
||||||
Blau: {fileID: 0}
|
Blau: {fileID: 0}
|
||||||
Rot: {fileID: 0}
|
Rot: {fileID: 0}
|
||||||
|
- Key: AI_Schlackenklaue
|
||||||
|
Neutral: {fileID: 2100000, guid: d45c0cff6703140e089ea48ed9871dc5, type: 2}
|
||||||
|
Blau: {fileID: 0}
|
||||||
|
Rot: {fileID: 0}
|
||||||
- Key: BB_Basalt
|
- Key: BB_Basalt
|
||||||
Neutral: {fileID: 2100000, guid: 37c64b9b93d784d8ba407e7c9682aae4, type: 2}
|
Neutral: {fileID: 2100000, guid: 37c64b9b93d784d8ba407e7c9682aae4, type: 2}
|
||||||
Blau: {fileID: 0}
|
Blau: {fileID: 0}
|
||||||
|
|
|
||||||
68
Assets/Luneraria/Materials/Units/AI_Schlackenklaue.mat
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: AI_Schlackenklaue
|
||||||
|
m_Shader: {fileID: 4800000, guid: 9809bd5750e264586bd30e14a6f1bd4e, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 0
|
||||||
|
m_EnableInstancingVariants: 1
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _AlbedoMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 49e8beab6d97949b99b91d47cc5324ce, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _NormalMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 2aee458cb05024cd09c56224b4856219, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OrmMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 70de1b274a1144d69a5c2a6d41a293b0, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _StoneMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 2e11a30a0df8143ab84722ec0a116b6d, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _Cull: 2
|
||||||
|
- _Energy: 1
|
||||||
|
- _Flicker: 0
|
||||||
|
- _Glow: 1.25
|
||||||
|
- _Metallic: 1
|
||||||
|
- _Mode: 0
|
||||||
|
- _NormalStrength: 1
|
||||||
|
- _ObjectSpace: 0
|
||||||
|
- _Quality: 1
|
||||||
|
- _Relief: 0.016
|
||||||
|
- _Rim: 0.35
|
||||||
|
- _Roughness: 1
|
||||||
|
- _Seed: 0
|
||||||
|
- _ShadowNormalScale: 0
|
||||||
|
- _StoneScale: 1
|
||||||
|
- _UvMaps: 1
|
||||||
|
- _VertexColor: 0
|
||||||
|
m_Colors:
|
||||||
|
- _AlbedoMean: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _OrmMean: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _RimColor: {r: 0.8, g: 0.86, b: 1, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d45c0cff6703140e089ea48ed9871dc5
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -56,8 +56,8 @@ MonoBehaviour:
|
||||||
Prefab: {fileID: 919132149155446097, guid: cb652a88669c64f4d98a351c01bf9642, type: 3}
|
Prefab: {fileID: 919132149155446097, guid: cb652a88669c64f4d98a351c01bf9642, type: 3}
|
||||||
Controller: {fileID: 9100000, guid: 26a63e3ffbfe94d109316067e70ea293, type: 2}
|
Controller: {fileID: 9100000, guid: 26a63e3ffbfe94d109316067e70ea293, type: 2}
|
||||||
- Id: g02
|
- Id: g02
|
||||||
Prefab: {fileID: 919132149155446097, guid: 841f6e701e4c44c1197b7acc2a570334, type: 3}
|
Prefab: {fileID: 919132149155446097, guid: 0c290acf657e14113bb202a836b03242, type: 3}
|
||||||
Controller: {fileID: 0}
|
Controller: {fileID: 9100000, guid: c833b53f8efae4cbe8d914eebcba8ceb, type: 2}
|
||||||
- Id: g03
|
- Id: g03
|
||||||
Prefab: {fileID: 919132149155446097, guid: 183642226901e400bb094ee9249d9cd2, type: 3}
|
Prefab: {fileID: 919132149155446097, guid: 183642226901e400bb094ee9249d9cd2, type: 3}
|
||||||
Controller: {fileID: 0}
|
Controller: {fileID: 0}
|
||||||
|
|
@ -190,6 +190,9 @@ MonoBehaviour:
|
||||||
- Id: s05
|
- Id: s05
|
||||||
Prefab: {fileID: 919132149155446097, guid: a1c5b002eb5804cacaa7b2091ed25e51, type: 3}
|
Prefab: {fileID: 919132149155446097, guid: a1c5b002eb5804cacaa7b2091ed25e51, type: 3}
|
||||||
Controller: {fileID: 0}
|
Controller: {fileID: 0}
|
||||||
|
- Id: schlackenklaue
|
||||||
|
Prefab: {fileID: 919132149155446097, guid: 0c290acf657e14113bb202a836b03242, type: 3}
|
||||||
|
Controller: {fileID: 9100000, guid: c833b53f8efae4cbe8d914eebcba8ceb, type: 2}
|
||||||
- Id: schlundkrone
|
- Id: schlundkrone
|
||||||
Prefab: {fileID: 919132149155446097, guid: b2dd57798499c4b7b8698ee56e676c45, type: 3}
|
Prefab: {fileID: 919132149155446097, guid: b2dd57798499c4b7b8698ee56e676c45, type: 3}
|
||||||
Controller: {fileID: 9100000, guid: 55d11e29be0134459bf261f2dad38f33, type: 2}
|
Controller: {fileID: 9100000, guid: 55d11e29be0134459bf261f2dad38f33, type: 2}
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,8 @@ namespace Luneraria.UI.Tests
|
||||||
/// lane distance (zoom 22). Like HudViewsTests, commands go straight to the match followed by
|
/// lane distance (zoom 22). Like HudViewsTests, commands go straight to the match followed by
|
||||||
/// the preview rebuild. A capture tool, not part of the suite:
|
/// the preview rebuild. A capture tool, not part of the suite:
|
||||||
/// -testFilter "Luneraria.UI.Tests.FigureViewsTests"; LUNE_EVIDENCE names the folder below
|
/// -testFilter "Luneraria.UI.Tests.FigureViewsTests"; LUNE_EVIDENCE names the folder below
|
||||||
/// docs/port/screenshots (default u5.5/spiel).
|
/// docs/port/screenshots (default u5.5/spiel). LUNE_FIGURE names another Glutpakt troop
|
||||||
|
/// (default g01); an upgraded troop (g02) is bought as its base and upgraded.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Explicit("Bildwerkzeug: nur gezielt per -testFilter")]
|
[Explicit("Bildwerkzeug: nur gezielt per -testFilter")]
|
||||||
public sealed class FigureViewsTests
|
public sealed class FigureViewsTests
|
||||||
|
|
@ -41,10 +42,10 @@ namespace Luneraria.UI.Tests
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>The own Kohlenbeißer on the field: the one nearest to the enemy (the front of the fight).</summary>
|
/// <summary>The own Kohlenbeißer on the field: the one nearest to the enemy (the front of the fight).</summary>
|
||||||
static LuneUnit Front(HudSession s)
|
static LuneUnit Front(HudSession s, string figure)
|
||||||
{
|
{
|
||||||
int team = s.Me.Team;
|
int team = s.Me.Team;
|
||||||
return s.Match.Combat.Units.Where(u => u.Alive && u.Team == team && u.Def.Id == "g01")
|
return s.Match.Combat.Units.Where(u => u.Alive && u.Team == team && u.Def.Id == figure)
|
||||||
.OrderByDescending(u => u.Progress).FirstOrDefault();
|
.OrderByDescending(u => u.Progress).FirstOrDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -53,18 +54,27 @@ namespace Luneraria.UI.Tests
|
||||||
{
|
{
|
||||||
string evidence = Environment.GetEnvironmentVariable("LUNE_EVIDENCE");
|
string evidence = Environment.GetEnvironmentVariable("LUNE_EVIDENCE");
|
||||||
_folder = "docs/port/screenshots/" + (string.IsNullOrEmpty(evidence) ? "u5.5/spiel" : evidence) + "/";
|
_folder = "docs/port/screenshots/" + (string.IsNullOrEmpty(evidence) ? "u5.5/spiel" : evidence) + "/";
|
||||||
|
string figure = Environment.GetEnvironmentVariable("LUNE_FIGURE");
|
||||||
|
if (string.IsNullOrEmpty(figure))
|
||||||
|
figure = "g01";
|
||||||
|
bool upgrade = figure != "g01";
|
||||||
var s = new HudSession();
|
var s = new HudSession();
|
||||||
yield return s.Open(1920, 1080, seed: 4, bunds: Bunds);
|
yield return s.Open(1920, 1080, seed: 4, bunds: Bunds);
|
||||||
s.Match.RoundNumber = 3;
|
s.Match.RoundNumber = 3;
|
||||||
s.Me.Draft.Gold = 900;
|
s.Me.Draft.Gold = upgrade ? 2000 : 900;
|
||||||
yield return s.Starter();
|
yield return s.Starter();
|
||||||
s.Leave();
|
s.Leave();
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
Send(s, Command.Buy("g01", s.Me.Lane));
|
Send(s, Command.Buy("g01", s.Me.Lane));
|
||||||
|
if (upgrade)
|
||||||
|
{
|
||||||
|
foreach (RosterEntry entry in s.Me.Draft.Roster.Where(e => e.TypeId == "g01").ToList())
|
||||||
|
Send(s, Command.Upgrade(entry.Uid));
|
||||||
|
}
|
||||||
yield return new WaitForSecondsRealtime(.4f);
|
yield return new WaitForSecondsRealtime(.4f);
|
||||||
RosterEntry first = s.Me.Draft.Roster.First(e => e.TypeId == "g01");
|
RosterEntry first = s.Me.Draft.Roster.First(e => e.TypeId == figure);
|
||||||
// The planning preview stands the army in its formation on the own lane.
|
// The planning preview stands the army in its formation on the own lane.
|
||||||
LuneUnit waiting = s.View.Preview?.Units.FirstOrDefault(u => u.Team == s.Me.Team && u.Def.Id == "g01");
|
LuneUnit waiting = s.View.Preview?.Units.FirstOrDefault(u => u.Team == s.Me.Team && u.Def.Id == figure);
|
||||||
Assert.IsNotNull(waiting, "Kohlenbeißer in the planning preview");
|
Assert.IsNotNull(waiting, "Kohlenbeißer in the planning preview");
|
||||||
s.Rig.LookAt(waiting.Position, 12f, true);
|
s.Rig.LookAt(waiting.Position, 12f, true);
|
||||||
yield return new WaitForSecondsRealtime(.5f);
|
yield return new WaitForSecondsRealtime(.5f);
|
||||||
|
|
@ -78,7 +88,7 @@ namespace Luneraria.UI.Tests
|
||||||
Assert.AreEqual(LuneMatchRunner.Stage.Combat, s.Runner.Current, "combat of round 3");
|
Assert.AreEqual(LuneMatchRunner.Stage.Combat, s.Runner.Current, "combat of round 3");
|
||||||
yield return s.Fight(7.0);
|
yield return s.Fight(7.0);
|
||||||
s.Driver.Paused = true;
|
s.Driver.Paused = true;
|
||||||
LuneUnit front = Front(s);
|
LuneUnit front = Front(s, figure);
|
||||||
Assert.IsNotNull(front, "a Kohlenbeißer on the field");
|
Assert.IsNotNull(front, "a Kohlenbeißer on the field");
|
||||||
s.Rig.LookAt(front.Position, 12f, true);
|
s.Rig.LookAt(front.Position, 12f, true);
|
||||||
yield return new WaitForSecondsRealtime(.5f);
|
yield return new WaitForSecondsRealtime(.5f);
|
||||||
|
|
|
||||||
|
|
@ -185,6 +185,16 @@ namespace Luneraria.View
|
||||||
int bought = 0;
|
int bought = 0;
|
||||||
while (bought < 40 && match.Submit(player.Slot, Command.Buy(typeId, player.Lane)).Ok)
|
while (bought < 40 && match.Submit(player.Slot, Command.Buy(typeId, player.Lane)).Ok)
|
||||||
bought++;
|
bought++;
|
||||||
|
// An upgraded troop (g02 Schlackenklaue) is bought as its base and upgraded.
|
||||||
|
string baseId = bought == 0 ? ContentData.Units.Keys.FirstOrDefault(id => DataCatalog.UpgradeOf(id) == typeId) : null;
|
||||||
|
if (baseId != null)
|
||||||
|
{
|
||||||
|
while (bought < 40 && match.Submit(player.Slot, Command.Buy(baseId, player.Lane)).Ok)
|
||||||
|
bought++;
|
||||||
|
foreach (RosterEntry entry in draft.Roster.ToList())
|
||||||
|
if (!match.Submit(player.Slot, Command.Upgrade(entry.Uid)).Ok)
|
||||||
|
bought--;
|
||||||
|
}
|
||||||
if (bought == 0)
|
if (bought == 0)
|
||||||
draft.Roster.AddRange(planned);
|
draft.Roster.AddRange(planned);
|
||||||
draft.Gold = gold;
|
draft.Gold = gold;
|
||||||
|
|
|
||||||
BIN
assets-source/meshy/g02/schlackenklaue-animationen.glb
Normal file
BIN
assets-source/meshy/g02/schlackenklaue-konzept.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
assets-source/meshy/g02/schlackenklaue-skelett.glb
Normal file
|
|
@ -141,6 +141,17 @@ Hinweis: Die Projektdateien des .NET-Harness (`tools/dotnet/*/*.csproj`) fehlten
|
||||||
| Bild | `screenshots/u5.5-lod/` (Figur, vier Spielmomente, 14 Kampfmomente) |
|
| Bild | `screenshots/u5.5-lod/` (Figur, vier Spielmomente, 14 Kampfmomente) |
|
||||||
| Commits | `luneraria/u5.5-lod` |
|
| Commits | `luneraria/u5.5-lod` |
|
||||||
|
|
||||||
|
## U5.5 · Schlackenklaue (g02)
|
||||||
|
|
||||||
|
| Punkt | Ergebnis |
|
||||||
|
| --- | --- |
|
||||||
|
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30, Asset-Prüfung 20/0 |
|
||||||
|
| Parität | Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`) |
|
||||||
|
| Inhalt | Meshy-Figur für `g02` mit Lane-Fassung, 68 Credits; Werkzeuge nehmen aufgewertete Truppen (`LUNE_FIGURE`, `-luneBenchmarkArmy g02`) |
|
||||||
|
| Leistung | Stresstest 35 Schlackenklauen: Mid 152,5 → 135,8 fps, Karte 116,7 → 115,6 fps. Rohdaten `logs/u5.5-g02/` |
|
||||||
|
| Bild | `screenshots/u5.5-g02/` |
|
||||||
|
| Commits | `luneraria/u5.5-g02` |
|
||||||
|
|
||||||
## Ausblick
|
## Ausblick
|
||||||
|
|
||||||
Der Pilot entscheidet über eine Serie weiterer Meshy-Figuren (Kosten je Figur, Lizenz, Stilgleichheit). Offen bleiben außerdem Künstler-Sculpts für Anatomie/Gesicht/Haar, LOD und Material-Atlanten sowie die Build-Module für Windows und Linux.
|
Der Pilot entscheidet über eine Serie weiterer Meshy-Figuren (Kosten je Figur, Lizenz, Stilgleichheit). Offen bleiben außerdem Künstler-Sculpts für Anatomie/Gesicht/Haar, LOD und Material-Atlanten sowie die Build-Module für Windows und Linux.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Port-Status · Champions of Luneraria in Unity
|
# Port-Status · Champions of Luneraria in Unity
|
||||||
|
|
||||||
Stand: 9. Oktober 2026 (U5.5, Lane-Fassung).
|
Stand: 9. Oktober 2026 (U5.5, zweite Figur).
|
||||||
|
|
||||||
Referenz ist der Godot-Stand `luneraria/g3` (`1b540f2`) in `../saumwacht-godot`; er wird nicht mehr verändert. Engine: Unity 6.3 LTS (6000.3.20f1), Renderer URP. HDRP ist ausgeschlossen, bis ein Vergleich mit einer echten Szene etwas anderes nahelegt.
|
Referenz ist der Godot-Stand `luneraria/g3` (`1b540f2`) in `../saumwacht-godot`; er wird nicht mehr verändert. Engine: Unity 6.3 LTS (6000.3.20f1), Renderer URP. HDRP ist ausgeschlossen, bis ein Vergleich mit einer echten Szene etwas anderes nahelegt.
|
||||||
|
|
||||||
|
|
@ -13,7 +13,7 @@ Zielplattformen sind Fedora 44 und Windows 11; macOS ist die Entwicklungsplattfo
|
||||||
| U2 · Unity-Spielwelt | **fertig**: U2A Blender→FBX-Pipeline (9 Assets geprüft), U2B G1-Karte mit Materialsystem, U2C fester Takt und Ansichten (bildratenunabhängig nachgewiesen), U2D vollständige Bot-Partien sichtbar und gleich dem Kern; danach Batch-Import aller 86 Modelle, Einheiten mit eigenen Modellen | [U2-WORLD.md](U2-WORLD.md) |
|
| U2 · Unity-Spielwelt | **fertig**: U2A Blender→FBX-Pipeline (9 Assets geprüft), U2B G1-Karte mit Materialsystem, U2C fester Takt und Ansichten (bildratenunabhängig nachgewiesen), U2D vollständige Bot-Partien sichtbar und gleich dem Kern; danach Batch-Import aller 86 Modelle, Einheiten mit eigenen Modellen | [U2-WORLD.md](U2-WORLD.md) |
|
||||||
| U3 · G3-HUD portieren | **fertig** (`luneraria/u3`): UI Toolkit, Sichtmodell mit Privatsphäre, menschlicher Sitz, alle HUD-Bereiche, Eingabe und Befehle, Prüfung 718/0, 14 G3-Motive, Spieltest, Leistung mit HUD | [U3-UI.md](U3-UI.md) |
|
| U3 · G3-HUD portieren | **fertig** (`luneraria/u3`): UI Toolkit, Sichtmodell mit Privatsphäre, menschlicher Sitz, alle HUD-Bereiche, Eingabe und Befehle, Prüfung 718/0, 14 G3-Motive, Spieltest, Leistung mit HUD | [U3-UI.md](U3-UI.md) |
|
||||||
| U4 · Netzwerk | **fertig** (`luneraria/u4` = `769e622`): LuneSession (Protokoll 4), TCP-Transport, Startbildschirm Host/Join, 43+12 Prüfungen, Mindestumfang M4. Nachtrag (`luneraria/u4-nachtrag`, in U5.3 zusammengeführt): Startbildschirm in der Szene, „Menü“ führt dorthin zurück | [U4-NETWORK.md](U4-NETWORK.md) |
|
| U4 · Netzwerk | **fertig** (`luneraria/u4` = `769e622`): LuneSession (Protokoll 4), TCP-Transport, Startbildschirm Host/Join, 43+12 Prüfungen, Mindestumfang M4. Nachtrag (`luneraria/u4-nachtrag`, in U5.3 zusammengeführt): Startbildschirm in der Szene, „Menü“ führt dorthin zurück | [U4-NETWORK.md](U4-NETWORK.md) |
|
||||||
| U5 · Visuelle Neuausrichtung (Vertical Slice Mid-Lane) | **fertig** (`luneraria/u5` = `2c1686b`, Stufen `luneraria/u5.2`): 6 PBR-Sätze, Surface-Shader mit Albedo/Normal/ORM, Stufen Lane/Rand, Hit- und Turm-VFX, 133/180 fps. **U5.3** (`luneraria/u5.3` = `07fa457`): Gebäude, Boss und Ringborkes Rinde auf PBR (11 Sätze); Bildfehler aus U5 behoben (doppelte Einfärbung, Datenkarten als sRGB, Streifen, bleichender Treffer-Flash, Nebel), Helligkeit und Grün wieder auf U3-Niveau **U5.4** (`luneraria/u5.4` = `4883d95`): Surface-Materialien für alle 146 Figurenmaterialien (Metalle metallisch, Randlicht, Struktur in den Porträts), SSAO (abschaltbar), Leistung −13 % Karte / −16 % Mid **U5.5-pilot** (`luneraria/u5.5-pilot` = `c386206`): Meshy-Figur für den Kohlenbeißer `g01` (Pipeline `tools/meshy/`, UV-Material mit Lava-Glut, Schatten ohne Normalen-Versatz), GPU-Batched-Skinning, Figuren-Stress −21 % Mid / −13 % Karte gegenüber Phase-4; **Lane-Fassung** (`luneraria/u5.5-lod`): 5.000-Dreiecke-LOD, Abstand −10 % Mid / −2 % Karte | [U5-VISUAL.md](U5-VISUAL.md) |
|
| U5 · Visuelle Neuausrichtung (Vertical Slice Mid-Lane) | **fertig** (`luneraria/u5` = `2c1686b`, Stufen `luneraria/u5.2`): 6 PBR-Sätze, Surface-Shader mit Albedo/Normal/ORM, Stufen Lane/Rand, Hit- und Turm-VFX, 133/180 fps. **U5.3** (`luneraria/u5.3` = `07fa457`): Gebäude, Boss und Ringborkes Rinde auf PBR (11 Sätze); Bildfehler aus U5 behoben (doppelte Einfärbung, Datenkarten als sRGB, Streifen, bleichender Treffer-Flash, Nebel), Helligkeit und Grün wieder auf U3-Niveau **U5.4** (`luneraria/u5.4` = `4883d95`): Surface-Materialien für alle 146 Figurenmaterialien (Metalle metallisch, Randlicht, Struktur in den Porträts), SSAO (abschaltbar), Leistung −13 % Karte / −16 % Mid **U5.5-pilot** (`luneraria/u5.5-pilot` = `c386206`): Meshy-Figur für den Kohlenbeißer `g01` (Pipeline `tools/meshy/`, UV-Material mit Lava-Glut, Schatten ohne Normalen-Versatz), GPU-Batched-Skinning, Figuren-Stress −21 % Mid / −13 % Karte gegenüber Phase-4; **Lane-Fassung** (`luneraria/u5.5-lod`): 5.000-Dreiecke-LOD, Abstand −10 % Mid / −2 % Karte; **Schlackenklaue** `g02` (`luneraria/u5.5-g02`) als zweite Meshy-Figur, −11 % Mid / −1 % Karte | [U5-VISUAL.md](U5-VISUAL.md) |
|
||||||
|
|
||||||
QA je Meilenstein: [PORT-QA.md](PORT-QA.md).
|
QA je Meilenstein: [PORT-QA.md](PORT-QA.md).
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -428,3 +428,51 @@ Die Lane-Fassung halbiert den Abstand in der Mid-Ansicht und schließt ihn auf d
|
||||||
|
|
||||||
- Der Wechsel ist hart (kein Überblenden); bei Zoom um die Schwelle kann man ihn an den Krallen sehen.
|
- Der Wechsel ist hart (kein Überblenden); bei Zoom um die Schwelle kann man ihn an den Krallen sehen.
|
||||||
- Die Lane-Fassung trägt geglättete Normalen statt Meshys geteilter Normalen; die Normalkarte ist für die volle Fassung gebacken. Aus der Lane-Distanz fällt das nicht auf.
|
- Die Lane-Fassung trägt geglättete Normalen statt Meshys geteilter Normalen; die Normalkarte ist für die volle Fassung gebacken. Aus der Lane-Distanz fällt das nicht auf.
|
||||||
|
|
||||||
|
## U5.5 · Zweite Figur: Schlackenklaue (g02)
|
||||||
|
|
||||||
|
Stand 9. Oktober 2026, Zweig `luneraria/u5.5-g02` (auf `luneraria/u5.5-lod`). Die aufgewertete Form des Kohlenbeißers, auf demselben Weg wie der Pilot, jetzt als Serienschritt.
|
||||||
|
|
||||||
|
### Ablauf und Kosten
|
||||||
|
|
||||||
|
| Schritt | Meshy | Credits |
|
||||||
|
| --- | --- | ---: |
|
||||||
|
| Konzeptbild aus dem gemalten Icon (Phase 3), dem Phase-4-Modell (`tools/meshy/render_reference.py`) und dem Konzept des Kohlenbeißers als Stilvorlage; eine Variante | Image to Image, GPT Image 2 | 12 |
|
||||||
|
| 3D-Modell, A-Pose, 20.000 Dreiecke, PBR 2k | Image to 3D, meshy-7.1 | 30 |
|
||||||
|
| Skelett, Höhe 1,5 m | Auto-Rigging | 5 |
|
||||||
|
| Sieben Bewegungen (nur die genutzten) | Animation | 21 |
|
||||||
|
| Summe | | 68 |
|
||||||
|
|
||||||
|
Gegenüber dem Piloten fielen die zweite Konzeptvariante und die drei verworfenen Bewegungen weg. Die Clip-Regeln (Ausschnitte, Längen, Kontaktzeiten), Glut, Farbangleich und Lane-Fassung sind aus `g01/figure.json` übernommen; Meshy liefert für beide Figuren dasselbe Skelett und dieselben Bibliotheks-Clips.
|
||||||
|
|
||||||
|
- `schlackenklaue.fbx`: 20.579 + 4.998 Dreiecke (volle und Lane-Fassung), 25 Knochen, 1,5 m hoch; Export 23 Prüfungen, zweiter Lauf bytegleich. Manifest `"replaces": "g02"`.
|
||||||
|
- `FigureViewsTests` nimmt mit `LUNE_FIGURE=g02` eine aufgewertete Truppe (als Kohlenbeißer gekauft und aufgewertet); `-luneBenchmarkArmy g02` ebenso.
|
||||||
|
|
||||||
|
### Prüfung
|
||||||
|
|
||||||
|
| Test | Ergebnis |
|
||||||
|
| --- | --- |
|
||||||
|
| EditMode / PlayMode | 29/29, 14/14 (6 Werkzeuge `Explicit`), Verify A–I 718/0 |
|
||||||
|
| Fingerabdrücke | `DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`, unverändert |
|
||||||
|
| Asset-Prüfung Unity | `schlackenklaue` 20 Prüfungen, 0 Fehler |
|
||||||
|
| Player-Selbsttest | 30/30, `logs/u5.5-g02/player-smoke.json` |
|
||||||
|
| FigureViewsTests | vorher und nachher je 1/1 |
|
||||||
|
|
||||||
|
### Leistung
|
||||||
|
|
||||||
|
Stresstest mit 35 Schlackenklauen (`-luneBenchmarkRound 5 -luneBenchmarkArmy g02`), GPU-Skinning, je drei Läufe abwechselnd (`logs/u5.5-g02/`):
|
||||||
|
|
||||||
|
| Ansicht | Phase-4 (starr) | Meshy mit Lane-Fassung |
|
||||||
|
| --- | ---: | ---: |
|
||||||
|
| Mid-Lane nah (Zoom 22) | 152,5 | 135,8 (−11 %) |
|
||||||
|
| ganze Karte (Zoom 64) | 116,7 | 115,6 (−1 %) |
|
||||||
|
|
||||||
|
Wie beim Kohlenbeißer bleibt in der Nahansicht der Animator als Mehrkosten (Hauptthread +0,4 ms).
|
||||||
|
|
||||||
|
### Bilder
|
||||||
|
|
||||||
|
`screenshots/u5.5-g02/`: `figur/` (Phase-4 `g02` und Meshy, Trefferframe), `spiel-vorher/` und `spiel-nachher/` (Aufstellung, Porträt, Kampf nah, Lane), `Characters.jpg` und `Units.jpg` eingekleidet, die 14 Kampfmomente des Vertical Function Test.
|
||||||
|
|
||||||
|
### Repository
|
||||||
|
|
||||||
|
Je Figur rund 40 MB: Lieferungen 21 MB (`assets-source/meshy/g02/`), Texturen 18 MB, FBX 3 MB. Für die übrigen Figuren ist Git LFS weiter offen.
|
||||||
|
|
|
||||||
|
|
@ -1805,6 +1805,173 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "schlackenklaue",
|
||||||
|
"kind": "skinned",
|
||||||
|
"ok": true,
|
||||||
|
"checks": [
|
||||||
|
{
|
||||||
|
"check": "blender_checks_passed",
|
||||||
|
"ok": true,
|
||||||
|
"detail": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "imported",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "\"Assets/Luneraria/Art/Characters/schlackenklaue.fbx\""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "import_rules_applied",
|
||||||
|
"ok": true,
|
||||||
|
"detail": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "root_transform_identity",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "\"schlackenklaue pos (0.0000, 0.0000, 0.0000) rot (0.00, 0.00, 0.00) scale (1.0000, 1.0000, 1.0000)\""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "node_transforms_axis_clean",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "mesh_names",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "triangles",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "\"25577 unity / 25577 blender \""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "material_slots",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "normals_unit_length",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "tangents_where_uv",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "uvs_where_blender_has_uv",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "vertex_colors",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "bounds_axes_scale",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "\"largest difference 0.00003 m; unity (-0.826, 0.000, -0.416) (0.826, 1.500, 0.422)\""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "skinned_mesh",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "bone_names SchlackenklaueBody_LOD0",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "root_bone SchlackenklaueBody_LOD0",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "\"Root\""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "bone_names SchlackenklaueBody_LOD1",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "root_bone SchlackenklaueBody_LOD1",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "\"Root\""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "generic_avatar",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "\"schlackenklaueAvatar\""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"check": "clips",
|
||||||
|
"ok": true,
|
||||||
|
"detail": "[]"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"facts": {
|
||||||
|
"triangles": 25577,
|
||||||
|
"renderers": 2,
|
||||||
|
"meshes_without_uv_and_tangents": 0,
|
||||||
|
"degenerate_triangles_dropped": 0,
|
||||||
|
"bounds_min": [
|
||||||
|
-0.8263695,
|
||||||
|
-1.24815869E-09,
|
||||||
|
-0.416030884
|
||||||
|
],
|
||||||
|
"bounds_max": [
|
||||||
|
0.826494336,
|
||||||
|
1.50000882,
|
||||||
|
0.4215979
|
||||||
|
],
|
||||||
|
"clips": [
|
||||||
|
{
|
||||||
|
"name": "ability",
|
||||||
|
"length": 1.20833337,
|
||||||
|
"loop": false,
|
||||||
|
"events": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "attack_a",
|
||||||
|
"length": 1.04166663,
|
||||||
|
"loop": false,
|
||||||
|
"events": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "attack_b",
|
||||||
|
"length": 1.0,
|
||||||
|
"loop": false,
|
||||||
|
"events": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "death",
|
||||||
|
"length": 2.20833325,
|
||||||
|
"loop": false,
|
||||||
|
"events": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "hit",
|
||||||
|
"length": 0.5,
|
||||||
|
"loop": false,
|
||||||
|
"events": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "idle",
|
||||||
|
"length": 4.0,
|
||||||
|
"loop": true,
|
||||||
|
"events": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "walk",
|
||||||
|
"length": 2.79166675,
|
||||||
|
"loop": true,
|
||||||
|
"events": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "schlundkrone",
|
"id": "schlundkrone",
|
||||||
"kind": "skinned",
|
"kind": "skinned",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||||
|
"device": "Mac17,2; Apple M5; Apple M5",
|
||||||
|
"graphics_api": "Metal",
|
||||||
|
"resolution": "1920x1080",
|
||||||
|
"vsync": 0,
|
||||||
|
"match": "seed 9 from round 5, army g02 x36, speed 1x, measured after 10 s of combat",
|
||||||
|
// moving units at the start of the first window: g02 35, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
|
||||||
|
"windows": [
|
||||||
|
{"view": "overview (zoom 64)", "frames": 2260, "fps": 113.0, "frame_ms_avg": 8.85, "frame_ms_median": 3.88, "frame_ms_p95": 29.70, "frame_ms_p99": 46.98, "frame_ms_max": 62.60, "frames_over_16_7_ms": 404, "of_them_with_simulation_step": 34, "gc_collections": 21, "simulation_ms_per_frame": 0.100, "views_ms_per_frame": 0.256, "ui_ms_per_frame": 0.090, "units_alive_max": 97},
|
||||||
|
// timings overview (zoom 64): main thread avg 3.21 / median 2.90 / p95 5.39 ms, render thread avg 2.06 / median 1.98 / p95 2.70 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.65 / median 0.14 / p95 26.35 ms
|
||||||
|
{"view": "mid lane close (zoom 22)", "frames": 1390, "fps": 138.7, "frame_ms_avg": 7.21, "frame_ms_median": 2.80, "frame_ms_p95": 29.80, "frame_ms_p99": 42.89, "frame_ms_max": 54.50, "frames_over_16_7_ms": 187, "of_them_with_simulation_step": 27, "gc_collections": 10, "simulation_ms_per_frame": 0.047, "views_ms_per_frame": 0.194, "ui_ms_per_frame": 0.059, "units_alive_max": 46}
|
||||||
|
// timings mid lane close (zoom 22): main thread avg 2.14 / median 2.01 / p95 3.18 ms, render thread avg 1.35 / median 1.33 / p95 1.56 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.05 / median 0.14 / p95 27.20 ms
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||||
|
"device": "Mac17,2; Apple M5; Apple M5",
|
||||||
|
"graphics_api": "Metal",
|
||||||
|
"resolution": "1920x1080",
|
||||||
|
"vsync": 0,
|
||||||
|
"match": "seed 9 from round 5, army g02 x36, speed 1x, measured after 10 s of combat",
|
||||||
|
// moving units at the start of the first window: g02 35, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
|
||||||
|
"windows": [
|
||||||
|
{"view": "overview (zoom 64)", "frames": 2376, "fps": 118.8, "frame_ms_avg": 8.42, "frame_ms_median": 3.30, "frame_ms_p95": 29.31, "frame_ms_p99": 38.75, "frame_ms_max": 63.50, "frames_over_16_7_ms": 439, "of_them_with_simulation_step": 31, "gc_collections": 22, "simulation_ms_per_frame": 0.081, "views_ms_per_frame": 0.219, "ui_ms_per_frame": 0.076, "units_alive_max": 97},
|
||||||
|
// timings overview (zoom 64): main thread avg 2.69 / median 2.54 / p95 3.80 ms, render thread avg 1.85 / median 1.83 / p95 2.18 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.74 / median 0.17 / p95 26.57 ms
|
||||||
|
{"view": "mid lane close (zoom 22)", "frames": 1390, "fps": 139.0, "frame_ms_avg": 7.20, "frame_ms_median": 3.01, "frame_ms_p95": 26.90, "frame_ms_p99": 40.69, "frame_ms_max": 52.10, "frames_over_16_7_ms": 203, "of_them_with_simulation_step": 18, "gc_collections": 9, "simulation_ms_per_frame": 0.048, "views_ms_per_frame": 0.201, "ui_ms_per_frame": 0.061, "units_alive_max": 46}
|
||||||
|
// timings mid lane close (zoom 22): main thread avg 2.26 / median 2.10 / p95 3.49 ms, render thread avg 1.35 / median 1.33 / p95 1.58 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.92 / median 0.04 / p95 24.51 ms
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||||
|
"device": "Mac17,2; Apple M5; Apple M5",
|
||||||
|
"graphics_api": "Metal",
|
||||||
|
"resolution": "1920x1080",
|
||||||
|
"vsync": 0,
|
||||||
|
"match": "seed 9 from round 5, army g02 x36, speed 1x, measured after 10 s of combat",
|
||||||
|
// moving units at the start of the first window: g02 35, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
|
||||||
|
"windows": [
|
||||||
|
{"view": "overview (zoom 64)", "frames": 2301, "fps": 115.0, "frame_ms_avg": 8.69, "frame_ms_median": 3.63, "frame_ms_p95": 29.19, "frame_ms_p99": 42.80, "frame_ms_max": 63.91, "frames_over_16_7_ms": 429, "of_them_with_simulation_step": 30, "gc_collections": 21, "simulation_ms_per_frame": 0.093, "views_ms_per_frame": 0.242, "ui_ms_per_frame": 0.086, "units_alive_max": 97},
|
||||||
|
// timings overview (zoom 64): main thread avg 3.06 / median 2.83 / p95 4.63 ms, render thread avg 1.95 / median 1.92 / p95 2.43 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.64 / median 0.12 / p95 25.85 ms
|
||||||
|
{"view": "mid lane close (zoom 22)", "frames": 1297, "fps": 129.6, "frame_ms_avg": 7.71, "frame_ms_median": 4.10, "frame_ms_p95": 25.50, "frame_ms_p99": 36.12, "frame_ms_max": 50.60, "frames_over_16_7_ms": 190, "of_them_with_simulation_step": 12, "gc_collections": 10, "simulation_ms_per_frame": 0.068, "views_ms_per_frame": 0.293, "ui_ms_per_frame": 0.093, "units_alive_max": 46}
|
||||||
|
// timings mid lane close (zoom 22): main thread avg 3.26 / median 3.06 / p95 5.22 ms, render thread avg 1.66 / median 1.64 / p95 2.16 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.45 / median 0.00 / p95 21.83 ms
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||||
|
"device": "Mac17,2; Apple M5; Apple M5",
|
||||||
|
"graphics_api": "Metal",
|
||||||
|
"resolution": "1920x1080",
|
||||||
|
"vsync": 0,
|
||||||
|
"match": "seed 9 from round 5, army g02 x36, speed 1x, measured after 10 s of combat",
|
||||||
|
// moving units at the start of the first window: g02 35, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
|
||||||
|
"windows": [
|
||||||
|
{"view": "overview (zoom 64)", "frames": 2332, "fps": 116.5, "frame_ms_avg": 8.58, "frame_ms_median": 4.00, "frame_ms_p95": 25.91, "frame_ms_p99": 34.50, "frame_ms_max": 49.19, "frames_over_16_7_ms": 414, "of_them_with_simulation_step": 26, "gc_collections": 22, "simulation_ms_per_frame": 0.099, "views_ms_per_frame": 0.246, "ui_ms_per_frame": 0.091, "units_alive_max": 97},
|
||||||
|
// timings overview (zoom 64): main thread avg 3.04 / median 2.71 / p95 5.19 ms, render thread avg 2.14 / median 2.11 / p95 2.64 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.53 / median 0.33 / p95 23.09 ms
|
||||||
|
{"view": "mid lane close (zoom 22)", "frames": 1474, "fps": 147.2, "frame_ms_avg": 6.79, "frame_ms_median": 3.90, "frame_ms_p95": 21.34, "frame_ms_p99": 29.11, "frame_ms_max": 35.31, "frames_over_16_7_ms": 149, "of_them_with_simulation_step": 7, "gc_collections": 9, "simulation_ms_per_frame": 0.058, "views_ms_per_frame": 0.252, "ui_ms_per_frame": 0.080, "units_alive_max": 46}
|
||||||
|
// timings mid lane close (zoom 22): main thread avg 2.61 / median 2.10 / p95 5.72 ms, render thread avg 1.51 / median 1.42 / p95 2.17 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.17 / median 0.11 / p95 19.04 ms
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||||
|
"device": "Mac17,2; Apple M5; Apple M5",
|
||||||
|
"graphics_api": "Metal",
|
||||||
|
"resolution": "1920x1080",
|
||||||
|
"vsync": 0,
|
||||||
|
"match": "seed 9 from round 5, army g02 x36, speed 1x, measured after 10 s of combat",
|
||||||
|
// moving units at the start of the first window: g02 35, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
|
||||||
|
"windows": [
|
||||||
|
{"view": "overview (zoom 64)", "frames": 2343, "fps": 117.1, "frame_ms_avg": 8.54, "frame_ms_median": 3.10, "frame_ms_p95": 33.15, "frame_ms_p99": 47.30, "frame_ms_max": 72.11, "frames_over_16_7_ms": 405, "of_them_with_simulation_step": 43, "gc_collections": 22, "simulation_ms_per_frame": 0.085, "views_ms_per_frame": 0.207, "ui_ms_per_frame": 0.074, "units_alive_max": 97},
|
||||||
|
// timings overview (zoom 64): main thread avg 2.49 / median 2.35 / p95 3.60 ms, render thread avg 1.86 / median 1.84 / p95 2.31 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 6.02 / median 0.33 / p95 30.84 ms
|
||||||
|
{"view": "mid lane close (zoom 22)", "frames": 1560, "fps": 155.9, "frame_ms_avg": 6.41, "frame_ms_median": 2.70, "frame_ms_p95": 26.09, "frame_ms_p99": 41.60, "frame_ms_max": 51.38, "frames_over_16_7_ms": 191, "of_them_with_simulation_step": 12, "gc_collections": 9, "simulation_ms_per_frame": 0.043, "views_ms_per_frame": 0.183, "ui_ms_per_frame": 0.052, "units_alive_max": 46}
|
||||||
|
// timings mid lane close (zoom 22): main thread avg 1.87 / median 1.78 / p95 2.80 ms, render thread avg 1.24 / median 1.24 / p95 1.45 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.54 / median 0.28 / p95 24.06 ms
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||||
|
"device": "Mac17,2; Apple M5; Apple M5",
|
||||||
|
"graphics_api": "Metal",
|
||||||
|
"resolution": "1920x1080",
|
||||||
|
"vsync": 0,
|
||||||
|
"match": "seed 9 from round 5, army g02 x36, speed 1x, measured after 10 s of combat",
|
||||||
|
// moving units at the start of the first window: g02 35, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
|
||||||
|
"windows": [
|
||||||
|
{"view": "overview (zoom 64)", "frames": 2330, "fps": 116.5, "frame_ms_avg": 8.58, "frame_ms_median": 3.30, "frame_ms_p95": 32.82, "frame_ms_p99": 49.19, "frame_ms_max": 72.30, "frames_over_16_7_ms": 394, "of_them_with_simulation_step": 38, "gc_collections": 22, "simulation_ms_per_frame": 0.086, "views_ms_per_frame": 0.225, "ui_ms_per_frame": 0.080, "units_alive_max": 97},
|
||||||
|
// timings overview (zoom 64): main thread avg 2.66 / median 2.50 / p95 4.05 ms, render thread avg 1.94 / median 1.90 / p95 2.42 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.94 / median 0.29 / p95 30.02 ms
|
||||||
|
{"view": "mid lane close (zoom 22)", "frames": 1546, "fps": 154.4, "frame_ms_avg": 6.47, "frame_ms_median": 2.76, "frame_ms_p95": 28.52, "frame_ms_p99": 41.75, "frame_ms_max": 53.83, "frames_over_16_7_ms": 178, "of_them_with_simulation_step": 13, "gc_collections": 9, "simulation_ms_per_frame": 0.042, "views_ms_per_frame": 0.188, "ui_ms_per_frame": 0.057, "units_alive_max": 46}
|
||||||
|
// timings mid lane close (zoom 22): main thread avg 1.90 / median 1.79 / p95 2.97 ms, render thread avg 1.26 / median 1.25 / p95 1.47 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.56 / median 0.24 / p95 26.54 ms
|
||||||
|
]
|
||||||
|
}
|
||||||
11
docs/port/logs/u5.5-g02/player-smoke.json
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||||
|
"device": "Mac17,2; Apple M5; Apple M5",
|
||||||
|
"graphics_api": "Metal",
|
||||||
|
"resolution": "1920x1080",
|
||||||
|
"seconds": 11.6,
|
||||||
|
"passed": ["Startbildschirm sichtbar", "Partie wartet: Spielcontroller und Treiber aus", "vor dem Start kein HUD", "„Allein spielen“ bedienbar", "Offline: Startbildschirm verborgen", "Offline: Spielcontroller und Treiber laufen", "Offline: HUD sichtbar", "Offline: neue Partie, Sitz 1 (Mid)", "Offline: Planung", "Offline: lokale Sitzung", "„Startaufstellung“ bedienbar", "Startaufstellung gekauft (3 Einheiten)", "„Bereit“ bedienbar", "Bereit: Kampf beginnt", "Kampf: Figuren im Feld", "„Menü“ bedienbar", "Verlassen-Dialog mit „Zum Menü“", "Zurück: Startbildschirm sichtbar", "Zurück: HUD verborgen", "Zurück: Spielcontroller und Treiber aus", "Zurück: Sitzung beendet", "Zurück: keine Figuren im Feld", "Zurück: Kamera ruht", "Zurück: „Allein spielen“ bedienbar", "Zweite Partie: Startbildschirm verborgen, HUD sichtbar", "Zweite Partie: neue Partie in der Planung", "SSAO folgt der Einstellung", "Option „Umgebungsverdeckung“ sichtbar", "Option schaltet SSAO um", "Option stellt SSAO zurück"],
|
||||||
|
"failed": [],
|
||||||
|
"photos": ["00-startbildschirm.jpg", "01-planung.jpg", "02-kampf.jpg", "03-verlassen.jpg", "04-zurueck-im-startbildschirm.jpg", "05-zweite-partie.jpg", "06-optionen.jpg"],
|
||||||
|
"result": "PASS"
|
||||||
|
}
|
||||||
11
docs/port/logs/u5.5-g02/scene-frame-rates.json
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"match": "seed 2, bots, speed 24x",
|
||||||
|
"core_hash": "DCE95C96556F3A1A",
|
||||||
|
"core_steps": 12690,
|
||||||
|
"runs": [
|
||||||
|
{"target": "30 fps", "frames": 815, "seconds": 27.143, "measured_fps": 30.026, "max_steps_per_frame": 19, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
|
||||||
|
{"target": "60 fps", "frames": 1627, "seconds": 27.104, "measured_fps": 60.029, "max_steps_per_frame": 10, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
|
||||||
|
{"target": "120 fps", "frames": 3224, "seconds": 26.933, "measured_fps": 119.704, "max_steps_per_frame": 8, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
|
||||||
|
{"target": "unlimited", "frames": 86620, "seconds": 26.835, "measured_fps": 3227.837, "max_steps_per_frame": 6, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true}
|
||||||
|
]
|
||||||
|
}
|
||||||
16
docs/port/logs/u5.5-g02/vertical-function-test.json
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"runs": [
|
||||||
|
{"label": "match-seed2", "seed": 2, "start_round": 1, "extra_gold": 0, "speed": 6, "winner": 1, "end_note": "Ancient von Blau zerstört.", "steps": 12690, "hash": "DCE95C96556F3A1A", "core_hash": "DCE95C96556F3A1A", "same_as_core": true,
|
||||||
|
"units_alive_max": 84, "heroes_alive_max": 4, "boss_log": ["round 8: won team 1 ", "round 9: deployed team 1 bot"],
|
||||||
|
"rounds": [{"round": 1, "combat_seconds": 44.9, "lost": [], "boss": "none", "end": "cleared"}, {"round": 2, "combat_seconds": 57.1, "lost": [], "boss": "none", "end": "cleared"}, {"round": 3, "combat_seconds": 54.1, "lost": [], "boss": "none", "end": "cleared"}, {"round": 4, "combat_seconds": 62.9, "lost": [], "boss": "none", "end": "cleared"}, {"round": 5, "combat_seconds": 60.7, "lost": [], "boss": "none", "end": "cleared"}, {"round": 6, "combat_seconds": 62.1, "lost": [], "boss": "none", "end": "cleared"}, {"round": 7, "combat_seconds": 66.5, "lost": ["blau_bot_outer"], "boss": "none", "end": "cleared"}, {"round": 8, "combat_seconds": 89.65, "lost": ["rot_top_outer", "rot_top_inner"], "boss": "won", "end": "cleared"}, {"round": 9, "combat_seconds": 136.55, "lost": ["blau_bot_inner", "blau_base_2", "blau_base_1", "blau_ancient"], "boss": "deployed", "end": "core"}],
|
||||||
|
"events": ["round 7: blau_bot_outer destroyed", "round 8: rot_top_outer destroyed", "round 8: rot_top_inner destroyed", "round 8: grotto boss won", "round 9: blau_bot_inner destroyed", "round 9: blau_base_2 destroyed", "round 9: blau_base_1 destroyed", "round 9: blau_ancient destroyed", "round 9: grotto boss deployed"],
|
||||||
|
"shots": ["01-runde1-aufmarsch", "02-runde1-mid-kampf", "03-turm-faellt", "04-turm-ruine", "05-grotte-bosskampf", "06-held-kaempft", "07-boss-auf-der-lane", "08-ancient-faellt", "09-ancient-ruine", "10-ende-uebersicht"],
|
||||||
|
"performance": null},
|
||||||
|
{"label": "match-seed9-round21", "seed": 9, "start_round": 21, "extra_gold": 4000, "speed": 6, "winner": 0, "end_note": "Ancient von Rot zerstört.", "steps": 4195, "hash": "7B8E43AEFC0D60C5", "core_hash": "7B8E43AEFC0D60C5", "same_as_core": true,
|
||||||
|
"units_alive_max": 125, "heroes_alive_max": 6, "boss_log": [],
|
||||||
|
"rounds": [{"round": 21, "combat_seconds": 121.8, "lost": ["rot_mid_outer", "rot_top_outer", "rot_mid_inner"], "boss": "none", "end": "cleared"}, {"round": 22, "combat_seconds": 87.95, "lost": ["rot_top_inner", "rot_base_1", "blau_bot_outer", "rot_base_2", "rot_ancient"], "boss": "none", "end": "core"}],
|
||||||
|
"events": ["round 21: rot_mid_outer destroyed", "round 21: rot_top_outer destroyed", "round 21: rot_mid_inner destroyed", "round 22: rot_top_inner destroyed", "round 22: rot_base_1 destroyed", "round 22: blau_bot_outer destroyed", "round 22: rot_base_2 destroyed", "round 22: rot_ancient destroyed"],
|
||||||
|
"shots": ["11-welle21-uebersicht", "12-welle21-kampf", "13-ancient-rot-faellt", "14-welle-ende"],
|
||||||
|
"performance": {"window": "20 s real time at 1x speed, unlimited frame rate, round 21", "frames": 49647, "fps": 2482.349, "frame_ms_avg": 0.403, "frame_ms_p95": 0.414, "simulation_ms_per_frame": 0.004, "views_ms_per_frame": 0.13, "units_alive_max": 116}}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
docs/port/screenshots/u5.5-g02/01-runde1-aufmarsch.jpg
Normal file
|
After Width: | Height: | Size: 595 KiB |
BIN
docs/port/screenshots/u5.5-g02/02-runde1-mid-kampf.jpg
Normal file
|
After Width: | Height: | Size: 610 KiB |
BIN
docs/port/screenshots/u5.5-g02/03-turm-faellt.jpg
Normal file
|
After Width: | Height: | Size: 543 KiB |
BIN
docs/port/screenshots/u5.5-g02/04-turm-ruine.jpg
Normal file
|
After Width: | Height: | Size: 534 KiB |
BIN
docs/port/screenshots/u5.5-g02/05-grotte-bosskampf.jpg
Normal file
|
After Width: | Height: | Size: 609 KiB |
BIN
docs/port/screenshots/u5.5-g02/06-held-kaempft.jpg
Normal file
|
After Width: | Height: | Size: 624 KiB |
BIN
docs/port/screenshots/u5.5-g02/07-boss-auf-der-lane.jpg
Normal file
|
After Width: | Height: | Size: 577 KiB |
BIN
docs/port/screenshots/u5.5-g02/08-ancient-faellt.jpg
Normal file
|
After Width: | Height: | Size: 624 KiB |
BIN
docs/port/screenshots/u5.5-g02/09-ancient-ruine.jpg
Normal file
|
After Width: | Height: | Size: 623 KiB |
BIN
docs/port/screenshots/u5.5-g02/10-ende-uebersicht.jpg
Normal file
|
After Width: | Height: | Size: 435 KiB |
BIN
docs/port/screenshots/u5.5-g02/11-welle21-uebersicht.jpg
Normal file
|
After Width: | Height: | Size: 592 KiB |
BIN
docs/port/screenshots/u5.5-g02/12-welle21-kampf.jpg
Normal file
|
After Width: | Height: | Size: 648 KiB |
BIN
docs/port/screenshots/u5.5-g02/13-ancient-rot-faellt.jpg
Normal file
|
After Width: | Height: | Size: 601 KiB |
BIN
docs/port/screenshots/u5.5-g02/14-welle-ende.jpg
Normal file
|
After Width: | Height: | Size: 580 KiB |
BIN
docs/port/screenshots/u5.5-g02/Characters.jpg
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
docs/port/screenshots/u5.5-g02/Units.jpg
Normal file
|
After Width: | Height: | Size: 717 KiB |
BIN
docs/port/screenshots/u5.5-g02/figur/g02.jpg
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
docs/port/screenshots/u5.5-g02/figur/schlackenklaue-attack_a.jpg
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
docs/port/screenshots/u5.5-g02/figur/schlackenklaue.jpg
Normal file
|
After Width: | Height: | Size: 120 KiB |
|
After Width: | Height: | Size: 716 KiB |
BIN
docs/port/screenshots/u5.5-g02/spiel-nachher/02-portraet.jpg
Normal file
|
After Width: | Height: | Size: 713 KiB |
BIN
docs/port/screenshots/u5.5-g02/spiel-nachher/03-kampf-nah.jpg
Normal file
|
After Width: | Height: | Size: 716 KiB |
BIN
docs/port/screenshots/u5.5-g02/spiel-nachher/04-kampf-lane.jpg
Normal file
|
After Width: | Height: | Size: 669 KiB |
|
After Width: | Height: | Size: 710 KiB |
BIN
docs/port/screenshots/u5.5-g02/spiel-vorher/02-portraet.jpg
Normal file
|
After Width: | Height: | Size: 707 KiB |
BIN
docs/port/screenshots/u5.5-g02/spiel-vorher/03-kampf-nah.jpg
Normal file
|
After Width: | Height: | Size: 713 KiB |
BIN
docs/port/screenshots/u5.5-g02/spiel-vorher/04-kampf-lane.jpg
Normal file
|
After Width: | Height: | Size: 672 KiB |
|
|
@ -1630,6 +1630,51 @@
|
||||||
"death"
|
"death"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "schlackenklaue",
|
||||||
|
"group": "Characters",
|
||||||
|
"kind": "skinned",
|
||||||
|
"representative": "U5.5 series: Schlackenklaue (g02) from Meshy (image to 3D, auto rig, library clips)",
|
||||||
|
"source": "tools/meshy/build_figure.py",
|
||||||
|
"source_root": "unity",
|
||||||
|
"generator": {
|
||||||
|
"args": [
|
||||||
|
"tools/meshy/g02/figure.json"
|
||||||
|
],
|
||||||
|
"inputs": [
|
||||||
|
"tools/meshy/g02/figure.json",
|
||||||
|
"assets-source/meshy/g02/schlackenklaue-skelett.glb",
|
||||||
|
"assets-source/meshy/g02/schlackenklaue-animationen.glb"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"replaces": "g02",
|
||||||
|
"expect": {
|
||||||
|
"triangles": 25577,
|
||||||
|
"bones": 25,
|
||||||
|
"clips": [
|
||||||
|
"idle",
|
||||||
|
"walk",
|
||||||
|
"attack_a",
|
||||||
|
"attack_b",
|
||||||
|
"hit",
|
||||||
|
"ability",
|
||||||
|
"death"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"rest_action": null,
|
||||||
|
"root_bone": "Root",
|
||||||
|
"required_clips": [
|
||||||
|
"idle",
|
||||||
|
"walk",
|
||||||
|
"attack_a",
|
||||||
|
"attack_b",
|
||||||
|
"hit",
|
||||||
|
"ability",
|
||||||
|
"death"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"aliases": {
|
"aliases": {
|
||||||
|
|
|
||||||
10
tools/meshy/g02/01-konzept.json
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"ai_model": "gpt-image-2",
|
||||||
|
"prompt": "Full-body concept of the creature in the first two references for a 3D fantasy strategy game, painted in exactly the same art style and materials as the third reference (its weaker form). The Schlackenklaue: a bigger, heavier, more armored slag golem of jagged black basalt, a crest of tall sharp rock spikes along the head and back, molten orange lava glowing in the cracks and in a wide fanged maw, small fierce glowing eyes, each forearm ending in one huge curved gold claw blade with gold armor plates, short thick legs with clawed rock feet and gold toe claws. Stylized realism, hand-sculpted detailed forms, chunky readable silhouette. Standing in a symmetric A-pose, front view, arms held away from the body, legs apart, entire figure visible head to feet, centered. Plain light grey background, soft even studio light, no ground shadow, no text.",
|
||||||
|
"aspect_ratio": "1:1",
|
||||||
|
"reference_image_urls": [
|
||||||
|
"@../saumwacht-godot/assets-source/phase3/masters/glutpakt/unit_g02_schlackenklaue_icon.png",
|
||||||
|
"@tools/meshy/g02/ref-g02-phase4.png",
|
||||||
|
"@assets-source/meshy/g01/kohlenbeisser-konzept.png"
|
||||||
|
]
|
||||||
|
}
|
||||||
16
tools/meshy/g02/02-modell.json
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"input_task_id": "01a12109-4149-75c6-8389-69e32b2d019a",
|
||||||
|
"ai_model": "latest",
|
||||||
|
"should_texture": true,
|
||||||
|
"enable_pbr": true,
|
||||||
|
"texture_resolution": "2k",
|
||||||
|
"should_remesh": true,
|
||||||
|
"topology": "triangle",
|
||||||
|
"target_polycount": 20000,
|
||||||
|
"save_pre_remeshed_model": true,
|
||||||
|
"pose_mode": "a-pose",
|
||||||
|
"target_formats": [
|
||||||
|
"glb"
|
||||||
|
],
|
||||||
|
"multi_view_thumbnails": true
|
||||||
|
}
|
||||||
4
tools/meshy/g02/03-skelett.json
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"input_task_id": "01a1210a-349a-779d-838f-dee08a360b01",
|
||||||
|
"height_meters": 1.5
|
||||||
|
}
|
||||||
4
tools/meshy/g02/04-animationen.json
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"rig_task_id": "01a1210d-0253-7324-86df-5ede62f0d2ca",
|
||||||
|
"action_ids": [0, 119, 219, 214, 178, 127, 189]
|
||||||
|
}
|
||||||
21
tools/meshy/g02/figure.json
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"id": "schlackenklaue",
|
||||||
|
"replaces": "g02",
|
||||||
|
"rig": "assets-source/meshy/g02/schlackenklaue-skelett.glb",
|
||||||
|
"animations": "assets-source/meshy/g02/schlackenklaue-animationen.glb",
|
||||||
|
"material": "AI_Schlackenklaue",
|
||||||
|
"textures": "Assets/Luneraria/Art/Textures/ai-schlackenklaue",
|
||||||
|
"root_bone": "Root",
|
||||||
|
"glow": {"hue": [0, 42], "saturation": 0.6, "value": 0.5, "metal_below": 0.5},
|
||||||
|
"lod": {"triangles": 5000, "sharp_degrees": 50, "lod0_screen": 0.2},
|
||||||
|
"palette": {"rock": {"color": "41434b", "strength": 0.8}, "metal": {"color": "c99645", "strength": 1.0}},
|
||||||
|
"clips": {
|
||||||
|
"idle": {"source": "Idle", "loop": true},
|
||||||
|
"walk": {"source": "Slow_Orc_Walk", "seconds": 2.8, "loop": true},
|
||||||
|
"attack_a": {"source": "Right_Hand_Sword_Slash", "frames": [0, 36], "seconds": 1.05, "contact_frame": 14},
|
||||||
|
"attack_b": {"source": "Punch_Forward_with_Both_Fists", "frames": [18, 56], "seconds": 1.0, "contact_frame": 36},
|
||||||
|
"hit": {"source": "Hit_Reaction", "frames": [0, 12], "seconds": 0.5},
|
||||||
|
"ability": {"source": "Charged_Ground_Slam", "frames": [6, 64], "seconds": 1.2, "contact_frame": 41},
|
||||||
|
"death": {"source": "dying_backwards"}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
tools/meshy/g02/ref-g02-phase4.png
Normal file
|
After Width: | Height: | Size: 1 MiB |
20
tools/meshy/g02/tasks/animationen.json
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"id": "01a1210d-7482-7627-b69a-31531cc2288f",
|
||||||
|
"type": "animate",
|
||||||
|
"name": "",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"created_at": 1791555892761,
|
||||||
|
"progress": 100,
|
||||||
|
"started_at": 1791555892768,
|
||||||
|
"finished_at": 1791555914645,
|
||||||
|
"expires_at": 1791815114645,
|
||||||
|
"task_error": null,
|
||||||
|
"result": {
|
||||||
|
"animation_glb_url": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210d-7482-7627-b69a-31531cc2288f/output/merged_animations.glb",
|
||||||
|
"animation_fbx_url": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210d-7482-7627-b69a-31531cc2288f/output/merged_animations.fbx",
|
||||||
|
"processed_usdz_url": "",
|
||||||
|
"processed_armature_fbx_url": "",
|
||||||
|
"processed_animation_fps_fbx_url": ""
|
||||||
|
},
|
||||||
|
"consumed_credits": 21
|
||||||
|
}
|
||||||
16
tools/meshy/g02/tasks/konzept.json
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"id": "01a12109-4149-75c6-8389-69e32b2d019a",
|
||||||
|
"type": "image-to-image",
|
||||||
|
"ai_model": "gpt-image-2",
|
||||||
|
"prompt": "Full-body concept of the creature in the first two references for a 3D fantasy strategy game, painted in exactly the same art style and materials as the third reference (its weaker form). The Schlackenklaue: a bigger, heavier, more armored slag golem of jagged black basalt, a crest of tall sharp rock spikes along the head and back, molten orange lava glowing in the cracks and in a wide fanged maw, small fierce glowing eyes, each forearm ending in one huge curved gold claw blade with gold armor plates, short thick legs with clawed rock feet and gold toe claws. Stylized realism, hand-sculpted detailed forms, chunky readable silhouette. Standing in a symmetric A-pose, front view, arms held away from the body, legs apart, entire figure visible head to feet, centered. Plain light grey background, soft even studio light, no ground shadow, no text.",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"progress": 100,
|
||||||
|
"created_at": 1791555619352,
|
||||||
|
"started_at": 1791555619362,
|
||||||
|
"finished_at": 1791555656841,
|
||||||
|
"expires_at": 1791814856841,
|
||||||
|
"image_urls": [
|
||||||
|
"https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/uploads/image_01a12109-4149-75c6-8389-69e32b2d019a_0.png"
|
||||||
|
],
|
||||||
|
"consumed_credits": 12
|
||||||
|
}
|
||||||
41
tools/meshy/g02/tasks/modell.json
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
"id": "01a1210a-349a-779d-838f-dee08a360b01",
|
||||||
|
"type": "image-to-3d",
|
||||||
|
"name": "",
|
||||||
|
"art_style": "",
|
||||||
|
"object_prompt": "",
|
||||||
|
"style_prompt": "",
|
||||||
|
"negative_prompt": "",
|
||||||
|
"texture_prompt": "",
|
||||||
|
"texture_image_url": "",
|
||||||
|
"text_style_prompt": "",
|
||||||
|
"image_style_url": "",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"created_at": 1791555679931,
|
||||||
|
"progress": 100,
|
||||||
|
"started_at": 1791555679938,
|
||||||
|
"finished_at": 1791555851822,
|
||||||
|
"expires_at": 1791815051822,
|
||||||
|
"task_error": null,
|
||||||
|
"model_url": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210a-349a-779d-838f-dee08a360b01/output/model.glb",
|
||||||
|
"model_urls": {
|
||||||
|
"glb": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210a-349a-779d-838f-dee08a360b01/output/model.glb",
|
||||||
|
"pre_remeshed_glb": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210a-349a-779d-838f-dee08a360b01/output/pre_remeshed_model.glb"
|
||||||
|
},
|
||||||
|
"thumbnail_url": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210a-349a-779d-838f-dee08a360b01/output/preview.png",
|
||||||
|
"thumbnail_urls": {
|
||||||
|
"back": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210a-349a-779d-838f-dee08a360b01/output/preview_back.png",
|
||||||
|
"front": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210a-349a-779d-838f-dee08a360b01/output/preview_front.png",
|
||||||
|
"left": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210a-349a-779d-838f-dee08a360b01/output/preview_left.png",
|
||||||
|
"right": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210a-349a-779d-838f-dee08a360b01/output/preview_right.png"
|
||||||
|
},
|
||||||
|
"texture_urls": [
|
||||||
|
{
|
||||||
|
"base_color": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210a-349a-779d-838f-dee08a360b01/output/texture_0.png",
|
||||||
|
"metallic": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210a-349a-779d-838f-dee08a360b01/output/texture_0_metallic.png",
|
||||||
|
"roughness": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210a-349a-779d-838f-dee08a360b01/output/texture_0_roughness.png",
|
||||||
|
"normal": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210a-349a-779d-838f-dee08a360b01/output/texture_0_normal.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"consumed_credits": 30
|
||||||
|
}
|
||||||
25
tools/meshy/g02/tasks/skelett.json
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"id": "01a1210d-0253-7324-86df-5ede62f0d2ca",
|
||||||
|
"type": "rig",
|
||||||
|
"name": "",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"created_at": 1791555869381,
|
||||||
|
"progress": 100,
|
||||||
|
"started_at": 1791555869386,
|
||||||
|
"finished_at": 1791555886241,
|
||||||
|
"expires_at": 1791815086241,
|
||||||
|
"task_error": null,
|
||||||
|
"result": {
|
||||||
|
"rigged_character_fbx_url": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210d-0253-7324-86df-5ede62f0d2ca/output/Character_output.fbx",
|
||||||
|
"rigged_character_glb_url": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210d-0253-7324-86df-5ede62f0d2ca/output/Character_output.glb",
|
||||||
|
"basic_animations": {
|
||||||
|
"walking_glb_url": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210d-0253-7324-86df-5ede62f0d2ca/output/Animation_Walking_withSkin.glb",
|
||||||
|
"walking_fbx_url": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210d-0253-7324-86df-5ede62f0d2ca/output/Animation_Walking_withSkin.fbx",
|
||||||
|
"walking_armature_glb_url": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210d-0253-7324-86df-5ede62f0d2ca/output/Animation_Walking_withSkin_armature.glb",
|
||||||
|
"running_glb_url": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210d-0253-7324-86df-5ede62f0d2ca/output/Animation_Running_withSkin.glb",
|
||||||
|
"running_fbx_url": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210d-0253-7324-86df-5ede62f0d2ca/output/Animation_Running_withSkin.fbx",
|
||||||
|
"running_armature_glb_url": "https://assets.meshy.ai/c8cdc243-64e1-4e9d-9fa1-3bd5ed731d84/tasks/01a1210d-0253-7324-86df-5ede62f0d2ca/output/Animation_Running_withSkin_armature.glb"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"consumed_credits": 5
|
||||||
|
}
|
||||||
39
tools/meshy/render_reference.py
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
"""Reference picture of a Phase-4 figure for the Meshy concept step (U5.5 series): 3/4 front view,
|
||||||
|
key and rim sun, neutral grey, 1000 px. The .blend of the Godot reference is opened read-only.
|
||||||
|
blender --background <figure.blend> --python tools/meshy/render_reference.py -- <out.png>"""
|
||||||
|
import bpy, math, sys
|
||||||
|
from mathutils import Vector
|
||||||
|
|
||||||
|
out = sys.argv[sys.argv.index('--') + 1]
|
||||||
|
scene = bpy.context.scene
|
||||||
|
meshes = [o for o in scene.objects if o.type == 'MESH' and o.visible_get()]
|
||||||
|
lo = Vector((1e9,) * 3)
|
||||||
|
hi = Vector((-1e9,) * 3)
|
||||||
|
for o in meshes:
|
||||||
|
for c in o.bound_box:
|
||||||
|
w = o.matrix_world @ Vector(c)
|
||||||
|
lo = Vector(min(lo[i], w[i]) for i in range(3))
|
||||||
|
hi = Vector(max(hi[i], w[i]) for i in range(3))
|
||||||
|
center = (lo + hi) * .5
|
||||||
|
size = (hi - lo).length
|
||||||
|
cam = bpy.data.objects.new('C', bpy.data.cameras.new('C'))
|
||||||
|
cam.data.lens = 85
|
||||||
|
scene.collection.objects.link(cam)
|
||||||
|
cam.location = center + Vector((.55, -1.0, .45)).normalized() * size * 2.4
|
||||||
|
cam.rotation_euler = (center - cam.location).to_track_quat('-Z', 'Y').to_euler()
|
||||||
|
scene.camera = cam
|
||||||
|
for name, energy, rot in [('Key', 3.2, (48, 0, 150)), ('Rim', 2.0, (25, 0, -30))]:
|
||||||
|
light = bpy.data.lights.new(name, 'SUN')
|
||||||
|
light.energy = energy
|
||||||
|
obj = bpy.data.objects.new(name, light)
|
||||||
|
scene.collection.objects.link(obj)
|
||||||
|
obj.rotation_euler = tuple(math.radians(a) for a in rot)
|
||||||
|
world = bpy.data.worlds.new('W')
|
||||||
|
scene.world = world
|
||||||
|
world.use_nodes = True
|
||||||
|
world.node_tree.nodes['Background'].inputs[0].default_value = (.30, .34, .40, 1)
|
||||||
|
engines = [e.identifier for e in bpy.types.RenderSettings.bl_rna.properties['engine'].enum_items]
|
||||||
|
scene.render.engine = 'BLENDER_EEVEE_NEXT' if 'BLENDER_EEVEE_NEXT' in engines else 'BLENDER_EEVEE'
|
||||||
|
scene.render.resolution_x = scene.render.resolution_y = 1000
|
||||||
|
scene.render.filepath = out
|
||||||
|
bpy.ops.render.render(write_still=True)
|
||||||