Advertisement
Guest User

#godot 4, generate mesh with blend surfaces, example

a guest
May 25th, 2025
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. extends Node3D
  2.  
  3. #godot 4, generate mesh with blend surfaces, example
  4. func _ready():
  5. var mesh_instance = MeshInstance3D.new()
  6. add_child(mesh_instance)
  7.  
  8. var mesh = ArrayMesh.new()
  9. var arrays = []
  10. arrays.resize(Mesh.ARRAY_MAX)
  11. arrays[Mesh.ARRAY_VERTEX] = PackedVector3Array([Vector3(1,0,0), Vector3(0,0,0), Vector3(0,1,0)])
  12. var arrays1 = []
  13. arrays1.resize(Mesh.ARRAY_MAX)
  14. arrays1[Mesh.ARRAY_VERTEX] = PackedVector3Array([Vector3(-1,0,0), Vector3(0,0,0), Vector3(0,-1,0)])
  15.  
  16. var blend_shape_arrays = []
  17. blend_shape_arrays.resize(Mesh.ARRAY_MAX)
  18. blend_shape_arrays[Mesh.ARRAY_VERTEX] = PackedVector3Array([
  19. Vector3(1, 0.5, 0),
  20. Vector3(0, 0.5, 0),
  21. Vector3(0, 1.5, 0)])
  22.  
  23. var blend_shape_arrays1 = []
  24. blend_shape_arrays1.resize(Mesh.ARRAY_MAX)
  25. blend_shape_arrays1[Mesh.ARRAY_VERTEX] = PackedVector3Array([
  26. Vector3(1, -0.5, 0),
  27. Vector3(0, -0.5, 0),
  28. Vector3(0, -1.5, 0),])
  29.  
  30. mesh.add_blend_shape('bs')
  31. mesh.add_blend_shape('bs1')
  32. #mesh.add_blend_shape('bs2')
  33.  
  34. mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLE_STRIP, arrays, [blend_shape_arrays,blend_shape_arrays1])
  35.  
  36.  
  37. #mesh.add_blend_shape('bs2')
  38. #mesh.add_blend_shape('bs3')
  39. mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLE_STRIP, arrays1, [blend_shape_arrays,blend_shape_arrays1])
  40. mesh_instance.mesh = mesh
  41. mesh_instance.set("blend_shapes/bs", .5)
  42. print(mesh.get_blend_shape_count())
  43.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement