qa: walkable demo fixed — terrain collision root cause, spawn, and a scripted QA pass #7
No files matched your search
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -372,11 +372,14 @@ def build():
|
||||
# sidewalk is at Y -1912..-1053 and the SOUTH sidewalk at Y +718..+1447.
|
||||
# The hero facade is on the SOUTH side at Y +1307. Stand on the north
|
||||
# sidewalk and face south (+Y, yaw 90) across the road at it.
|
||||
# Z 200 is clear air so the capsule settles onto the pavement instead of
|
||||
# spawning embedded or below grade (the fall-through QA finding).
|
||||
spawn(unreal.PlayerStart, unreal.Vector(-13336.0, -1700.0, 200.0), "Demo_PlayerStart",
|
||||
# Z: the terrain here is ~Z 99-138. The capsule half-height is 87.5 cm, so
|
||||
# feet must start ABOVE the surface or the point is embedded and UE rejects
|
||||
# the PlayerStart ("NO PLAYERSTART with positive rating"), dropping the pawn
|
||||
# at the world origin to fall through. Cap feet ~80 cm above grade: centre
|
||||
# ~138+80+87 = 305, so Z 300 lets it drop cleanly and gravity settles it.
|
||||
spawn(unreal.PlayerStart, unreal.Vector(-13336.0, -1700.0, 300.0), "Demo_PlayerStart",
|
||||
unreal.Rotator(pitch=0.0, yaw=90.0, roll=0.0))
|
||||
log("staged: Demo_PlayerStart on the north sidewalk facing south (+Y)")
|
||||
log("staged: Demo_PlayerStart on the north sidewalk (cap above grade), facing south (+Y)")
|
||||
|
||||
# A lockable LFS .umap checks out read-only, which makes save_map silently
|
||||
# return False — chmod u+w first or the staged actors never persist.
|
||||
|
||||
@@ -50,6 +50,12 @@ def import_fbx(path, name, collision="complex"):
|
||||
smd.convert_scene_unit = False
|
||||
smd.force_front_x_axis = False
|
||||
smd.normal_import_method = unreal.FBXNormalImportMethod.FBXNIM_IMPORT_NORMALS
|
||||
# Generate collision at import. A default FBX static-mesh import creates NO
|
||||
# collision primitives, so CTF_USE_COMPLEX_AS_SIMPLE later has nothing to use
|
||||
# and the player falls through the walkable surfaces (observed at runtime:
|
||||
# ground trace under the spawn hits nothing). auto_generate_collision bakes
|
||||
# collision geometry into the mesh so the walkable plane actually blocks.
|
||||
smd.auto_generate_collision = True
|
||||
task.options = ui
|
||||
unreal.AssetToolsHelpers.get_asset_tools().import_asset_tasks([task])
|
||||
|
||||
|
||||
Reference in new issue
Block a user