GodotでVideoStreamPlayerを 使用して動画を再生する方法


Godot Engine バージョン4.3

このチュートリアルでは、GodotVideoStreamPlayerノードを使って動画を再生する方法を説明します。動画をゲームに組み込むことで、イントロムービー、カットシーン、背景動画などを簡単に実装できます。



1. 動画ファイルを準備

動画形式の確認 Godotではogv形式の動画がサポートされています。事前に使用する動画をogv形式に変換してください。
プロジェクトに動画を追加 動画ファイルをres://assets/videos/フォルダ内に配置します。
res://
├─ assets/
│ ├─ videos/
│ │ ├─ example_video.ogv



2. VideoStreamPlayerノードを追加

ノードの作成
  • 新しいシーンを作成し、ルートノードとしてNode2Dを設定します。
  • 子ノードとしてVideoStreamPlayerを追加します。
動画を指定する
  • VideoStreamPlayerノードを選択し、InspectorStreamプロパティに動画ファイル(例: example_video.ogv)を指定します。



3. VideoStreamPlayerの基本設定

  • Autoplay 動画を自動再生する場合、Autoplayプロパティを有効にします。
  • Scaling 動画の表示サイズを調整するには、Expandプロパティを有効にして動画をスケーリングします。
  • 音声再生 VideoStreamPlayerは音声も再生可能です。音声を再生する場合は、AudioTrackプロパティで適切なトラックを選択します。



4. スクリプトで動画を制御

動画をプログラムで再生・停止・シークする方法を説明します。

スクリプト例

以下はVideoStreamPlayerを操作するためのスクリプト例です:
gdscriptコードをコピーするextends Node2D

# VideoStreamPlayerへの参照
@onready var video_player = $VideoStreamPlayer

func _ready():
# 動画を再生
video_player.play()

func _process(delta):
# 動画の状態をチェック
if Input.is_action_just_pressed("ui_cancel"):
if video_player.is_playing():
video_player.pause()
else:
video_player.play()

func _on_skip_button_pressed():
# 動画をスキップ
video_player.stop()

func _on_seek_button_pressed():
# 動画を特定の位置にシーク (例: 10秒)
video_player.seek(10)

コード解説

  • play(): 動画を再生します。
  • pause(): 動画を一時停止します。
  • stop(): 動画を停止し、再生位置を最初に戻します。
  • seek(time_in_seconds): 動画を指定した秒数にシークします。
  • is_playing(): 現在動画が再生中かどうかを確認します。



5. GUIで操作ボタンを追加

動画の再生・停止・スキップをGUIで制御する方法を説明します。
ボタンの追加
CanvasLayerを追加し、その下に以下のボタンを追加:
PlayButton(再生ボタン)
PauseButton(一時停止ボタン)
SkipButton(スキップボタン)
ボタンにスクリプトを追加 各ボタンにpressedシグナルを接続し、以下のコードを記述します:
func _on_PlayButton_pressed():
$VideoStreamPlayer.play()

func _on_PauseButton_pressed():
$VideoStreamPlayer.pause()

func _on_SkipButton_pressed():
$VideoStreamPlayer.stop()



6. 動画終了イベントを処理

動画再生が終了した際に特定の処理を行いたい場合、finishedシグナルを使用します。
シグナルの接続
VideoStreamPlayerノードを選択し、Nodeタブからfinishedシグナルをスクリプトに接続します。
スクリプト例
func _on_VideoStreamPlayer_finished():
print("動画が終了しました!")



7. 実行して確認

シーンを保存し、ゲームを実行して動画が正常に再生されるか確認します。動画再生が期待通り動作しない場合、以下を確認してください:
  • 動画形式がogvであること
  • 動画のパスが正しいこと
  • AudioTrack設定が正しくされていること

ご不明な点や追加の機能についての質問があれば、いつでもどうぞ!
最終更新日: 2024/12/26 07:15

コメント