extends Node3D func _ready() -> void: for y in range(4): for x in range(4): await get_tree().create_timer(0.2).timeout var player: QVideoPlayerView = QVideoPlayerView.new() player.muted = true player.connect("playback_state_changed", func(state: QVideoPlayerView.PlaybackState): if state == QVideoPlayerView.PlaybackState.PlayingState: player.position = 1000 * randi_range(60, 500) ) var mesh = MeshInstance3D.new() var plane = PlaneMesh.new() mesh.set_mesh(plane) plane.size = Vector2(4, 2.25) mesh.rotate_x(deg_to_rad(90)) add_child(player) add_child(mesh) player.source = "/path/to/bbb_sunflower_1080p_30fps_normal.mp4" player.connect("view_ready", func(): if player.load(): var mat: StandardMaterial3D = StandardMaterial3D.new() mat.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED mat.texture_repeat = false mat.albedo_texture_force_srgb = true mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA mat.albedo_texture = player.get_texture() mesh.set_surface_override_material(0, mat) ) mesh.position.x = x * 4 mesh.position.y = y * 2.25