Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends Node3D
- #godot 4, generate mesh with blend surfaces, example
- func _ready():
- var mesh_instance = MeshInstance3D.new()
- add_child(mesh_instance)
- var mesh = ArrayMesh.new()
- var arrays = []
- arrays.resize(Mesh.ARRAY_MAX)
- arrays[Mesh.ARRAY_VERTEX] = PackedVector3Array([Vector3(1,0,0), Vector3(0,0,0), Vector3(0,1,0)])
- var arrays1 = []
- arrays1.resize(Mesh.ARRAY_MAX)
- arrays1[Mesh.ARRAY_VERTEX] = PackedVector3Array([Vector3(-1,0,0), Vector3(0,0,0), Vector3(0,-1,0)])
- var blend_shape_arrays = []
- blend_shape_arrays.resize(Mesh.ARRAY_MAX)
- blend_shape_arrays[Mesh.ARRAY_VERTEX] = PackedVector3Array([
- Vector3(1, 0.5, 0),
- Vector3(0, 0.5, 0),
- Vector3(0, 1.5, 0)])
- var blend_shape_arrays1 = []
- blend_shape_arrays1.resize(Mesh.ARRAY_MAX)
- blend_shape_arrays1[Mesh.ARRAY_VERTEX] = PackedVector3Array([
- Vector3(1, -0.5, 0),
- Vector3(0, -0.5, 0),
- Vector3(0, -1.5, 0),])
- mesh.add_blend_shape('bs')
- mesh.add_blend_shape('bs1')
- #mesh.add_blend_shape('bs2')
- mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLE_STRIP, arrays, [blend_shape_arrays,blend_shape_arrays1])
- #mesh.add_blend_shape('bs2')
- #mesh.add_blend_shape('bs3')
- mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLE_STRIP, arrays1, [blend_shape_arrays,blend_shape_arrays1])
- mesh_instance.mesh = mesh
- mesh_instance.set("blend_shapes/bs", .5)
- print(mesh.get_blend_shape_count())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement