【Windowsテスト合格】Godotに外部音声ファイルをインポートできない問題について

file.open(filepath, file.READ)
var buffer = file.get_buffer(file.get_len())
#put data into audiostreamsample
var stream = AudioStreamSample.new()
stream.data = buffer

コードは与えられていますが、まだテストされていません。(godot3.2 テストは失敗しました)

実行時に外部オーディオ (WAV) ファイルを簡単にロード · 問題 #732 · Godotengine/Godot-proposals (github.com)

私が与えた方法(WINDOSテストに合格しました)

1. まず、ゲーム開発中に外部オーディオ ファイルを godot の res:// ディレクトリにインポートし、次にインポートされたデータ ファイルを .imoprt/ フォルダにコピーします (中心原則: エンジンの最下層の再インポート、インポーター)

Godot3.5.2でサポートされている音声ファイル

MP3対応エンジン下位クラス:AudioStreamMP3
OGG対応エンジン下位クラス:AudioStreamSample
Wav対応エンジン下位クラス:AudioStreamOGGVorbis

原理説明:

オーディオ ファイルを res:// ディレクトリに置くと、godot がオーディオ .import ファイルを自動的に生成することがわかりました。

 [remap] のパス行に注意してください。実際、Godot ゲーム エンジンの実行中、Godot エンジン自体によって再インポートされたファイルが読み取られます。

mp3 ファイルの場合、エンジンによって実際にデコードおよび再生されるファイルは、元のファイル .mp3 ではなく .mp3str です)

ogg ファイルの場合、エンジンによって実際にデコードおよび再生されるファイルは、元のファイル .ogg ではなく .oggstr です。

wav ファイルの場合、エンジンによって実際にデコードおよび再生されるファイルは、元の .wav ファイルではなく .sample ファイルです。

このファイルを外部ファイル システム ディレクトリに配置し、load() 関数を使用してロードするだけです。

作成者はファイルを C:\Users\me\Desktop\test ディレクトリに配置しました

ゲームシーンを構築するような

 再生用のコード (ウィンドウ プラットフォームのテストに合格しました。他のプラットフォームではセルフテストが必要です)

extends Node2D


func _ready():
	var stream1 = load("C:/Users/me/Desktop/test/fresh.oggstr")
	var stream2 = load("C:/Users/me/Desktop/test/雪の朝.sample")
	var stream3 = load("C:/Users/me/Desktop/test/景山将太.mp3str")
	
	$bgm1.stream = stream1
	$bgm2.stream = stream2
	$bgm3.stream = stream3

	$bgm1.play()
	$bgm1.play()
	$bgm3.play()

 外部ファイルをロードして、.mp3 や .wav.ogg を直接再生したい場合は、機能しないと思います。

この点に関して、C++ プラグインを作成できます。これは、エンジンのコアをリソース ファイルにインポートするプロセスを自分で作成します (外部ファイルに適用可能)。つまり、基礎となるフォーマット エンコード変換プラグインをカプセル化します。あなた自身で。

おすすめ

転載: blog.csdn.net/weixin_43539313/article/details/131748013