Merge luneraria/u5.5 in H1: Sylvara und das vollständige Glutpakt

Konflikte nur in erzeugten Dateien (Szene, Material- und Figurenbibliothek,
Verifier-Protokoll), im Export-Manifest (Sylvara-Eintrag ergänzt) und im
Port-Status. Szene neu gebaut; EditMode 30/30, PlayMode 15/15, Verify 718/0,
Fingerabdruck DCE95C96556F3A1A unverändert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Martin Stickelbroeck 2026-10-11 12:03:14 +02:00
commit 2e05cbe08f
174 changed files with 65949 additions and 61600 deletions

View file

@ -265,11 +265,11 @@
"props": []
},
"inputs_sha256": {
"tools/meshy/g07/figure.json": "6d7066a42c7c4b71ad6f7bb7569311cc7210156fde9a7fadc0eddc5bd6a00c7f",
"tools/meshy/g07/figure.json": "b33bf1f6580bc1d683354f04956442869727699e01c7456cfc8fdcfc879a9f42",
"assets-source/meshy/g07/aschenwerfer-skelett.glb": "d9b311fdc33d18df89dcdd3a88be879079ac40d48f9e14d8ded90ed4c532be7f",
"assets-source/meshy/g07/aschenwerfer-animationen.glb": "6211206d4df5bfc3dee511cca1a92f31a8a19a23986265d30f169339589f7e11"
},
"source_sha256": "4d5cdab415e4bfa97abe420f7457d4e1cddd67b9a76c23ccb6f9313a2fd8ea4e",
"source_sha256": "c933c6a13c2938f90f3eb063bcabb98ffddd9ab2deb55e808c32009ab2965bf3",
"removed_modifiers": 0,
"kind": "skinned",
"fps": 24.0,
@ -486,6 +486,6 @@
"meshes_without_uv": [],
"triangles": 25282,
"fbx": "Assets/Luneraria/Art/Characters/aschenwerfer.fbx",
"fbx_bytes": 3234540,
"fbx_bytes": 3232540,
"ok": true
}

View file

@ -0,0 +1,491 @@
{
"id": "basaltbastion_meshy",
"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": "['Basaltbastion_meshyBody_LOD0', 'Basaltbastion_meshyBody_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": "25178 fbx / 25178 godot"
},
{
"check": "one_armature",
"ok": true,
"detail": "['Basaltbastion_meshyRig']"
},
{
"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": "25178 / 25178"
},
{
"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.0099,
"palette_gains": {
"rock": [
0.7852,
0.8903,
1.0126
],
"metal": [
1.8682,
1.5742,
0.7485
]
},
"size": [
2048,
2048
]
},
"unit": 0.009999999776482582,
"lod": {
"lod0_triangles": 20185,
"lod1_triangles": 4993,
"lod1_vertices": 2485,
"welded_triangles": 20185,
"lod0_screen": 0.2
},
"props": []
},
"inputs_sha256": {
"tools/meshy/g04/figure.json": "892798e08fced79757056488cf500ddf03f64582987a3e1e64addb9e2c90abbf",
"assets-source/meshy/g04/basaltbastion-skelett.glb": "b11b840bfae8bd157c1155945d4964ca31f7c36fc3043c2442c28e8ffc1f4807",
"assets-source/meshy/g04/basaltbastion-animationen.glb": "5e3dc878f1ac1de23f25cedf5e694f4f60a10929bebec6b0e38f6b86f8c79cfa"
},
"source_sha256": "c933c6a13c2938f90f3eb063bcabb98ffddd9ab2deb55e808c32009ab2965bf3",
"removed_modifiers": 0,
"kind": "skinned",
"fps": 24.0,
"objects": 3,
"meshes": {
"Basaltbastion_meshyBody_LOD0": {
"mesh": "Basaltbastion_meshyBody_LOD0",
"triangles": 20185,
"vertices": 28837,
"ngons": 0,
"materials": [
"AI_Basaltbastion"
],
"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": [
-1.003,
0.0,
-0.4388
],
"max": [
1.003,
1.764,
0.4388
]
}
},
"Basaltbastion_meshyBody_LOD1": {
"mesh": "Basaltbastion_meshyBody_LOD1",
"triangles": 4993,
"vertices": 2485,
"ngons": 0,
"materials": [
"AI_Basaltbastion"
],
"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": [
-1.0001,
-0.0,
-0.4387
],
"max": [
1.0016,
1.7637,
0.4402
]
}
}
},
"armatures": {
"Basaltbastion_meshyRig": {
"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": [
-1.003,
-0.0,
-0.4388
],
"max": [
1.003,
1.764,
0.4402
]
},
"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": 25178,
"bones": 25,
"clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
},
"meshes_with_ngons": {},
"meshes_without_uv": [],
"triangles": 25178,
"fbx": "Assets/Luneraria/Art/Characters/basaltbastion_meshy.fbx",
"fbx_bytes": 3435820,
"ok": true
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d504fe7aa8bb746b2a01a860fa68558d
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,337 @@
fileFormatVersion: 2
guid: aa5734da897ea44808385f37d34070bf
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: Basaltbastion_meshyRig|ability
internalID: -5495293919160781032
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: Basaltbastion_meshyRig|attack_a
internalID: 1565449223295100875
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: Basaltbastion_meshyRig|attack_b
internalID: 3972096498202774343
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: Basaltbastion_meshyRig|death
internalID: -4724392375424077161
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: Basaltbastion_meshyRig|hit
internalID: -4714297317412057206
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: Basaltbastion_meshyRig|idle
internalID: 9093657477581702130
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: Basaltbastion_meshyRig|walk
internalID: -1455650782467671261
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:

View file

@ -169,32 +169,32 @@
"height": 1.3865,
"leg_x": 0.4311,
"weapon_z": 1.1316,
"tip_y": -1.2943,
"back_y": 1.232,
"tip_y": -0.9734,
"back_y": 0.9266,
"bow_x": 0.9306,
"bow_y": 0.0911
"bow_y": 0.0685
},
"rig_scale": 0.9671,
"weights": {
"Pelvis": 3922,
"Spine": 1159,
"Weapon": 9305,
"Gear": 823,
"Pelvis": 4782,
"Spine": 1616,
"Weapon": 7790,
"Gear": 957,
"Draw": 0,
"Bolt": 0,
"Quarrel": 284,
"Limb.L": 221,
"LimbTip.L": 397,
"Limb.R": 190,
"LimbTip.R": 428,
"Thigh.L": 2413,
"Shin.L": 2104,
"Tarsus.L": 598,
"Foot.L": 647,
"Thigh.R": 2289,
"Shin.R": 2128,
"Tarsus.R": 709,
"Foot.R": 649
"Quarrel": 227,
"Limb.L": 325,
"LimbTip.L": 387,
"Limb.R": 249,
"LimbTip.R": 417,
"Thigh.L": 2435,
"Shin.L": 1968,
"Tarsus.L": 759,
"Foot.L": 588,
"Thigh.R": 2309,
"Shin.R": 1993,
"Tarsus.R": 873,
"Foot.R": 591
},
"clips": {
"ability": {
@ -261,12 +261,12 @@
}
},
"inputs_sha256": {
"tools/meshy/build_figure.py": "4d5cdab415e4bfa97abe420f7457d4e1cddd67b9a76c23ccb6f9313a2fd8ea4e",
"tools/meshy/g06/figure.json": "157eeb4a1737ba23381fdf7665b73756b6a7427b02fe8074a1e15d206d15c81e",
"tools/meshy/build_figure.py": "c933c6a13c2938f90f3eb063bcabb98ffddd9ab2deb55e808c32009ab2965bf3",
"tools/meshy/g06/figure.json": "00719cd095645ea43c939560bd946d9ff688dfc7f6f2ac9de3b84e4c57736993",
"assets-source/meshy/g06/glasballiste-modell.glb": "1e7efc1943c3c622e122f68d9dc954c3ae262a13eed66fecf1c8b26d97bcbb5a",
"assets-source/meshy/g06/glasballiste-rig-phase19.blend": "3fae885ac47e031fc6cadd6fb5010774405548eca9a5d96e7e1a4859e7f7d590"
},
"source_sha256": "e67cdc167c162edddaa8e7d03f92e4574bf1c04ff0bbc60727ca49691e4d0b80",
"source_sha256": "ff14c7425b5099b580fbd66aedc4d983d6433679f495092006d358c30e9b6123",
"removed_modifiers": 0,
"kind": "skinned",
"fps": 24.0,
@ -300,12 +300,12 @@
"min": [
-0.9194,
0.0,
-1.232
-0.9266
],
"max": [
0.9306,
1.3865,
1.2943
0.9734
]
}
},
@ -335,14 +335,14 @@
],
"bounds_unity": {
"min": [
-0.9115,
-0.0,
-1.2321
-0.9116,
-0.0002,
-0.9272
],
"max": [
0.9199,
0.92,
1.389,
1.2979
0.9769
]
}
}
@ -380,13 +380,13 @@
"bounds_unity": {
"min": [
-0.9194,
-0.0,
-1.2321
-0.0002,
-0.9272
],
"max": [
0.9306,
1.389,
1.2979
0.9769
]
},
"clips": [
@ -478,6 +478,6 @@
"meshes_without_uv": [],
"triangles": 25392,
"fbx": "Assets/Luneraria/Art/Characters/glasballiste_meshy.fbx",
"fbx_bytes": 2783260,
"fbx_bytes": 2784988,
"ok": true
}

View file

@ -260,11 +260,11 @@
"props": []
},
"inputs_sha256": {
"tools/meshy/g09/figure.json": "b8fbf09467fb1a5bb4d21f460e3fb461036b271ef572b2763f2f83de95ed00a4",
"tools/meshy/g09/figure.json": "422b877a0bdea26ef5686a13501e79137bc54ed0769e1c05ccd1fc1e6f551c8e",
"assets-source/meshy/g09/herdhueter-skelett.glb": "713603b1de0beb153981506678d6715307b5b251e9354fbcda2658a86660c0c4",
"assets-source/meshy/g09/herdhueter-animationen.glb": "c7a5c7338c29a2eb316fe650ca3b708ea533c8d84c07f9fa9d865351eefcce6b"
},
"source_sha256": "4d5cdab415e4bfa97abe420f7457d4e1cddd67b9a76c23ccb6f9313a2fd8ea4e",
"source_sha256": "c933c6a13c2938f90f3eb063bcabb98ffddd9ab2deb55e808c32009ab2965bf3",
"removed_modifiers": 0,
"kind": "skinned",
"fps": 24.0,
@ -481,6 +481,6 @@
"meshes_without_uv": [],
"triangles": 25139,
"fbx": "Assets/Luneraria/Art/Characters/herdhueter.fbx",
"fbx_bytes": 3170028,
"fbx_bytes": 3166988,
"ok": true
}

View file

@ -265,11 +265,11 @@
"props": []
},
"inputs_sha256": {
"tools/meshy/g08/figure.json": "dcc6a39adf61d5815555a7abc2f99e3da6b493a0e47c65e21bf1d2e8553b961b",
"tools/meshy/g08/figure.json": "fa9ab63b81d91063a41be5bfd06e8b3fbcef2fc38b06ff65eee5da6e495189f7",
"assets-source/meshy/g08/kraterrufer-skelett.glb": "b2bd4f91696195b1afeb8a8d7b6fe777eb59785257100654f56fb71e4936923f",
"assets-source/meshy/g08/kraterrufer-animationen.glb": "cb303a4a5023804e81c28af464cbcb69bb22171ece826c3b5d84023452a085b8"
},
"source_sha256": "4d5cdab415e4bfa97abe420f7457d4e1cddd67b9a76c23ccb6f9313a2fd8ea4e",
"source_sha256": "c933c6a13c2938f90f3eb063bcabb98ffddd9ab2deb55e808c32009ab2965bf3",
"removed_modifiers": 0,
"kind": "skinned",
"fps": 24.0,
@ -486,6 +486,6 @@
"meshes_without_uv": [],
"triangles": 25500,
"fbx": "Assets/Luneraria/Art/Characters/kraterrufer.fbx",
"fbx_bytes": 3339692,
"fbx_bytes": 3337532,
"ok": true
}

View file

@ -261,14 +261,15 @@
"lod1_vertices": 2505,
"welded_triangles": 20145,
"lod0_screen": 0.2
}
},
"props": []
},
"inputs_sha256": {
"tools/meshy/g03/figure.json": "6934efc31f06faeafa189ba5f399b66d1c6662871aa9fce0e6b6c44a1add9dd8",
"tools/meshy/g03/figure.json": "e42f13c9f70259afabc6cae4a4517b7ed5921b12639e3d52119136204de11a58",
"assets-source/meshy/g03/schlackenwacht-skelett.glb": "0c6477bdcb262c36b5df2d7de1580742ea2dc6f51aa7259ef4273c97f9bb7b29",
"assets-source/meshy/g03/schlackenwacht-animationen.glb": "fdde8ad1b5ef713d4df1beb2c307054e1c83eaf552c8ddd986b11698aa159ec4"
},
"source_sha256": "9eb17a4e3dc7029b7031f3be85f6676877c521788835137eb199c352c5b35aa4",
"source_sha256": "c933c6a13c2938f90f3eb063bcabb98ffddd9ab2deb55e808c32009ab2965bf3",
"removed_modifiers": 0,
"kind": "skinned",
"fps": 24.0,
@ -485,6 +486,6 @@
"meshes_without_uv": [],
"triangles": 25142,
"fbx": "Assets/Luneraria/Art/Characters/schlackenwacht.fbx",
"fbx_bytes": 3268972,
"fbx_bytes": 3266956,
"ok": true
}

View file

@ -0,0 +1,486 @@
{
"id": "sonnenesse",
"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": "['SonnenesseBody_LOD0', 'SonnenesseBody_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": "25460 fbx / 25460 godot"
},
{
"check": "one_armature",
"ok": true,
"detail": "['SonnenesseRig']"
},
{
"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": "25460 / 25460"
},
{
"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": "mage_soell_cast",
"frames": [
0.0,
54.400001525878906
],
"seconds": 1.0833,
"loop": false,
"contact_seconds": 0.3585
},
"attack_b": {
"source": "Over_Shoulder_Throw",
"frames": [
4,
30
],
"seconds": 1.0,
"loop": false,
"contact_seconds": 0.6538
},
"hit": {
"source": "Hit_Reaction",
"frames": [
0,
12
],
"seconds": 0.5,
"loop": false,
"contact_seconds": -1.0
},
"ability": {
"source": "Charged_Spell_Cast",
"frames": [
0.0,
64.0
],
"seconds": 1.4167,
"loop": false,
"contact_seconds": 0.9961
},
"death": {
"source": "dying_backwards",
"frames": [
0.0,
52.80000305175781
],
"seconds": 2.2083,
"loop": false,
"contact_seconds": -1.0
}
},
"textures": {
"glow_share": 0.0355,
"palette_gains": {
"metal": [
1.6395,
1.5468,
0.8649
]
},
"size": [
2048,
2048
]
},
"unit": 0.009999999776482582,
"lod": {
"lod0_triangles": 20463,
"lod1_triangles": 4997,
"lod1_vertices": 2452,
"welded_triangles": 20463,
"lod0_screen": 0.2
},
"props": []
},
"inputs_sha256": {
"tools/meshy/g10/figure.json": "f0b3a72d68b713b168444c318abee3ad1400c902f304b1fb0a8f2c2a96f693ab",
"assets-source/meshy/g10/sonnenesse-skelett.glb": "103c4ef8eda9f180343938a69e2950a0dc554eed436ef5ebc1536b35fc1f887a",
"assets-source/meshy/g10/sonnenesse-animationen.glb": "9f9b4495a0edf06f59860c2df95ba247d112654cfefa6ec5c6340298c5ba46d6"
},
"source_sha256": "c933c6a13c2938f90f3eb063bcabb98ffddd9ab2deb55e808c32009ab2965bf3",
"removed_modifiers": 0,
"kind": "skinned",
"fps": 24.0,
"objects": 3,
"meshes": {
"SonnenesseBody_LOD0": {
"mesh": "SonnenesseBody_LOD0",
"triangles": 20463,
"vertices": 26659,
"ngons": 0,
"materials": [
"AI_Sonnenesse"
],
"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.8575,
0.0,
-0.4866
],
"max": [
0.8575,
1.6,
0.4866
]
}
},
"SonnenesseBody_LOD1": {
"mesh": "SonnenesseBody_LOD1",
"triangles": 4997,
"vertices": 2452,
"ngons": 0,
"materials": [
"AI_Sonnenesse"
],
"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.8579,
0.0,
-0.4875
],
"max": [
0.8576,
1.6021,
0.4878
]
}
}
},
"armatures": {
"SonnenesseRig": {
"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.8579,
0.0,
-0.4875
],
"max": [
0.8576,
1.6021,
0.4878
]
},
"clips": [
{
"name": "ability",
"frames": [
0.0,
34.0
],
"seconds": 1.4167,
"loop": false,
"contact_seconds": 0.9961
},
{
"name": "attack_a",
"frames": [
0.0,
26.0
],
"seconds": 1.0833,
"loop": false,
"contact_seconds": 0.3585
},
{
"name": "attack_b",
"frames": [
0.0,
24.0
],
"seconds": 1.0,
"loop": false,
"contact_seconds": 0.6538
},
{
"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": 25460,
"bones": 25,
"clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
},
"meshes_with_ngons": {},
"meshes_without_uv": [],
"triangles": 25460,
"fbx": "Assets/Luneraria/Art/Characters/sonnenesse.fbx",
"fbx_bytes": 3377708,
"ok": true
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e4871156306b94333a6fd61ab018ef14
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View file

@ -0,0 +1,337 @@
fileFormatVersion: 2
guid: 04bd9b7cb5ca94d5193b6bb045ad3f7f
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: SonnenesseRig|ability
internalID: -9146920348169335592
firstFrame: 0
lastFrame: 34
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.70311284
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: SonnenesseRig|attack_a
internalID: -3688867435692848977
firstFrame: 0
lastFrame: 26
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.33093327
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: SonnenesseRig|attack_b
internalID: -137194745704746687
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.6538
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: SonnenesseRig|death
internalID: -6426894262445047678
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: SonnenesseRig|hit
internalID: -21289445226624713
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: SonnenesseRig|idle
internalID: -7105414130795900942
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: SonnenesseRig|walk
internalID: -6137465070068673883
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:

View file

@ -0,0 +1,246 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1107 &-6811216099093985071
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: -2709338179651766100}
m_Position: {x: 200, y: 0, z: 0}
- serializedVersion: 1
m_State: {fileID: 1735361140140776544}
m_Position: {x: 235, y: 65, z: 0}
- serializedVersion: 1
m_State: {fileID: -4370220345468990606}
m_Position: {x: 270, y: 130, z: 0}
- serializedVersion: 1
m_State: {fileID: 3813406096338511602}
m_Position: {x: 305, y: 195, z: 0}
- serializedVersion: 1
m_State: {fileID: 9082682921124757256}
m_Position: {x: 340, y: 260, z: 0}
- serializedVersion: 1
m_State: {fileID: 1782638191720012098}
m_Position: {x: 375, y: 325, z: 0}
- serializedVersion: 1
m_State: {fileID: 2921820919237067307}
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: -2709338179651766100}
--- !u!1102 &-4370220345468990606
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: 1565449223295100875, guid: aa5734da897ea44808385f37d34070bf, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-2709338179651766100
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: 9093657477581702130, guid: aa5734da897ea44808385f37d34070bf, 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: basaltbastion_meshy
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: -6811216099093985071}
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 &1735361140140776544
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: -5495293919160781032, guid: aa5734da897ea44808385f37d34070bf, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &1782638191720012098
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: -4714297317412057206, guid: aa5734da897ea44808385f37d34070bf, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &2921820919237067307
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: -1455650782467671261, guid: aa5734da897ea44808385f37d34070bf, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &3813406096338511602
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: 3972096498202774343, guid: aa5734da897ea44808385f37d34070bf, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &9082682921124757256
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: -4724392375424077161, guid: aa5734da897ea44808385f37d34070bf, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a456a0a7fa6d34b699183f75137f8f86
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,246 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1107 &-6058062776808327719
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: 4809146559760871790}
m_Position: {x: 200, y: 0, z: 0}
- serializedVersion: 1
m_State: {fileID: 4217487180802081924}
m_Position: {x: 235, y: 65, z: 0}
- serializedVersion: 1
m_State: {fileID: 169161326647216058}
m_Position: {x: 270, y: 130, z: 0}
- serializedVersion: 1
m_State: {fileID: -3355519416394762264}
m_Position: {x: 305, y: 195, z: 0}
- serializedVersion: 1
m_State: {fileID: 5171706077710693211}
m_Position: {x: 340, y: 260, z: 0}
- serializedVersion: 1
m_State: {fileID: -5424410042088221771}
m_Position: {x: 375, y: 325, z: 0}
- serializedVersion: 1
m_State: {fileID: 8472560047695422486}
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: 4809146559760871790}
--- !u!1102 &-5424410042088221771
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: -21289445226624713, guid: 04bd9b7cb5ca94d5193b6bb045ad3f7f, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-3355519416394762264
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: -137194745704746687, guid: 04bd9b7cb5ca94d5193b6bb045ad3f7f, 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: sonnenesse
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: -6058062776808327719}
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 &169161326647216058
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: -3688867435692848977, guid: 04bd9b7cb5ca94d5193b6bb045ad3f7f, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &4217487180802081924
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: -9146920348169335592, guid: 04bd9b7cb5ca94d5193b6bb045ad3f7f, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &4809146559760871790
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: -7105414130795900942, guid: 04bd9b7cb5ca94d5193b6bb045ad3f7f, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &5171706077710693211
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: -6426894262445047678, guid: 04bd9b7cb5ca94d5193b6bb045ad3f7f, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &8472560047695422486
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: -6137465070068673883, guid: 04bd9b7cb5ca94d5193b6bb045ad3f7f, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a6aed2254a9e24da1bd5e51c687e445c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 MiB

View file

@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: 0d36246861f5e495c9a37eebff823d05
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 MiB

View file

@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: fb23cd5309e9a4cc280eaf1093b8e477
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

View file

@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: ced81c900c77948e38af00218f6fe9b5
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 MiB

View file

@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: a8d89482b31b946289ecd7628b8840a8
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 MiB

View file

@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: 9c1740c7144b44bb8a0008a61f4e21e5
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

View file

@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: 29aa5535e9c7246318d8345583175348
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:

View file

@ -185,6 +185,10 @@ MonoBehaviour:
Neutral: {fileID: 2100000, guid: 48235766686d249dfb6f4463f7a554c7, type: 2}
Blau: {fileID: 0}
Rot: {fileID: 0}
- Key: AI_Basaltbastion
Neutral: {fileID: 2100000, guid: 2844b8628dab84e70bea79fbffa9958f, type: 2}
Blau: {fileID: 0}
Rot: {fileID: 0}
- Key: AI_Funkenlanze
Neutral: {fileID: 2100000, guid: d5a88e3321a884b30bd8a8606b78090d, type: 2}
Blau: {fileID: 0}
@ -217,6 +221,10 @@ MonoBehaviour:
Neutral: {fileID: 2100000, guid: 93a8cf8007ee9440bb5da876affb71ff, type: 2}
Blau: {fileID: 0}
Rot: {fileID: 0}
- Key: AI_Sonnenesse
Neutral: {fileID: 2100000, guid: 5b981266cd95f494096dd602cad81f3d, type: 2}
Blau: {fileID: 0}
Rot: {fileID: 0}
- Key: AI_Sylvara
Neutral: {fileID: 2100000, guid: 00ddb73ac97f84f3aa8a67f370518a03, type: 2}
Blau: {fileID: 0}

View 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_Basaltbastion
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: 0d36246861f5e495c9a37eebff823d05, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 2800000, guid: fb23cd5309e9a4cc280eaf1093b8e477, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OrmMap:
m_Texture: {fileID: 2800000, guid: ced81c900c77948e38af00218f6fe9b5, 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

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2844b8628dab84e70bea79fbffa9958f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View 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_Sonnenesse
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: a8d89482b31b946289ecd7628b8840a8, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 2800000, guid: 9c1740c7144b44bb8a0008a61f4e21e5, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OrmMap:
m_Texture: {fileID: 2800000, guid: 29aa5535e9c7246318d8345583175348, 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

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5b981266cd95f494096dd602cad81f3d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load diff

View file

@ -22,6 +22,9 @@ MonoBehaviour:
- Id: basaltbastion
Prefab: {fileID: 919132149155446097, guid: 841c5b5333cc141a6bde6c22d3dc2884, type: 3}
Controller: {fileID: 9100000, guid: ec68488f0997c4a8185eea30724740ff, type: 2}
- Id: basaltbastion_meshy
Prefab: {fileID: 919132149155446097, guid: aa5734da897ea44808385f37d34070bf, type: 3}
Controller: {fileID: 9100000, guid: a456a0a7fa6d34b699183f75137f8f86, type: 2}
- Id: e01
Prefab: {fileID: 919132149155446097, guid: 940635ed8b965461daabecd5cafdba92, type: 3}
Controller: {fileID: 0}
@ -68,8 +71,8 @@ MonoBehaviour:
Prefab: {fileID: 919132149155446097, guid: 2a144fe945cf34c34a772171ca5034b1, type: 3}
Controller: {fileID: 9100000, guid: 34bd3ea42721340d7a9c58fa3585219a, type: 2}
- Id: g04
Prefab: {fileID: 919132149155446097, guid: 841c5b5333cc141a6bde6c22d3dc2884, type: 3}
Controller: {fileID: 9100000, guid: ec68488f0997c4a8185eea30724740ff, type: 2}
Prefab: {fileID: 919132149155446097, guid: aa5734da897ea44808385f37d34070bf, type: 3}
Controller: {fileID: 9100000, guid: a456a0a7fa6d34b699183f75137f8f86, type: 2}
- Id: g05
Prefab: {fileID: 919132149155446097, guid: 70c39c469a6fa406f85b60c8407d95c9, type: 3}
Controller: {fileID: 9100000, guid: 44426d34820fe40da91e59336999b8a9, type: 2}
@ -86,8 +89,8 @@ MonoBehaviour:
Prefab: {fileID: 919132149155446097, guid: b8441e587f74d4644ae91dbc0a6aa237, type: 3}
Controller: {fileID: 9100000, guid: c39607363641a49fda53739117ea26a4, type: 2}
- Id: g10
Prefab: {fileID: 919132149155446097, guid: eab745fe77c754fc8802ef073fcd610b, type: 3}
Controller: {fileID: 0}
Prefab: {fileID: 919132149155446097, guid: 04bd9b7cb5ca94d5193b6bb045ad3f7f, type: 3}
Controller: {fileID: 9100000, guid: a6aed2254a9e24da1bd5e51c687e445c, type: 2}
- Id: glasballiste
Prefab: {fileID: 919132149155446097, guid: 71588361ff1ed4a72a13d46d2f3753be, type: 3}
Controller: {fileID: 9100000, guid: 25806d20be161460284fa5cd0affc84b, type: 2}
@ -214,6 +217,9 @@ MonoBehaviour:
- Id: schlundkrone
Prefab: {fileID: 919132149155446097, guid: b2dd57798499c4b7b8698ee56e676c45, type: 3}
Controller: {fileID: 9100000, guid: 55d11e29be0134459bf261f2dad38f33, type: 2}
- Id: sonnenesse
Prefab: {fileID: 919132149155446097, guid: 04bd9b7cb5ca94d5193b6bb045ad3f7f, type: 3}
Controller: {fileID: 9100000, guid: a6aed2254a9e24da1bd5e51c687e445c, type: 2}
- Id: sylvara
Prefab: {fileID: 919132149155446097, guid: 6ec31d870bd7f4b71b9810cb0a14ba9a, type: 3}
Controller: {fileID: 9100000, guid: a9f7e924f692041b38fc5703d10e1cec, type: 2}

View file

@ -0,0 +1,98 @@
using System;
using System.Collections;
using System.Linq;
using Luneraria.Core;
using Luneraria.View;
using NUnit.Framework;
using UnityEngine;
using UnityEngine.TestTools;
namespace Luneraria.UI.Tests
{
/// <summary>
/// U5.5 overall check of a whole Glutpakt army in the real game: the human seat buys all ten
/// Glutpakt troops (the upgrades as their base troop, then upgraded) and hires the hero
/// Funkenlanze in round 3; the camera shows the formation close and at lane distance, the fight
/// close, at lane distance and from above the map. Like HudViewsTests, commands go straight to
/// the match followed by the preview rebuild. A capture tool, not part of the suite:
/// -testFilter "Luneraria.UI.Tests.ArmyViewsTests"; LUNE_EVIDENCE names the folder below
/// docs/port/screenshots (default u5.5-heer).
/// </summary>
[Explicit("Bildwerkzeug: nur gezielt per -testFilter")]
public sealed class ArmyViewsTests
{
static readonly string[] Bunds = { "wurzelbund", "glutpakt", "glutpakt", "wurzelbund", "wurzelbund", "glutpakt" };
static readonly string[] Troops = { "g01", "g02", "g03", "g04", "g05", "g06", "g07", "g08", "g09", "g10" };
string _folder;
IEnumerator Shot(HudSession s, string label)
{
yield return s.Shot(_folder + label + ".png");
}
static void Send(HudSession s, Command command)
{
CommandResult result = s.Match.Submit(HudSession.Human, command);
Assert.IsTrue(result.Ok, command.Type + ": " + result.Message);
s.Game.RebuildPreview();
s.Sync();
}
static Vec2 Centre(System.Collections.Generic.IEnumerable<LuneUnit> units)
{
var list = units.ToList();
Assert.IsNotEmpty(list, "own figures on the field");
double x = list.Average(u => u.Position.X), y = list.Average(u => u.Position.Y);
return new Vec2(x, y);
}
[UnityTest, Timeout(900000)]
public IEnumerator Glutpakt()
{
string evidence = Environment.GetEnvironmentVariable("LUNE_EVIDENCE");
_folder = "docs/port/screenshots/" + (string.IsNullOrEmpty(evidence) ? "u5.5-heer" : evidence) + "/";
var s = new HudSession();
yield return s.Open(1920, 1080, seed: 4, bunds: Bunds);
s.Match.RoundNumber = 3;
s.Me.Draft.Gold = 100000;
foreach (string troop in Troops)
{
string baseId = ContentData.Units.Keys.FirstOrDefault(id => DataCatalog.UpgradeOf(id) == troop);
Send(s, Command.Buy(baseId ?? troop, s.Me.Lane));
if (baseId != null)
Send(s, Command.Upgrade(s.Me.Draft.Roster.Last().Uid));
}
Send(s, Command.HeroBuy("held_funkenlanze"));
s.Me.Draft.Gold = 400;
s.Sync();
yield return new WaitForSecondsRealtime(.5f);
Assert.AreEqual(Troops.Length, s.Me.Draft.Roster.Count(e => Troops.Contains(e.TypeId)), "all ten Glutpakt troops");
Vec2 formation = Centre(s.View.Preview.Units.Where(u => u.Team == s.Me.Team && (Troops.Contains(u.Def.Id) || u.Kind == "hero")));
s.Rig.LookAt(formation, 14f, true);
yield return new WaitForSecondsRealtime(.5f);
yield return Shot(s, "01-aufstellung-nah");
s.Rig.LookAt(formation, 22f, true);
yield return new WaitForSecondsRealtime(.5f);
yield return Shot(s, "02-aufstellung-lane");
s.Game.Key(KeyCode.Space);
yield return HudSession.Frames(1);
Assert.AreEqual(LuneMatchRunner.Stage.Combat, s.Runner.Current, "combat of round 3");
yield return s.Fight(9.0);
s.Driver.Paused = true;
// The front of the own army (as in FigureViewsTests): the troop furthest along the lane.
Vec2 front = s.Match.Combat.Units.Where(u => u.Alive && u.Team == s.Me.Team && Troops.Contains(u.Def.Id))
.OrderByDescending(u => u.Progress).First().Position;
s.Rig.LookAt(front, 14f, true);
yield return new WaitForSecondsRealtime(.5f);
yield return Shot(s, "03-kampf-nah");
s.Rig.LookAt(front, 22f, true);
yield return new WaitForSecondsRealtime(.5f);
yield return Shot(s, "04-kampf-lane");
s.Rig.LookAt(front, 40f, true);
yield return new WaitForSecondsRealtime(.5f);
yield return Shot(s, "05-kampf-weit");
s.Close();
}
}
}

View file

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 7c2956cd43a154c82b6ec5f3da0f2687

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

View file

@ -128,7 +128,7 @@ Hinweis: Die Projektdateien des .NET-Harness (`tools/dotnet/*/*.csproj`) fehlten
| Inhalt | Meshy-Pipeline (`tools/meshy/`), Kohlenbeißer `g01` ersetzt das Phase-4-Modell (`"replaces"`), UV-Material mit Lava-Glut aus Albedo-Alpha, Schattenwurf ohne Normalen-Versatz (UV-Nähte), GPU-Batched-Skinning, Benchmark-Optionen `-luneBenchmarkRound`/`-luneBenchmarkArmy` |
| Leistung | Figuren-Stress (35× g01): Meshy −21 % Mid / −13 % Karte gegenüber Phase-4 (CPU-Skinning). GPU-Skinning hebt Mid um 7–27 % und entlastet Haupt-/Render-Thread. Standard-Partie ab Runde 21 ohne `g01` im Bild: drei Varianten ≤ 6 %. Rohdaten `logs/u5.5/ab55*-*.json` |
| Bekannte Unterschiede | keine im Verhalten. Geometrie und Textur der Figur wechseln (Meshy statt Phase-4); Anatomie/Gesicht/Haar aus dem generierten Modell, nicht aus Künstler-Sculpts. Lava-Glut pauschal (keine Emission-Map). Schatten der Figur nur mit Tiefen-Bias |
| Commits | `luneraria/u5.5-pilot` = `c386206` |
| Commits | `c386206` auf `luneraria/u5.5` |
## U5.5 · Lane-Fassung (LOD)
@ -139,7 +139,7 @@ Hinweis: Die Projektdateien des .NET-Harness (`tools/dotnet/*/*.csproj`) fehlten
| Inhalt | Kohlenbeißer mit Lane-Fassung (4.998 statt 20.714 Dreiecke, LODGroup aus dem Export), Porträts in voller Fassung |
| Leistung | Stresstest 35 Kohlenbeißer: Mid 109,8 → 120,2 fps (starr 133,3), Karte 93,9 → 103,8 fps (starr 106,4). Rohdaten `logs/u5.5-lod/` |
| Bild | `screenshots/u5.5-lod/` (Figur, vier Spielmomente, 14 Kampfmomente) |
| Commits | `luneraria/u5.5-lod` |
| Commits | `f0d1e93` auf `luneraria/u5.5` |
## U5.5 · Schlackenklaue (g02)
@ -150,7 +150,7 @@ Hinweis: Die Projektdateien des .NET-Harness (`tools/dotnet/*/*.csproj`) fehlten
| 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` |
| Commits | `714d0c6` auf `luneraria/u5.5` |
## U5.5 · Schlackenwacht (g03)
@ -161,7 +161,7 @@ Hinweis: Die Projektdateien des .NET-Harness (`tools/dotnet/*/*.csproj`) fehlten
| Inhalt | Meshy-Figur für `g03` mit Lane-Fassung, 68 Credits |
| Leistung | Stresstest 35 Schlackenwachten: Mid 161,9 → 148,5 fps, Karte 124,5 → 124,5 fps. Rohdaten `logs/u5.5-g03/` |
| Bild | `screenshots/u5.5-g03/` |
| Commits | `luneraria/u5.5-g03` |
| Commits | `4e2b6bc` auf `luneraria/u5.5` |
## U5.5 · Funkenlanze (g05)
@ -172,7 +172,7 @@ Hinweis: Die Projektdateien des .NET-Harness (`tools/dotnet/*/*.csproj`) fehlten
| Inhalt | Meshy-Figur für `g05` und die Heldin, Lanze als eigenes Modell an der rechten Hand, 110 Credits; Porträts aus gebackenem Netz (behebt leere Karten bei GPU-Skinning) |
| Leistung | Stresstest 38 Funkenlanzen gegen die Phase-18-Figur: Mid 128,6 → 147,6 fps, Karte 112,4 → 128,0 fps. Rohdaten `logs/u5.5-g05/` |
| Bild | `screenshots/u5.5-g05/` |
| Commits | `luneraria/u5.5-g05` |
| Commits | `eddf49d` auf `luneraria/u5.5` |
## U5.5 · Glasballiste (g06)
@ -183,7 +183,7 @@ Hinweis: Die Projektdateien des .NET-Harness (`tools/dotnet/*/*.csproj`) fehlten
| Inhalt | Statisches Meshy-Modell mit dem angepassten Phase-19-Skelett und seinen Clips (`build_machine.py`), starre Bindung, 54 Credits |
| Leistung | Stresstest 36 Glasballisten gegen Phase 19: Mid 150,4 → 151,4 fps, Karte 117,8 → 132,8 fps. Rohdaten `logs/u5.5-g06/` |
| Bild | `screenshots/u5.5-g06/` |
| Commits | `luneraria/u5.5-g06` |
| Commits | `aa77d0e` auf `luneraria/u5.5` |
## U5.5 · Aschenwerfer (g07)
@ -194,7 +194,7 @@ Hinweis: Die Projektdateien des .NET-Harness (`tools/dotnet/*/*.csproj`) fehlten
| Inhalt | Meshy-Figur für `g07` mit Lane-Fassung und Wurfbewegungen, 68 Credits |
| Leistung | Stresstest 36 Aschenwerfer: Mid 165,0 → 147,1 fps, Karte 124,1 → 126,8 fps. Rohdaten `logs/u5.5-g07/` |
| Bild | `screenshots/u5.5-g07/` |
| Commits | `luneraria/u5.5-g07` |
| Commits | `91ea297` auf `luneraria/u5.5` |
## U5.5 · Kraterrufer (g08)
@ -205,7 +205,7 @@ Hinweis: Die Projektdateien des .NET-Harness (`tools/dotnet/*/*.csproj`) fehlten
| Inhalt | Meshy-Figur für `g08` mit Lane-Fassung, 68 Credits |
| Leistung | Stresstest 36 Kraterrufer: Mid 171,3 → 155,1 fps, Karte 123,5 → 136,2 fps. Rohdaten `logs/u5.5-g08/` |
| Bild | `screenshots/u5.5-g08/` |
| Commits | `luneraria/u5.5-g08` |
| Commits | `eb8a537` auf `luneraria/u5.5` |
## U5.5 · Herdhüter (g09)
@ -216,7 +216,52 @@ Hinweis: Die Projektdateien des .NET-Harness (`tools/dotnet/*/*.csproj`) fehlten
| Inhalt | Meshy-Figur für `g09` mit Lane-Fassung und Zauberbewegungen, 68 Credits |
| Leistung | Stresstest 36 Herdhüter: Mid 163,5 → 156,8 fps, Karte 123,4 → 131,3 fps. Rohdaten `logs/u5.5-g09/` |
| Bild | `screenshots/u5.5-g09/` |
| Commits | `luneraria/u5.5-g09` |
| Commits | `024937c` auf `luneraria/u5.5` |
## U5.5 · Sonnenesse (g10)
| 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 `g10` mit Lane-Fassung, 68 Credits |
| Leistung | Stresstest 36 Sonnenessen: Mid 137,1 → 152,3 fps, Karte 110,6 → 126,8 fps. Rohdaten `logs/u5.5-g10/` |
| Bild | `screenshots/u5.5-g10/` |
| Commits | `02c8839` auf `luneraria/u5.5` |
## U5.5 · Basaltbastion (g04)
| 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 `g04` statt der Phase-15-Figur, 68 Credits; damit alle zehn Glutpakt-Truppen umgestellt |
| Leistung | Stresstest 36 Basaltbastionen gegen Phase 15: Mid 136,9 → 125,5 fps, Karte 120,4 → 126,4 fps. Rohdaten `logs/u5.5-g04/` |
| Bild | `screenshots/u5.5-g04/` |
| Commits | `9e253f4` auf `luneraria/u5.5` |
## U5.5 · Gesamtprüfung Glutpakt-Heer
| Punkt | Ergebnis |
| --- | --- |
| Werkzeug | `ArmyViewsTests`: alle zehn Truppen und die Heldin in einer Partie, alt und neu (je 1/1) |
| Bild | `screenshots/u5.5-heer/vorher/`, `nachher/` |
| Befund | Größenrangfolge stimmt; Basaltbastion und Glasballiste deutlich größer; Meshy-Heer einheitlicher, in der Lane-Weite schwerer zu unterscheiden; Helligkeit gleich |
| Commits | `c144a96` auf `luneraria/u5.5` |
## U5.5 · Feinschliff
| Punkt | Ergebnis |
| --- | --- |
| Tests | EditMode 29/29, PlayMode 14/14 (Verify A–I 718/0), Player-Selbsttest 30/30, Asset-Prüfung ohne Fehler |
| Parität | Fingerabdrücke unverändert (`DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`) |
| Inhalt | Aufrechte Haltung in Leerlauf und Gang für sechs Figuren (`calm`), Basaltbastion ×0,84, Glasballiste 1,9 m lang; keine Credits |
| Bild | `screenshots/u5.5-feinschliff/` |
| Commits | `dd78c8d` auf `luneraria/u5.5` |
## U5.5 · Zusammenführung
Die Glutpakt-Arbeit entstand als Kette aufeinander aufbauender Zweige (`luneraria/u5.5-pilot`, `-lod`, `-g02`, `-g03`, `-g05`, `-g06`, `-g07`, `-g08`, `-g09`, `-g10`, `-g04`, `-heer`, `-feinschliff`). Jeder Zweig enthält alle vorherigen; zusammengeführt ist sie als Meilensteinzweig `luneraria/u5.5` = `dd78c8d` (Stand `luneraria/u5.5-feinschliff`, ohne Merge-Commit, da linear). Die Einzelzweige wurden danach gelöscht; die Abschnitte oben nennen die Commits.
## H1 · Sylvara (erste Heldin des Champions-Konzepts)

View file

@ -1,6 +1,6 @@
# Port-Status · Champions of Luneraria in Unity
Stand: 10. Oktober 2026 (H1, Sylvara).
Stand: 11. Oktober 2026 (H1 Sylvara und U5.5 zusammengeführt; S1 in Arbeit).
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) |
| 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) |
| 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; **Schlackenwacht** `g03` (`luneraria/u5.5-g03`), −8 % Mid / 0 % Karte; **Funkenlanze** `g05` mit Lanze als eigenem Modell (`luneraria/u5.5-g05`), +15 % gegenüber der Phase-18-Figur; **Glasballiste** `g06` als Maschine mit übernommenem Skelett (`luneraria/u5.5-g06`); **Aschenwerfer** `g07` (`luneraria/u5.5-g07`), −11 % Mid / +2 % Karte; **Kraterrufer** `g08` (`luneraria/u5.5-g08`), −9 % Mid / +10 % Karte; **Herdhüter** `g09` (`luneraria/u5.5-g09`), −4 % Mid / +6 % 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** (`luneraria/u5.5` = `dd78c8d`): **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** (`f0d1e93`): 5.000-Dreiecke-LOD, Abstand −10 % Mid / −2 % Karte; **Schlackenklaue** `g02` (`714d0c6`) als zweite Meshy-Figur, −11 % Mid / −1 % Karte; **Schlackenwacht** `g03` (`4e2b6bc`), −8 % Mid / 0 % Karte; **Funkenlanze** `g05` mit Lanze als eigenem Modell (`eddf49d`), +15 % gegenüber der Phase-18-Figur; **Glasballiste** `g06` als Maschine mit übernommenem Skelett (`aa77d0e`); **Aschenwerfer** `g07` (`91ea297`), −11 % Mid / +2 % Karte; **Kraterrufer** `g08` (`eb8a537`), −9 % Mid / +10 % Karte; **Herdhüter** `g09` (`024937c`), −4 % Mid / +6 % Karte; **Sonnenesse** `g10` (`02c8839`), +11 % Mid / +15 % Karte; **Basaltbastion** `g04` (`9e253f4`): alle zehn Glutpakt-Truppen sind Meshy-Figuren | [U5-VISUAL.md](U5-VISUAL.md) |
| H1 · Sylvara | **fertig** (`luneraria/h1-sylvara`): erste spielbare Heldin nach dem Port mit Ultimate-Auslöser in der Planung und Skin-System (Blutmond); Referenzpartien unverändert | [../luneraria/H1-SYLVARA.md](../luneraria/H1-SYLVARA.md) |
QA je Meilenstein: [PORT-QA.md](PORT-QA.md).
@ -49,7 +49,7 @@ Bekannte Verhaltensunterschiede, auch die bewusst übernommenen Referenzfehler:
## Arbeitsweise
- Ein Zweig je Meilenstein: `luneraria/u1`, `luneraria/u1.5`, `luneraria/u2`, … Pilotzweige tragen einen Suffix (`luneraria/u5.5-pilot`). Nach jedem Meilenstein kommen Tests, Bild, Leistung, bekannte Unterschiede und ein Commit.
- Ein Zweig je Meilenstein: `luneraria/u1`, `luneraria/u1.5`, `luneraria/u2`, … Pilotzweige tragen einen Suffix (`c386206`). Nach jedem Meilenstein kommen Tests, Bild, Leistung, bekannte Unterschiede und ein Commit.
- Werkzeuge:
- `tools/run_core_tests.sh` (Kern mit .NET).
- Unity Test Runner: EditMode (Kern, Integration, Bildraten-Logik) und PlayMode (Szene bei echten Bildraten, Vertical Function Test).

View file

@ -314,7 +314,7 @@ Ein Probelauf in Blender mit Fasen (Bevel 1,2 cm, 2 Segmente, ab 35°) und gewic
## U5.5 · Figurenpilot Kohlenbeißer (Meshy)
Stand 9. Oktober 2026, Zweig `luneraria/u5.5-pilot` (`c386206`). Pilot für eine gekaufte/generierte Figur: der Kohlenbeißer `g01` der Glutpakt kommt als Meshy-Ergebnis (Bild zu 3D, Auto-Rig, Bibliotheks-Clips) in den Port und ersetzt dort das Phase-4-Modell. Es ist bewusst **eine** Figur — die Pipeline und die Messung klären, ob sich der Weg für die übrigen lohnt. Anatomie, Gesichter und Haare bleiben Künstler-Sculpts oder lizenzierte Packs (Vorgabe vom 1. Oktober, erst nach Freigabe und Lizenzprüfung).
Stand 9. Oktober 2026, Commit `c386206` auf `luneraria/u5.5`. Pilot für eine gekaufte/generierte Figur: der Kohlenbeißer `g01` der Glutpakt kommt als Meshy-Ergebnis (Bild zu 3D, Auto-Rig, Bibliotheks-Clips) in den Port und ersetzt dort das Phase-4-Modell. Es ist bewusst **eine** Figur — die Pipeline und die Messung klären, ob sich der Weg für die übrigen lohnt. Anatomie, Gesichter und Haare bleiben Künstler-Sculpts oder lizenzierte Packs (Vorgabe vom 1. Oktober, erst nach Freigabe und Lizenzprüfung).
### Umfang
@ -392,7 +392,7 @@ Wirkung: Der Kohlenbeißer zeigt gehämmerte Platten und glühende Lava in den F
## U5.5 · Lane-Fassung des Kohlenbeißers (LOD)
Stand 9. Oktober 2026, Zweig `luneraria/u5.5-lod` (auf `luneraria/u5.5-pilot`). Antwort auf die offene Grenze oben: Die Meshy-Figur hat jetzt eine vereinfachte Fassung für Lane-Zoom und Karte.
Stand 9. Oktober 2026, Commit `f0d1e93` auf `luneraria/u5.5`. Antwort auf die offene Grenze oben: Die Meshy-Figur hat jetzt eine vereinfachte Fassung für Lane-Zoom und Karte.
### Umfang
@ -431,7 +431,7 @@ Die Lane-Fassung halbiert den Abstand in der Mid-Ansicht und schließt ihn auf d
## 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.
Stand 9. Oktober 2026, Commit `714d0c6` auf `luneraria/u5.5`. Die aufgewertete Form des Kohlenbeißers, auf demselben Weg wie der Pilot, jetzt als Serienschritt.
### Ablauf und Kosten
@ -479,7 +479,7 @@ Je Figur rund 40 MB: Lieferungen 21 MB (`assets-source/meshy/g02/`), Texturen 18
## U5.5 · Dritte Figur: Schlackenwacht (g03)
Stand 9. Oktober 2026, Zweig `luneraria/u5.5-g03` (auf `luneraria/u5.5-g02`). Der Tank der Glutpakt, gleicher Ablauf wie bei der Schlackenklaue: ein Konzeptbild aus Icon, Phase-4-Bild und Kohlenbeißer-Konzept als Stilvorlage (12 Credits), Modell (30), Skelett mit 1,35 m (5), sieben Bewegungen (21), zusammen **68 Credits**.
Stand 9. Oktober 2026, Commit `4e2b6bc` auf `luneraria/u5.5`. Der Tank der Glutpakt, gleicher Ablauf wie bei der Schlackenklaue: ein Konzeptbild aus Icon, Phase-4-Bild und Kohlenbeißer-Konzept als Stilvorlage (12 Credits), Modell (30), Skelett mit 1,35 m (5), sieben Bewegungen (21), zusammen **68 Credits**.
- Entwurf: Der ganze Oberkörper ist eine Basalt-Schildplatte mit Goldrahmen und einem glühenden Lavaschlitz, ohne eigenen Kopf; große Steinfäuste mit Goldbändern. Das Auto-Rigging kam mit der kopflosen Form zurecht.
- `schlackenwacht.fbx`: 20.145 + 4.997 Dreiecke, 25 Knochen; Export 23 Prüfungen, bytegleich wiederholbar. Glut nur im Schlitz (0,9 % der Textur). Manifest `"replaces": "g03"`.
@ -497,7 +497,7 @@ Bekannt: In der Leerlaufhaltung neigt sich die Schildplatte mit der Kopfbewegung
## U5.5 · Vierte Figur: Funkenlanze (g05 und Heldin)
Stand 10. Oktober 2026, Zweig `luneraria/u5.5-g05` (auf `luneraria/u5.5-g03`). Die Fernkämpferin der Glutpakt. Anders als die drei Vorgänger ersetzt sie keine starre Phase-4-Figur, sondern die Skelettfigur aus Phase 18 (`funkenlanze`), die Truppe `g05` und Heldin `held_funkenlanze` gemeinsam nutzen (`Model = "g05"`).
Stand 10. Oktober 2026, Commit `eddf49d` auf `luneraria/u5.5`. Die Fernkämpferin der Glutpakt. Anders als die drei Vorgänger ersetzt sie keine starre Phase-4-Figur, sondern die Skelettfigur aus Phase 18 (`funkenlanze`), die Truppe `g05` und Heldin `held_funkenlanze` gemeinsam nutzen (`Model = "g05"`).
### Neu: Waffe als eigenes Modell
@ -539,7 +539,7 @@ Bilder: `screenshots/u5.5-g05/` (Figur, vorher/nachher im Spiel, Übersichten, K
## U5.5 · Fünfte Figur: Glasballiste (g06)
Stand 10. Oktober 2026, Zweig `luneraria/u5.5-g06` (auf `luneraria/u5.5-g05`). Die Aufwertung der Funkenlanze ist eine laufende Balliste: zwei Klauenbeine, der Rumpf eine große Armbrust mit Kristallbögen, keine Arme und kein Kopf. Meshys Auto-Rigging nimmt nur menschenähnliche Figuren; die Glasballiste kommt deshalb als statisches Meshy-Modell und bekommt Skelett und Bewegungen der Phase-19-Figur, die sie ersetzt.
Stand 10. Oktober 2026, Commit `aa77d0e` auf `luneraria/u5.5`. Die Aufwertung der Funkenlanze ist eine laufende Balliste: zwei Klauenbeine, der Rumpf eine große Armbrust mit Kristallbögen, keine Arme und kein Kopf. Meshys Auto-Rigging nimmt nur menschenähnliche Figuren; die Glasballiste kommt deshalb als statisches Meshy-Modell und bekommt Skelett und Bewegungen der Phase-19-Figur, die sie ersetzt.
### Neuer Weg: `tools/meshy/build_machine.py`
@ -571,7 +571,7 @@ Bilder: `screenshots/u5.5-g06/` (Figur, vorher/nachher im Spiel, Übersichten, K
## U5.5 · Sechste Figur: Aschenwerfer (g07)
Stand 10. Oktober 2026, Zweig `luneraria/u5.5-g07` (auf `luneraria/u5.5-g06`). Die Flächen-Artillerie der Glutpakt, wieder über das Auto-Rigging (menschenähnlich): ein Konzeptbild aus Icon, Phase-4-Bild und Kohlenbeißer-Konzept (12 Credits), Modell (30), Skelett mit 1,35 m (5), sieben Bewegungen (21), zusammen **68 Credits**.
Stand 10. Oktober 2026, Commit `91ea297` auf `luneraria/u5.5`. Die Flächen-Artillerie der Glutpakt, wieder über das Auto-Rigging (menschenähnlich): ein Konzeptbild aus Icon, Phase-4-Bild und Kohlenbeißer-Konzept (12 Credits), Modell (30), Skelett mit 1,35 m (5), sieben Bewegungen (21), zusammen **68 Credits**.
- Entwurf: gedrungener Basaltgolem, statt eines Kopfes ein nach oben offener Mörserkessel mit Goldrand und glühender Glutkugel, Goldgürtel, Fäuste mit Goldbändern. Den Rauch des Icons gibt es nicht als Geometrie.
- Angriffe sind Würfe: `attack_a` ein Wurf über die Schulter (Ausholen und Wurf, 1,0 s, Treffer bei 0,57 s), `attack_b` ein geduckter Schwungwurf (1,1 s). Fähigkeit, Treffer, Tod, Leerlauf und Gang wie beim Kohlenbeißer.
@ -587,7 +587,7 @@ Stresstest mit 36 Aschenwerfern (`-luneBenchmarkArmy g07`), je drei Läufe gegen
## U5.5 · Siebte Figur: Kraterrufer (g08)
Stand 10. Oktober 2026, Zweig `luneraria/u5.5-g08` (auf `luneraria/u5.5-g07`). Die Aufwertung des Aschenwerfers, auf demselben Weg: ein Konzeptbild aus Icon, Phase-4-Bild und dem Aschenwerfer-Konzept als Stilvorlage (12 Credits), Modell (30), Skelett mit 1,5 m (5), sieben Bewegungen (21), zusammen **68 Credits**. Die Figurendatei samt Wurf-Clips ist vom Aschenwerfer übernommen.
Stand 10. Oktober 2026, Commit `eb8a537` auf `luneraria/u5.5`. Die Aufwertung des Aschenwerfers, auf demselben Weg: ein Konzeptbild aus Icon, Phase-4-Bild und dem Aschenwerfer-Konzept als Stilvorlage (12 Credits), Modell (30), Skelett mit 1,5 m (5), sieben Bewegungen (21), zusammen **68 Credits**. Die Figurendatei samt Wurf-Clips ist vom Aschenwerfer übernommen.
- Entwurf: Der ganze Oberkörper ist eine Kraterschale voll glühender Lava mit schwerem Goldrand, Goldklammern und einem Runenschild vorn; sehr lange Steinarme mit breiten Goldbändern, Glutrisse im ganzen Körper (12 % der Textur glühen).
- `kraterrufer.fbx`: 20.502 + 4.998 Dreiecke, 25 Knochen; Export 23 Prüfungen, bytegleich wiederholbar. Manifest `"replaces": "g08"`.
@ -602,7 +602,7 @@ Stresstest mit 36 Kraterrufern (`-luneBenchmarkArmy g08`), je drei Läufe gegen
## U5.5 · Achte Figur: Herdhüter (g09)
Stand 10. Oktober 2026, Zweig `luneraria/u5.5-g09` (auf `luneraria/u5.5-g08`). Der Unterstützer der Glutpakt über das Auto-Rigging: ein Konzeptbild aus Icon, Phase-4-Bild und Aschenwerfer-Konzept (12 Credits), Modell (30), Skelett mit 1,45 m (5), sieben Bewegungen (21), zusammen **68 Credits**.
Stand 10. Oktober 2026, Commit `024937c` auf `luneraria/u5.5`. Der Unterstützer der Glutpakt über das Auto-Rigging: ein Konzeptbild aus Icon, Phase-4-Bild und Aschenwerfer-Konzept (12 Credits), Modell (30), Skelett mit 1,45 m (5), sieben Bewegungen (21), zusammen **68 Credits**.
- Entwurf: Rumpf und Kopf sind ein hoher Herdofen aus hellem Kalkstein mit Schornstein, Goldraute und glühendem Ofenmaul; die Feuerschale aus dem Icon sitzt fest an der Hüfte statt in den Händen, damit das Auto-Rigging keine gehaltene Schale an die Arme bindet. Schultern, Arme und Beine aus dunklem Basalt mit Goldbändern.
- Bewegungen eines Unterstützers: `attack_a` ein Feuerzauber mit erhobener Hand (1,1 s, Treffer bei 0,4 s), `attack_b` der Wurf über die Schulter, `ability` ein aufgeladener Zauber (1,4 s) für die Stärkung der Verbündeten.
@ -618,3 +618,76 @@ Stand 10. Oktober 2026, Zweig `luneraria/u5.5-g09` (auf `luneraria/u5.5-g08`). D
Stresstest mit 36 Herdhütern (`-luneBenchmarkArmy g09`), je drei Läufe gegen das starre Phase-4-Modell (`logs/u5.5-g09/`): Mid-Lane nah 163,5 → 156,8 fps (−4 %, die Läufe streuen hier stärker), Karte 123,4 → 131,3 fps (+6 %). Bilder: `screenshots/u5.5-g09/`.
Bekannt: In der Leerlaufhaltung neigt der Kopfknochen der Bibliotheksbewegung den Ofen nach vorn, das Ofenmaul ist dann aus der Nähe weniger zu sehen.
## U5.5 · Neunte Figur: Sonnenesse (g10)
Stand 10. Oktober 2026, Commit `02c8839` auf `luneraria/u5.5`. Die Aufwertung des Herdhüters, auf demselben Weg: ein Konzeptbild aus Icon, Phase-4-Bild und dem Herdhüter-Konzept als Stilvorlage (12 Credits), Modell (30), Skelett mit 1,6 m (5), sieben Bewegungen (21), zusammen **68 Credits**. Figurendatei und Zauberbewegungen sind vom Herdhüter übernommen (Farbangleich nur für das Gold wegen des cremefarbenen Mantels).
- Entwurf: größerer Sonnenpriester-Golem; ein Strahlenkranz aus Gold umrahmt eine glühende Sonnenkugel, aus der ein Feuerstrom in ein Feuerbecken an der Hüfte fließt (fest am Körper, nicht gehalten); cremefarbener Mantel und Überwurf mit goldenen Sonnenzeichen, Sonnenmedaillons auf den Schultern.
- `sonnenesse.fbx`: 20.462 + 4.998 Dreiecke, 25 Knochen; Export 23 Prüfungen, bytegleich wiederholbar. Manifest `"replaces": "g10"`.
| Test | Ergebnis |
| --- | --- |
| EditMode / PlayMode | 29/29, 14/14, Verify A–I 718/0 |
| Fingerabdrücke | `DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`, unverändert |
| Asset-Prüfung / Player-Selbsttest | 20/0, 30/30 |
Stresstest mit 36 Sonnenessen (`-luneBenchmarkArmy g10`), je drei Läufe gegen das starre Phase-4-Modell (`logs/u5.5-g10/`): Mid-Lane nah 137,1 → 152,3 fps (+11 %), Karte 110,6 → 126,8 fps (+15 %); das Phase-4-Modell hatte 97.000 Dreiecke. Bilder: `screenshots/u5.5-g10/`.
Bekannt: Der Überwurf zwischen den Beinen hängt am Skelett der Beine und dehnt sich beim Gehen mit.
## U5.5 · Zehnte Figur: Basaltbastion (g04), Glutpakt vollständig
Stand 10. Oktober 2026, Commit `9e253f4` auf `luneraria/u5.5`. Die Aufwertung der Schlackenwacht. Wie bei der Funkenlanze ersetzt sie eine Skelettfigur (Phase 15, `basaltbastion`), die unter ihrem Namen im Projekt bleibt. Ein Konzeptbild aus Icon, Bild der Phase-15-Figur und dem Schlackenwacht-Konzept als Stilvorlage (12 Credits), Modell (30), Skelett mit 2,1 m wie die bisherige Figur (5), sieben Bewegungen (21): **68 Credits**. Figurendatei und Nahkampf-Clips sind von der Schlackenwacht übernommen.
- Entwurf: wandelnder Festungsgolem; Zinnentürme auf Schultern und Unterarmen mit glühenden Schießscharten, ein kleiner Torturm mit Lavaschlitz als Kopf, eine Schildmauer mit Goldkante und Lavaschlitz auf der Brust, Steinfäuste, Goldbeschläge an Knien und Füßen.
- `basaltbastion_meshy.fbx`: 20.180 + 4.998 Dreiecke, 25 Knochen; Export 23 Prüfungen, bytegleich wiederholbar. Manifest `"replaces": "g04"`.
- Der erste Unity-Start dieser Kette brach beim Öffnen einer Pipe mit einer Mono-Zusicherung ab (Dateideskriptor über dem Limit), während parallel ein Testlauf einer anderen Sitzung lief; der Neustart lief durch.
| Test | Ergebnis |
| --- | --- |
| EditMode / PlayMode | 29/29, 14/14, Verify A–I 718/0 |
| Fingerabdrücke | `DCE95C96556F3A1A`, `7B8E43AEFC0D60C5`, unverändert |
| Asset-Prüfung / Player-Selbsttest | 20/0, 30/30 |
Stresstest mit 36 Basaltbastionen (`-luneBenchmarkArmy g04`), je drei Läufe gegen die Phase-15-Figur (`logs/u5.5-g04/`): Mid-Lane nah 136,9 → 125,5 fps (−8 %), Karte 120,4 → 126,4 fps (+5 %). Die neue Figur ist mit 2,4 m Breite breiter als die alte (1,8 m); in der Aufstellung stehen die Bastionen dicht. Bilder: `screenshots/u5.5-g04/`.
### Stand der Glutpakt
Alle zehn Truppen der Glutpakt sind Meshy-Figuren (g01 bis g10, dazu die Heldin Funkenlanze über `g05`). Ausgegeben wurden dafür 726 Credits (Pilot 86, Funkenlanze 110, Glasballiste 54, die übrigen sieben je 68). Die Phase-4- und Phase-15/18/19-Modelle bleiben im Projekt; eine Zeile `replaces` im Manifest stellt die alte Figur wieder her.
## U5.5 · Gesamtprüfung: das Glutpakt-Heer
Stand 10. Oktober 2026, Commit `c144a96` auf `luneraria/u5.5`. Neues Bildwerkzeug `ArmyViewsTests` (PlayMode, `Explicit`): Der menschliche Sitz kauft in Runde 3 alle zehn Glutpakt-Truppen (Aufwertungen als Grundtruppe gekauft und aufgewertet) und wirbt die Heldin Funkenlanze an; Bilder von Aufstellung (nah, Lane) und Kampf (nah an der Spitze, Lane, weit). Dieselbe Partie einmal mit den alten Modellen (alle `replaces` entfernt) und einmal mit den Meshy-Figuren: `screenshots/u5.5-heer/vorher/` und `nachher/`.
Maße (Breite × Höhe × Tiefe in m) alt → neu:
| Truppe | alt | Meshy |
| --- | --- | --- |
| g01 Kohlenbeißer | 1,58 × 1,35 × 0,89 | 1,72 × 1,35 × 0,77 |
| g02 Schlackenklaue | 1,79 × 1,50 × 0,98 | 1,65 × 1,50 × 0,84 |
| g03 Schlackenwacht | 1,78 × 1,35 × 0,87 | 1,54 × 1,35 × 0,69 |
| g04 Basaltbastion | 1,76 × 2,25 × 0,85 | 2,39 × 2,10 × 1,05 |
| g05 Funkenlanze | 1,57 × 1,45 × 0,45 (Phase 18: 2,0 hoch) | 1,15 × 1,80 × 1,72 (mit Lanze) |
| g06 Glasballiste | 1,85 × 1,43 × 1,61 | 1,85 × 1,39 × 2,53 |
| g07 Aschenwerfer | 1,64 × 1,35 × 1,25 | 1,73 × 1,35 × 0,75 |
| g08 Kraterrufer | 1,83 × 1,50 × 1,49 | 2,01 × 1,50 × 0,89 |
| g09 Herdhüter | 1,25 × 1,45 × 1,08 | 1,55 × 1,45 × 0,79 |
| g10 Sonnenesse | 1,33 × 1,60 × 1,17 | 1,72 × 1,60 × 0,98 |
Befund:
- **Größen:** Die Höhen der Phase-4-Modelle sind gehalten (Skelett auf die alte Höhe gesetzt). Die Rangfolge stimmt: Aufwertungen sind größer als ihre Grundform, die Basaltbastion ist die größte Figur. Ausreißer sind die Basaltbastion (+0,6 m breiter) und die Glasballiste (+0,9 m länger); in der Aufstellung überdecken sie Nachbarn.
- **Lesbarkeit:** Die alten Modelle unterscheiden sich von oben stark durch Grundformen (offene Kessel mit oranger Füllung, heller Ofen). Die Meshy-Figuren teilen eine Materialsprache (Basalt, Gold, Glutrisse) und wirken als Heer geschlossener, sind aber in der Lane-Weite schwerer auseinanderzuhalten; Kessel und Kraterschale sind von oben weniger sichtbar, weil die Figuren in der Ruhehaltung nach vorn geneigt stehen. Herdhüter und Sonnenesse bleiben durch den hellen Stein und Mantel gut erkennbar. Die mittlere Helligkeit der Aufstellung ist gleich (Luma 0,45 / 0,44, `tools/port/png_stats.py`).
- **Heldin:** Truppe und Heldin Funkenlanze teilen das Modell `g05`; im Feld unterscheidet sie nur der goldene Heldenring und das Namensschild.
- **Nicht geprüft:** Animationen im Gegeneinander (Treffer, Tod) nur stichprobenweise in den Kampfbildern.
Vorschläge (offen, nicht umgesetzt): Ruhehaltung ohne Vorneigung für die Kessel-Figuren (eigener Leerlauf-Clip oder Kopfknochen ruhig stellen), die Basaltbastion auf rund 1,9 m Breite skalieren, die Glasballiste kürzen; eine eigene Erscheinung für die Heldin.
## U5.5 · Feinschliff nach der Gesamtprüfung
Stand 10. Oktober 2026, Commit `dd78c8d` auf `luneraria/u5.5`. Die zwei Vorschläge der Gesamtprüfung, ohne neue Meshy-Aufträge:
1. **Aufrechte Haltung** für die Figuren ohne echten Kopf (Schlackenwacht, Basaltbastion, Aschenwerfer, Kraterrufer, Herdhüter, Sonnenesse). `build_figure.py` kennt `calm` in `figure.json`: In `idle` und `walk` behalten die genannten Knochen nur einen Teil ihrer Drehung (Kopf und Hals 0, Wirbelsäule 0,3, Hüfte 0,4). Beim Herdhüter sinkt die Rumpfneigung im Gang von im Mittel 34° auf 11° (höchstens 46° → 16°), im Leerlauf blickt der Ofen nicht mehr nach unten; die Füße bleiben am Boden (tiefster Zeh 1–5 cm). Kesselschale und Kraterschale sind von oben wieder zu sehen.
2. **Kleinere Grundfläche:** Basaltbastion mit `scale` 0,84 auf 2,01 × 1,76 × 0,88 m (vorher 2,39 × 2,10); sie bleibt die höchste Figur der Glutpakt. Glasballiste mit `length` 1,9 m entlang der Achse gestaucht (vorher 2,53 m, Breite 1,85 m und Höhe unverändert; `build_machine.py`, starre Teile vertragen das).
Prüfung: Export aller sieben Figuren 23/0 und bytegleich wiederholbar, Asset-Prüfung ohne Fehler, EditMode 29/29, PlayMode 14/14 (Verify 718/0), Fingerabdrücke unverändert, Player-Selbsttest 30/30. Bilder des Heeres: `screenshots/u5.5-feinschliff/` (gleiche Motive wie `u5.5-heer/nachher/`).

View 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.027, "max_steps_per_frame": 20, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
{"target": "60 fps", "frames": 1626, "seconds": 27.095, "measured_fps": 60.011, "max_steps_per_frame": 11, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
{"target": "120 fps", "frames": 3225, "seconds": 26.914, "measured_fps": 119.825, "max_steps_per_frame": 7, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
{"target": "unlimited", "frames": 84024, "seconds": 26.82, "measured_fps": 3132.931, "max_steps_per_frame": 7, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true}
]
}

View 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": 48543, "fps": 2427.08, "frame_ms_avg": 0.412, "frame_ms_p95": 0.421, "simulation_ms_per_frame": 0.004, "views_ms_per_frame": 0.13, "units_alive_max": 116}}
]
}

View file

@ -1129,6 +1129,173 @@
]
}
},
{
"id": "basaltbastion_meshy",
"kind": "skinned",
"ok": true,
"checks": [
{
"check": "blender_checks_passed",
"ok": true,
"detail": ""
},
{
"check": "imported",
"ok": true,
"detail": "\"Assets/Luneraria/Art/Characters/basaltbastion_meshy.fbx\""
},
{
"check": "import_rules_applied",
"ok": true,
"detail": ""
},
{
"check": "root_transform_identity",
"ok": true,
"detail": "\"basaltbastion_meshy 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": "\"25178 unity / 25178 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.00004 m; unity (-1.003, 0.000, -0.439) (1.003, 1.764, 0.440)\""
},
{
"check": "skinned_mesh",
"ok": true,
"detail": "2"
},
{
"check": "bone_names Basaltbastion_meshyBody_LOD0",
"ok": true,
"detail": "[]"
},
{
"check": "root_bone Basaltbastion_meshyBody_LOD0",
"ok": true,
"detail": "\"Root\""
},
{
"check": "bone_names Basaltbastion_meshyBody_LOD1",
"ok": true,
"detail": "[]"
},
{
"check": "root_bone Basaltbastion_meshyBody_LOD1",
"ok": true,
"detail": "\"Root\""
},
{
"check": "generic_avatar",
"ok": true,
"detail": "\"basaltbastion_meshyAvatar\""
},
{
"check": "clips",
"ok": true,
"detail": "[]"
}
],
"facts": {
"triangles": 25178,
"renderers": 2,
"meshes_without_uv_and_tangents": 0,
"degenerate_triangles_dropped": 0,
"bounds_min": [
-1.0029608,
-3.852526E-05,
-0.438776553
],
"bounds_max": [
1.00296068,
1.76400018,
0.440208077
],
"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": "funkenlanze",
"kind": "skinned",
@ -1722,7 +1889,7 @@
{
"check": "bounds_axes_scale",
"ok": true,
"detail": "\"largest difference 0.00003 m; unity (-0.919, 0.000, -1.232) (0.931, 1.389, 1.298)\""
"detail": "\"largest difference 0.00003 m; unity (-0.919, 0.000, -0.927) (0.931, 1.389, 0.977)\""
},
{
"check": "skinned_mesh",
@ -1767,13 +1934,13 @@
"degenerate_triangles_dropped": 0,
"bounds_min": [
-0.9193895,
-2.81888861E-05,
-1.23211074
-0.000174398971,
-0.9272205
],
"bounds_max": [
0.930610538,
1.38899112,
1.29790878
1.38901818,
0.9769348
],
"clips": [
{
@ -3175,6 +3342,173 @@
]
}
},
{
"id": "sonnenesse",
"kind": "skinned",
"ok": true,
"checks": [
{
"check": "blender_checks_passed",
"ok": true,
"detail": ""
},
{
"check": "imported",
"ok": true,
"detail": "\"Assets/Luneraria/Art/Characters/sonnenesse.fbx\""
},
{
"check": "import_rules_applied",
"ok": true,
"detail": ""
},
{
"check": "root_transform_identity",
"ok": true,
"detail": "\"sonnenesse 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": "\"25460 unity / 25460 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.00004 m; unity (-0.858, 0.000, -0.487) (0.858, 1.602, 0.488)\""
},
{
"check": "skinned_mesh",
"ok": true,
"detail": "2"
},
{
"check": "bone_names SonnenesseBody_LOD0",
"ok": true,
"detail": "[]"
},
{
"check": "root_bone SonnenesseBody_LOD0",
"ok": true,
"detail": "\"Root\""
},
{
"check": "bone_names SonnenesseBody_LOD1",
"ok": true,
"detail": "[]"
},
{
"check": "root_bone SonnenesseBody_LOD1",
"ok": true,
"detail": "\"Root\""
},
{
"check": "generic_avatar",
"ok": true,
"detail": "\"sonnenesseAvatar\""
},
{
"check": "clips",
"ok": true,
"detail": "[]"
}
],
"facts": {
"triangles": 25460,
"renderers": 2,
"meshes_without_uv_and_tangents": 0,
"degenerate_triangles_dropped": 0,
"bounds_min": [
-0.8578575,
1.94311355E-07,
-0.4874602
],
"bounds_max": [
0.857580245,
1.6020714,
0.487762928
],
"clips": [
{
"name": "ability",
"length": 1.41666663,
"loop": false,
"events": 1
},
{
"name": "attack_a",
"length": 1.08333337,
"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": "sylvara",
"kind": "skinned",

View 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"
}

View 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.155, "measured_fps": 30.013, "max_steps_per_frame": 20, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
{"target": "60 fps", "frames": 1626, "seconds": 27.105, "measured_fps": 59.989, "max_steps_per_frame": 10, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
{"target": "120 fps", "frames": 3222, "seconds": 26.914, "measured_fps": 119.716, "max_steps_per_frame": 10, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
{"target": "unlimited", "frames": 85548, "seconds": 26.813, "measured_fps": 3190.509, "max_steps_per_frame": 6, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true}
]
}

View 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": 48619, "fps": 2430.937, "frame_ms_avg": 0.411, "frame_ms_p95": 0.42, "simulation_ms_per_frame": 0.004, "views_ms_per_frame": 0.129, "units_alive_max": 116}}
]
}

View file

@ -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 g04 x36, speed 1x, measured after 10 s of combat",
// moving units at the start of the first window: g04 36, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
"windows": [
{"view": "overview (zoom 64)", "frames": 2567, "fps": 128.3, "frame_ms_avg": 7.79, "frame_ms_median": 3.21, "frame_ms_p95": 25.01, "frame_ms_p99": 31.50, "frame_ms_max": 45.68, "frames_over_16_7_ms": 417, "of_them_with_simulation_step": 60, "gc_collections": 24, "simulation_ms_per_frame": 0.091, "views_ms_per_frame": 0.205, "ui_ms_per_frame": 0.076, "units_alive_max": 98},
// timings overview (zoom 64): main thread avg 2.55 / median 2.45 / p95 3.59 ms, render thread avg 1.90 / median 1.90 / p95 2.28 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.23 / median 0.25 / p95 22.18 ms
{"view": "mid lane close (zoom 22)", "frames": 1277, "fps": 127.6, "frame_ms_avg": 7.84, "frame_ms_median": 3.41, "frame_ms_p95": 27.70, "frame_ms_p99": 37.89, "frame_ms_max": 46.02, "frames_over_16_7_ms": 202, "of_them_with_simulation_step": 32, "gc_collections": 11, "simulation_ms_per_frame": 0.079, "views_ms_per_frame": 0.195, "ui_ms_per_frame": 0.067, "units_alive_max": 71}
// timings mid lane close (zoom 22): main thread avg 2.14 / median 2.01 / p95 3.20 ms, render thread avg 1.55 / median 1.55 / p95 1.85 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.71 / median 0.64 / p95 25.60 ms
]
}

View file

@ -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 g04 x36, speed 1x, measured after 10 s of combat",
// moving units at the start of the first window: g04 36, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
"windows": [
{"view": "overview (zoom 64)", "frames": 2496, "fps": 124.8, "frame_ms_avg": 8.01, "frame_ms_median": 3.30, "frame_ms_p95": 25.40, "frame_ms_p99": 33.19, "frame_ms_max": 41.92, "frames_over_16_7_ms": 436, "of_them_with_simulation_step": 28, "gc_collections": 24, "simulation_ms_per_frame": 0.093, "views_ms_per_frame": 0.225, "ui_ms_per_frame": 0.080, "units_alive_max": 98},
// timings overview (zoom 64): main thread avg 2.75 / median 2.64 / p95 3.80 ms, render thread avg 1.96 / median 1.93 / p95 2.43 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.26 / median 0.15 / p95 22.85 ms
{"view": "mid lane close (zoom 22)", "frames": 1246, "fps": 124.6, "frame_ms_avg": 8.03, "frame_ms_median": 3.60, "frame_ms_p95": 28.10, "frame_ms_p99": 36.10, "frame_ms_max": 44.40, "frames_over_16_7_ms": 215, "of_them_with_simulation_step": 11, "gc_collections": 11, "simulation_ms_per_frame": 0.075, "views_ms_per_frame": 0.199, "ui_ms_per_frame": 0.066, "units_alive_max": 71}
// timings mid lane close (zoom 22): main thread avg 2.21 / median 2.04 / p95 3.48 ms, render thread avg 1.46 / median 1.44 / p95 1.76 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.82 / median 1.02 / p95 25.95 ms
]
}

View file

@ -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 g04 x36, speed 1x, measured after 10 s of combat",
// moving units at the start of the first window: g04 36, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
"windows": [
{"view": "overview (zoom 64)", "frames": 2523, "fps": 126.1, "frame_ms_avg": 7.93, "frame_ms_median": 3.30, "frame_ms_p95": 26.21, "frame_ms_p99": 34.51, "frame_ms_max": 41.65, "frames_over_16_7_ms": 422, "of_them_with_simulation_step": 33, "gc_collections": 24, "simulation_ms_per_frame": 0.092, "views_ms_per_frame": 0.212, "ui_ms_per_frame": 0.076, "units_alive_max": 98},
// timings overview (zoom 64): main thread avg 2.63 / median 2.50 / p95 3.71 ms, render thread avg 1.90 / median 1.88 / p95 2.36 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.29 / median 0.20 / p95 23.76 ms
{"view": "mid lane close (zoom 22)", "frames": 1243, "fps": 124.3, "frame_ms_avg": 8.05, "frame_ms_median": 3.30, "frame_ms_p95": 29.90, "frame_ms_p99": 37.20, "frame_ms_max": 45.30, "frames_over_16_7_ms": 208, "of_them_with_simulation_step": 21, "gc_collections": 11, "simulation_ms_per_frame": 0.070, "views_ms_per_frame": 0.186, "ui_ms_per_frame": 0.065, "units_alive_max": 71}
// timings mid lane close (zoom 22): main thread avg 2.10 / median 1.99 / p95 3.12 ms, render thread avg 1.41 / median 1.39 / p95 1.67 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.92 / median 0.86 / p95 27.72 ms
]
}

View file

@ -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 g04 x36, speed 1x, measured after 10 s of combat",
// moving units at the start of the first window: g04 36, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
"windows": [
{"view": "overview (zoom 64)", "frames": 2439, "fps": 121.9, "frame_ms_avg": 8.20, "frame_ms_median": 3.49, "frame_ms_p95": 23.59, "frame_ms_p99": 30.22, "frame_ms_max": 39.50, "frames_over_16_7_ms": 393, "of_them_with_simulation_step": 16, "gc_collections": 24, "simulation_ms_per_frame": 0.098, "views_ms_per_frame": 0.221, "ui_ms_per_frame": 0.080, "units_alive_max": 98},
// timings overview (zoom 64): main thread avg 2.71 / median 2.61 / p95 3.80 ms, render thread avg 2.15 / median 2.13 / p95 2.66 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.48 / median 0.40 / p95 20.90 ms
{"view": "mid lane close (zoom 22)", "frames": 1374, "fps": 137.2, "frame_ms_avg": 7.29, "frame_ms_median": 3.00, "frame_ms_p95": 23.89, "frame_ms_p99": 31.99, "frame_ms_max": 39.99, "frames_over_16_7_ms": 173, "of_them_with_simulation_step": 12, "gc_collections": 11, "simulation_ms_per_frame": 0.068, "views_ms_per_frame": 0.196, "ui_ms_per_frame": 0.067, "units_alive_max": 71}
// timings mid lane close (zoom 22): main thread avg 2.16 / median 2.03 / p95 3.20 ms, render thread avg 1.67 / median 1.66 / p95 1.95 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.12 / median 0.32 / p95 21.87 ms
]
}

View file

@ -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 g04 x36, speed 1x, measured after 10 s of combat",
// moving units at the start of the first window: g04 36, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
"windows": [
{"view": "overview (zoom 64)", "frames": 2409, "fps": 120.4, "frame_ms_avg": 8.30, "frame_ms_median": 3.60, "frame_ms_p95": 24.19, "frame_ms_p99": 31.11, "frame_ms_max": 40.41, "frames_over_16_7_ms": 406, "of_them_with_simulation_step": 53, "gc_collections": 24, "simulation_ms_per_frame": 0.099, "views_ms_per_frame": 0.222, "ui_ms_per_frame": 0.081, "units_alive_max": 98},
// timings overview (zoom 64): main thread avg 2.78 / median 2.61 / p95 4.03 ms, render thread avg 2.14 / median 2.10 / p95 2.69 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.52 / median 0.39 / p95 21.15 ms
{"view": "mid lane close (zoom 22)", "frames": 1389, "fps": 138.6, "frame_ms_avg": 7.22, "frame_ms_median": 3.01, "frame_ms_p95": 24.11, "frame_ms_p99": 32.60, "frame_ms_max": 40.60, "frames_over_16_7_ms": 173, "of_them_with_simulation_step": 19, "gc_collections": 11, "simulation_ms_per_frame": 0.068, "views_ms_per_frame": 0.190, "ui_ms_per_frame": 0.064, "units_alive_max": 71}
// timings mid lane close (zoom 22): main thread avg 2.08 / median 1.97 / p95 3.04 ms, render thread avg 1.66 / median 1.65 / p95 1.97 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.11 / median 0.35 / p95 21.93 ms
]
}

View file

@ -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 g04 x36, speed 1x, measured after 10 s of combat",
// moving units at the start of the first window: g04 36, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
"windows": [
{"view": "overview (zoom 64)", "frames": 2381, "fps": 119.0, "frame_ms_avg": 8.40, "frame_ms_median": 3.41, "frame_ms_p95": 25.01, "frame_ms_p99": 28.51, "frame_ms_max": 47.79, "frames_over_16_7_ms": 449, "of_them_with_simulation_step": 16, "gc_collections": 24, "simulation_ms_per_frame": 0.095, "views_ms_per_frame": 0.219, "ui_ms_per_frame": 0.080, "units_alive_max": 98},
// timings overview (zoom 64): main thread avg 2.73 / median 2.64 / p95 3.79 ms, render thread avg 2.12 / median 2.09 / p95 2.69 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.67 / median 0.31 / p95 22.47 ms
{"view": "mid lane close (zoom 22)", "frames": 1350, "fps": 135.0, "frame_ms_avg": 7.41, "frame_ms_median": 3.21, "frame_ms_p95": 25.00, "frame_ms_p99": 34.68, "frame_ms_max": 45.60, "frames_over_16_7_ms": 182, "of_them_with_simulation_step": 11, "gc_collections": 11, "simulation_ms_per_frame": 0.061, "views_ms_per_frame": 0.191, "ui_ms_per_frame": 0.069, "units_alive_max": 71}
// timings mid lane close (zoom 22): main thread avg 2.15 / median 2.03 / p95 3.20 ms, render thread avg 1.58 / median 1.57 / p95 1.87 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.26 / median 0.27 / p95 23.00 ms
]
}

View 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"
}

View file

@ -0,0 +1,11 @@
{
"match": "seed 2, bots, speed 24x",
"core_hash": "DCE95C96556F3A1A",
"core_steps": 12690,
"runs": [
{"target": "30 fps", "frames": 816, "seconds": 27.178, "measured_fps": 30.025, "max_steps_per_frame": 20, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
{"target": "60 fps", "frames": 1623, "seconds": 27.1, "measured_fps": 59.889, "max_steps_per_frame": 19, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
{"target": "120 fps", "frames": 3219, "seconds": 26.931, "measured_fps": 119.527, "max_steps_per_frame": 10, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
{"target": "unlimited", "frames": 62848, "seconds": 26.868, "measured_fps": 2339.159, "max_steps_per_frame": 10, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true}
]
}

View 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": 49024, "fps": 2451.161, "frame_ms_avg": 0.408, "frame_ms_p95": 0.415, "simulation_ms_per_frame": 0.004, "views_ms_per_frame": 0.128, "units_alive_max": 116}}
]
}

View file

@ -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 g10 x36, speed 1x, measured after 10 s of combat",
// moving units at the start of the first window: g10 36, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
"windows": [
{"view": "overview (zoom 64)", "frames": 2489, "fps": 124.4, "frame_ms_avg": 8.04, "frame_ms_median": 3.51, "frame_ms_p95": 24.80, "frame_ms_p99": 31.21, "frame_ms_max": 56.87, "frames_over_16_7_ms": 415, "of_them_with_simulation_step": 42, "gc_collections": 23, "simulation_ms_per_frame": 0.096, "views_ms_per_frame": 0.236, "ui_ms_per_frame": 0.080, "units_alive_max": 98},
// timings overview (zoom 64): main thread avg 2.89 / median 2.71 / p95 4.16 ms, render thread avg 1.98 / median 1.96 / p95 2.33 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.13 / median 0.20 / p95 21.87 ms
{"view": "mid lane close (zoom 22)", "frames": 1527, "fps": 152.7, "frame_ms_avg": 6.55, "frame_ms_median": 2.97, "frame_ms_p95": 22.52, "frame_ms_p99": 30.11, "frame_ms_max": 38.59, "frames_over_16_7_ms": 149, "of_them_with_simulation_step": 17, "gc_collections": 11, "simulation_ms_per_frame": 0.061, "views_ms_per_frame": 0.193, "ui_ms_per_frame": 0.059, "units_alive_max": 65}
// timings mid lane close (zoom 22): main thread avg 2.05 / median 1.95 / p95 2.89 ms, render thread avg 1.45 / median 1.43 / p95 1.71 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.52 / median 0.31 / p95 20.43 ms
]
}

View file

@ -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 g10 x36, speed 1x, measured after 10 s of combat",
// moving units at the start of the first window: g10 36, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
"windows": [
{"view": "overview (zoom 64)", "frames": 2561, "fps": 128.0, "frame_ms_avg": 7.81, "frame_ms_median": 3.30, "frame_ms_p95": 25.08, "frame_ms_p99": 32.12, "frame_ms_max": 59.27, "frames_over_16_7_ms": 409, "of_them_with_simulation_step": 42, "gc_collections": 24, "simulation_ms_per_frame": 0.092, "views_ms_per_frame": 0.213, "ui_ms_per_frame": 0.074, "units_alive_max": 98},
// timings overview (zoom 64): main thread avg 2.65 / median 2.50 / p95 3.78 ms, render thread avg 1.91 / median 1.89 / p95 2.25 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.15 / median 0.25 / p95 22.35 ms
{"view": "mid lane close (zoom 22)", "frames": 1509, "fps": 150.9, "frame_ms_avg": 6.63, "frame_ms_median": 2.96, "frame_ms_p95": 22.21, "frame_ms_p99": 28.95, "frame_ms_max": 35.60, "frames_over_16_7_ms": 154, "of_them_with_simulation_step": 16, "gc_collections": 10, "simulation_ms_per_frame": 0.060, "views_ms_per_frame": 0.196, "ui_ms_per_frame": 0.063, "units_alive_max": 65}
// timings mid lane close (zoom 22): main thread avg 2.14 / median 2.03 / p95 3.19 ms, render thread avg 1.45 / median 1.44 / p95 1.73 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.49 / median 0.18 / p95 20.23 ms
]
}

View file

@ -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 g10 x36, speed 1x, measured after 10 s of combat",
// moving units at the start of the first window: g10 36, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
"windows": [
{"view": "overview (zoom 64)", "frames": 2562, "fps": 128.1, "frame_ms_avg": 7.81, "frame_ms_median": 3.29, "frame_ms_p95": 24.59, "frame_ms_p99": 32.99, "frame_ms_max": 41.89, "frames_over_16_7_ms": 400, "of_them_with_simulation_step": 37, "gc_collections": 24, "simulation_ms_per_frame": 0.093, "views_ms_per_frame": 0.215, "ui_ms_per_frame": 0.074, "units_alive_max": 98},
// timings overview (zoom 64): main thread avg 2.65 / median 2.51 / p95 3.78 ms, render thread avg 1.91 / median 1.90 / p95 2.21 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.15 / median 0.22 / p95 22.04 ms
{"view": "mid lane close (zoom 22)", "frames": 1534, "fps": 153.2, "frame_ms_avg": 6.53, "frame_ms_median": 2.98, "frame_ms_p95": 21.70, "frame_ms_p99": 29.80, "frame_ms_max": 36.70, "frames_over_16_7_ms": 158, "of_them_with_simulation_step": 12, "gc_collections": 10, "simulation_ms_per_frame": 0.059, "views_ms_per_frame": 0.187, "ui_ms_per_frame": 0.056, "units_alive_max": 65}
// timings mid lane close (zoom 22): main thread avg 1.99 / median 1.89 / p95 2.83 ms, render thread avg 1.47 / median 1.46 / p95 1.71 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.52 / median 0.39 / p95 19.52 ms
]
}

View file

@ -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 g10 x36, speed 1x, measured after 10 s of combat",
// moving units at the start of the first window: g10 36, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
"windows": [
{"view": "overview (zoom 64)", "frames": 2163, "fps": 108.1, "frame_ms_avg": 9.25, "frame_ms_median": 3.91, "frame_ms_p95": 28.50, "frame_ms_p99": 34.50, "frame_ms_max": 45.91, "frames_over_16_7_ms": 430, "of_them_with_simulation_step": 38, "gc_collections": 24, "simulation_ms_per_frame": 0.108, "views_ms_per_frame": 0.237, "ui_ms_per_frame": 0.089, "units_alive_max": 98},
// timings overview (zoom 64): main thread avg 3.01 / median 2.79 / p95 4.50 ms, render thread avg 2.22 / median 2.20 / p95 2.71 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 6.25 / median 0.36 / p95 25.41 ms
{"view": "mid lane close (zoom 22)", "frames": 1320, "fps": 131.9, "frame_ms_avg": 7.58, "frame_ms_median": 3.10, "frame_ms_p95": 26.18, "frame_ms_p99": 35.71, "frame_ms_max": 42.10, "frames_over_16_7_ms": 202, "of_them_with_simulation_step": 12, "gc_collections": 10, "simulation_ms_per_frame": 0.070, "views_ms_per_frame": 0.211, "ui_ms_per_frame": 0.064, "units_alive_max": 65}
// timings mid lane close (zoom 22): main thread avg 2.15 / median 2.00 / p95 3.21 ms, render thread avg 1.55 / median 1.53 / p95 1.86 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.40 / median 0.34 / p95 23.50 ms
]
}

View file

@ -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 g10 x36, speed 1x, measured after 10 s of combat",
// moving units at the start of the first window: g10 36, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
"windows": [
{"view": "overview (zoom 64)", "frames": 2246, "fps": 112.3, "frame_ms_avg": 8.91, "frame_ms_median": 3.59, "frame_ms_p95": 27.79, "frame_ms_p99": 35.58, "frame_ms_max": 53.20, "frames_over_16_7_ms": 442, "of_them_with_simulation_step": 60, "gc_collections": 24, "simulation_ms_per_frame": 0.105, "views_ms_per_frame": 0.208, "ui_ms_per_frame": 0.080, "units_alive_max": 98},
// timings overview (zoom 64): main thread avg 2.67 / median 2.52 / p95 3.80 ms, render thread avg 2.15 / median 2.16 / p95 2.55 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 6.23 / median 0.51 / p95 25.32 ms
{"view": "mid lane close (zoom 22)", "frames": 1400, "fps": 140.0, "frame_ms_avg": 7.15, "frame_ms_median": 3.02, "frame_ms_p95": 24.60, "frame_ms_p99": 32.20, "frame_ms_max": 39.99, "frames_over_16_7_ms": 178, "of_them_with_simulation_step": 17, "gc_collections": 10, "simulation_ms_per_frame": 0.066, "views_ms_per_frame": 0.185, "ui_ms_per_frame": 0.057, "units_alive_max": 65}
// timings mid lane close (zoom 22): main thread avg 1.90 / median 1.80 / p95 2.79 ms, render thread avg 1.53 / median 1.52 / p95 1.86 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.24 / median 0.61 / p95 22.78 ms
]
}

View file

@ -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 g10 x36, speed 1x, measured after 10 s of combat",
// moving units at the start of the first window: g10 36, w04 14, e04 12, w06 11, w02 7, e01 4, e02 4, w08 4, w10 4, g05 2
"windows": [
{"view": "overview (zoom 64)", "frames": 2228, "fps": 111.4, "frame_ms_avg": 8.98, "frame_ms_median": 3.60, "frame_ms_p95": 27.81, "frame_ms_p99": 35.99, "frame_ms_max": 45.70, "frames_over_16_7_ms": 447, "of_them_with_simulation_step": 43, "gc_collections": 23, "simulation_ms_per_frame": 0.103, "views_ms_per_frame": 0.208, "ui_ms_per_frame": 0.080, "units_alive_max": 98},
// timings overview (zoom 64): main thread avg 2.70 / median 2.55 / p95 3.80 ms, render thread avg 2.17 / median 2.16 / p95 2.60 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 6.27 / median 0.48 / p95 24.73 ms
{"view": "mid lane close (zoom 22)", "frames": 1395, "fps": 139.5, "frame_ms_avg": 7.17, "frame_ms_median": 2.79, "frame_ms_p95": 24.89, "frame_ms_p99": 34.79, "frame_ms_max": 42.61, "frames_over_16_7_ms": 173, "of_them_with_simulation_step": 17, "gc_collections": 10, "simulation_ms_per_frame": 0.066, "views_ms_per_frame": 0.185, "ui_ms_per_frame": 0.056, "units_alive_max": 65}
// timings mid lane close (zoom 22): main thread avg 1.89 / median 1.79 / p95 2.71 ms, render thread avg 1.53 / median 1.52 / p95 1.83 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 5.27 / median 0.51 / p95 22.74 ms
]
}

View 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"
}

View file

@ -0,0 +1,11 @@
{
"match": "seed 2, bots, speed 24x",
"core_hash": "DCE95C96556F3A1A",
"core_steps": 12690,
"runs": [
{"target": "30 fps", "frames": 816, "seconds": 27.187, "measured_fps": 30.014, "max_steps_per_frame": 22, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
{"target": "60 fps", "frames": 1625, "seconds": 27.093, "measured_fps": 59.978, "max_steps_per_frame": 15, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
{"target": "120 fps", "frames": 3222, "seconds": 26.925, "measured_fps": 119.665, "max_steps_per_frame": 10, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
{"target": "unlimited", "frames": 85471, "seconds": 26.805, "measured_fps": 3188.629, "max_steps_per_frame": 6, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true}
]
}

View 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": 48621, "fps": 2431.048, "frame_ms_avg": 0.411, "frame_ms_p95": 0.423, "simulation_ms_per_frame": 0.004, "views_ms_per_frame": 0.131, "units_alive_max": 116}}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 738 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 667 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 666 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 610 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 435 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 593 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 602 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Some files were not shown because too many files have changed in this diff Show more