今回は、Minecraft でゴピチャンドの音を鳴らす為に ogg ファイルを読み込むよ。

SPONSERD LINK

前回の記事で、追加したアイテムの名前をローカライズ(英語と日本語)した。

Gopichand の音源(ogg ファイル)

Minecraft で鳴らす音源を準備する。
ソフトウェアで作ったり、楽器を演奏して録音したり。著者は、実際に自宅にあったゴピチャンドを弾いて録音したよ!

音源は、下記のようなフォーマットの ogg ファイルで用意する。

  • サンプルレート: 44,100 hz
  • ビットレート: 96 kbps VBR
  • ビット深度: 16 Bit
  • チャンネル数: 1(モノラル)

ビットレートは、音源毎に変えてもOK。
チャンネル数は、2(ステレオ)でも良いけど、再生時にモノラルに変換される。容量の無駄なのでモノラルの音源を用意した方が良い。

ogg ファイルを出力する環境がない場合は、一旦、wav ファイルに出力し、下記のような ogg ファイルの出力に対応してる波形編集ソフトに読み込み、ogg ファイルで保存する。

フリーウェアで有名なのが、Audacity
著者は、Sound Forge Pro の Version 10 を使ってるよ!
DTM の環境がある人なら DAW から ogg ファイルの出力ができる可能性が高い。

著者が用意した ogg ファイルは下記のとおり。

GopichandMod では、プレイヤーの状態によってゴピチャンドの奏法が変わるので、奏法毎の ogg ファイルを用意した。

gopichand_pick.ogg は、ゴピチャンドの弦を普通に指で弾いた音源。プレイヤーが立った状態でゴピチャンドを弾くと鳴る。
gopichand_up.ogg は、ゴピチャンドのネックに力を入れ、弦を緩めた状態から弾いた音源。プレイヤーがスニーク状態(Shift を押しっぱ)でゴピチャンドを弾くと鳴る。
gopichand_tremolo.ogg は、ゴピチャンドのネックに断続的に力を入れた状態で弦を弾いた音源。トレモロ奏法。プレイヤーがジャンプしているとゆうか足が地面についていない状態でゴピチャンドを弾くと鳴る。

音源用のパッケージ

Eclipse で ogg ファイルを登録するパッケージを下記のフォーマットで作成する。

assets.『任意のパッケージの名前』.sounds(.『任意のパッケージの名前』)

ogg ファイルをフォルダ分けしたい場合は、sounds 以降にパッケージを設定できる。
著者の場合は、楽器の音と効果音を分けたかったので、下記のようにした。

assets.gopichandmod.sounds.instruments

音源ファイルをプロジェクトに登録する

先ほど、作成したパッケージに音源を登録する。
“パッケージ・エクスプローラー”のパッケージ assets.gopichandmod.sounds.instruments に ogg ファイルをドラックアンドドロップする。

次にパッケージに ogg ファイルの読み込みの設定を記した json ファイルを作る。
手順は、lang ファイルを作った時と同じ。

“パッケージ・エクスプローラー”のパッケージ上で

右クリック → 新規 → ファイル

の順でクリックすると、“新規ファイル”のダイアログが表示されるので“ファイル名”は、

sounds.json

と入力する。

ファイルは、

assets.gopichandmod.sounds.json

に配置する。

sounds.json のフォーマットは下記のとおり。

{
	"(『任意のパッケージの名前』.)『拡張子を除いた ogg ファイル名 A』: {
		"category": "master",
		"sounds": [
			{
				"name": "(『任意のパッケージの名前』/)『拡張子を除いたoggファイル名 A』",
				"stream": false
			}
		]
	},
	"(『任意のパッケージの名前』.)『拡張子を除いた ogg ファイル名 B』: {
		"category": "master",
		"sounds": [
			{
				"name": "(『任意のパッケージの名前』/)『拡張子を除いたoggファイル名 B』",
				"stream": false }
		]
	},
	"(『任意のパッケージの名前』.)『拡張子を除いた ogg ファイル名 C』: {
		"category": "master",
		"sounds": [
			{
				"name": "(『任意のパッケージの名前』/)『拡張子を除いたoggファイル名 C』",
				"stream": false
			}
		]
	}
}

例として assets.testmod.sounds にある testsound.ogg を設定する場合は、

{
	"testsound": {
		"category": "master",
		"sounds": [
			{
				"name": "testsound",
				"stream": false
			}
		]
	}
}

のようになる。

assets.testmod.sounds.instruments にある testsound.ogg を設定する場合は、

{
	"instruments.testsound": {
		"category": "master",
		"sounds": [
			{
				"name": "instruments/testsound",
				"stream": false
			}
		]
	}
}

のようになる。

上段は、. 区切りで下段は / 区切りになっているので注意。

著者の場合は下記のようになった。

{
	"instruments.gopichand_pick": {
		"category": "master",
		"sounds": [
			{
				"name": "instruments/gopichand_pick,
				"stream": false
			}
		]
	},
	"instruments.gopichand_up": {
		"category": "master",
		"sounds": [
			{
				"name": "instruments/gopichand_up",
				"stream": false
			}
		]
	},
	"instruments.gopichand_tremolo": {
		"category": "master",
		"sounds": [
			{
				"name": "instruments/gopichand_tremolo",
				"stream": false
			}
		]
	}
}

これで Minecraft に ogg ファイルが読み込まれる。

プロジェクトの構成は、下記のようになった。

java
	com.watermelonheadman.gopichandmod
		GopichandMod.java
		Recipes.java
	com.watermelonheadman.gopichandmod.items
		GopichandItems.java
		ItemGopichand.java
		ItemGopichandBody.java
		ItemGopichandHead.java
		ItemIronString.java
resource
	assets.gopichandmod
		sounds.json
	assets.gopichandmod.lang
		en_US.lang
		ja_JP.lang
	assets.testmod.sounds.instruments
		gopichand_pick.ogg
		gopichand_up.ogg
		gopichand_tremolo.ogg
	assets.gopichandmod.textures.items
		gopichand.png
		gopichandbody.png
		gopichandhead.png
		ironstring.png

次回予告

次回は、実際に音を鳴らすよ!