Godot Version
4.3
Question
output is :
create skid mesh = <PlaneMesh#-9223372004105648802>
Skid called
update skid mark, skid segment size = 1
i = 0
pos = (0.933065, 0.101371, -5.790673) normal = (0, 1, 0.000226)
skd transform origin = (0.933065, 0.101371, -5.790673)
skid transform basis = [X: (1, 0, 0), Y: (0, 1, 0), Z: (0, 0, 1)]
skd transform = [X: (0, 0, -1), Y: (0, 1, 0), Z: (1, 0, 0), O: (0.933065, 0.101371, -5.790673)]
t = [X: (0, 0, -1), Y: (0, 1, 0), Z: (1, 0, 0), O: (0.933065, 0.101371, -5.790673)]
i = 0 multimesh instance transform = [X: (1, 0, 0), Y: (0, 1, 0), Z: (0, 0, 1), O: (0, 0, 0)]
contact point = (0.933065, 0.101371, -5.790673)contact normal = (0, 1, 0.000226)
Skid called
update skid mark, skid segment size = 2
i = 0
pos = (0.933065, 0.101371, -5.790673) normal = (0, 1, 0.000226)
skd transform origin = (0.933065, 0.101371, -5.790673)
skid transform basis = [X: (1, 0, 0), Y: (0, 1, 0), Z: (0, 0, 1)]
skd transform = [X: (0, 0, -1), Y: (0, 1, 0), Z: (1, 0, 0), O: (0.933065, 0.101371, -5.790673)]
t = [X: (0, 0, -1), Y: (0, 1, 0), Z: (1, 0, 0), O: (0.933065, 0.101371, -5.790673)]
i = 0 multimesh instance transform = [X: (1, 0, 0), Y: (0, 1, 0), Z: (0, 0, 1), O: (0, 0, 0)]
i = 1
pos = (0.93221, 0.102591, -11.18428) normal = (0, 1, 0.000226)
skd transform origin = (0.93221, 0.102591, -11.18428)
skid transform basis = [X: (1, 0, 0), Y: (0, 1, 0), Z: (0, 0, 1)]
skd transform = [X: (0, 0, -1), Y: (0, 1, 0), Z: (1, 0, 0), O: (0.93221, 0.102591, -11.18428)]
t = [X: (0, 0, -1), Y: (0, 1, 0), Z: (1, 0, 0), O: (0.93221, 0.102591, -11.18428)]
i = 1 multimesh instance transform = [X: (1, 0, 0), Y: (0, 1, 0), Z: (0, 0, 1), O: (0, 0, 0)]
contact point = (0.93221, 0.102591, -11.18428)contact normal = (0, 1, 0.000226)
this line :
multimesh.set_instance_transform(i, Transform3D(t[0].basis,Vector3(pos.x,pos.y,pos.z)))
the origin is not getting saved for any of the index, WHY?
Also I’m trying to make tyre Skid marks, got any link. That would be helpful , Thanks
func update_skid_marks():
print("update skid mark, skid segment size = ", skid_segments.size())
for i in range(0,skid_segments.size(),1):
print("i = ", i)
var pos: Vector3 = skid_segments[i]["pos"]
var normal: Vector3 = skid_segments[i]["normal"]
print("pos = ", pos, " normal = ", normal)
# Create the transform to align the skid mark with the ground
var skid_transform : Transform3D
skid_transform.origin = pos
print("skd transform origin = ", skid_transform.origin)
print("skid transform basis = ", skid_transform.basis)
skid_transform.basis = Basis().looking_at(normal.cross(Vector3.UP), Vector3.UP)
# Set the format first.
multimesh.transform_format = MultiMesh.TRANSFORM_3D
#print("skid tranform rotate = ", skid_transform.rotated_local())
#skid_transform.looking_at(normal, Vector3.UP)
multimesh.instance_count = skid_segments.size()
print("skd transform = ", skid_transform)
var t : Array[Transform3D] = []
t.append(skid_transform)
print("t = ", t[0])
multimesh.set_instance_transform(i, Transform3D(t[0].basis,Vector3(pos.x,pos.y,pos.z)))
print("i = ", i , " multimesh instance transform = ", multimesh.get_instance_transform(i))