Godot 4.2.2
I am using a video stream player array to change a video when a dialogue option is selected. When some videos are used, the dialogue progresses normally. However, the dialogue freezes when other videos are used. I do not know why some videos work, while others do not.
I am using the Clyde plug-in to create the dialogue system.
Here is how I made the video array system:
extends VideoStreamPlayer
@export var videos: Array[VideoStream]
var current_video: int = 0
@onready var dialogue
func _ready() -> void:
finished.connect(_play_next)
_play_next()
dialogue = ClydeDialogue.new()
dialogue.load_dialogue("res://steamed_hams.clyde")
dialogue.event_triggered.connect(on_event_triggered)
func _play_next() -> void:
if current_video >= videos.size():
return
stream = videos[current_video]
play()
current_video += 1
Here is how the videos are called in the main script:
func on_event_triggered(event_name):
if event_name == 'show_DoorZoom':
$VideoStreamPlayer.stream = $VideoStreamPlayer.videos[0]
$VideoStreamPlayer.play()
if event_name == 'show_DoorHold':
$VideoStreamPlayer.stream = $VideoStreamPlayer.videos[1]
$VideoStreamPlayer.play()
if event_name == 'show_ExisOpen':
$VideoStreamPlayer.stream = $VideoStreamPlayer.videos[2]
$VideoStreamPlayer.play()
if event_name == 'show_ExisKnock':
$VideoStreamPlayer.stream = $VideoStreamPlayer.videos[3]
$VideoStreamPlayer.play()
Here is how the triggers are called in the Clyde dialogue system:
== Dialogue_Start
{trigger show_DoorHold}
Chalmers: Well, Seymour, I made it, despite your directions.
+ Ah, Superintendent Chalmers, welcome!
{trigger show_ExisOpen}
Skinner: I hope you're prepared for an unforgettable luncheon!
Chalmers: Eh...
Here is the information of a video file that doesn’t work:
I cannot upload any other images in this post as a new user.