KF-KBI作成 開発工程 頁5
 
 
 ここからはひと足脱線、音声の組込について触り部分を紹介します。
 
<3-06.開発工程06 KF-Xへの音声組み込み第一弾>

パターン組込で、それも初期段階の立ちキャラ組込で思わぬはまりを味わった管理人は、
モチベ低下を避けるため、パターン組込とは全く異なる音声処理へいったん逃げ延び、
今一度モチベの向上を図るのでした。ところがここにも、落とし穴はあったのでした…


<3-06-1.KF-Xでの音声組込>

どんなゲームでも、効果音やBGMは、ゲームを演出する上で必須の要素。
格闘ゲームはゲーム性がシンプルな分、効果音とBGMはかなり重要です。
KF-Xにおける音声は、大きく分ければ

@アクション中のキャラの声
Aアクション中各種効果音
Bキャラごとの流れる専用BGM


の3種類に区別されます。

BGMの組込については、至極簡単。
キャラクターフォルダ内に、使いたいBGMのMIDIデータを「BGM.MID」というファイル名で置けばよいだけです。



もちろん、そのMIDIファイルを作る方法が単純ではないわけですが…この点は後ほど語ります。
なお、KF-AではMP3ファイルも利用できます。

そして、問題のアクション中のキャラ声や効果音です。
これについては、KF-Xのシステムをある程度理解する必要があります。
画像の組込とある程度似ているのですが、まずはMOTION.LSTを確認しましょう。



赤枠で囲まれた領域、すなわち、4行目の項目名称における「V」の列が音声番号を示します。
(「Voice」の略)
ほとんどの行では「9」が記載されていますが、これは無音であることを示します。
青丸で囲んだところが具体的に音を出しているアクションです。
400行に注目。
コメント欄に「WIN」と書かれていますね。つまり、勝ち。要するに、
「勝った後のアクションで、音声番号2番の音声ファイルを鳴らせ」
という意味になります。
立ちキャラ組込のコンテンツで画像の表示についてある程度語ってますので、
MOTION.LSTの見方もだいぶ把握できてきたかと思います
では、音声番号管理のファイルは?




この、「VOICE.LST」が音声管理ファイルです。
このファイル内で、ユニークな音声番号に対し、対応する音声WAVファイルを紐付けしています。
フォルダ内に、HA.WAVとHU.WAVとWIN.WAVがありますね。
これらのファイルを、MOTION.LST中で音声番号を使って鳴らしているというわけです。

ただし、「キャラ作成.TXT」に記載されているように、KF-X内で管理できる音声番号は
「0〜8」までの9音声
ということになっています。上位バージョンではもう少し使えるはず。
まあ、あまり多すぎてもごちゃごちゃしすぎるので、いい感じに9音に絞り込めれば…
まず、今回の初期組込では、
・ゲーム開始時の叫び
・HA.WAV
・HU.WAV
・WINの際の勝ち名乗り
・LOSの際の敗北宣言
の五種類を組み込もうと思います。


<3-06-2.音声初期組込準備>

さてさて、ここまでは規定路線。
今回は、全キャラにおいての初期組込五種音声の選定を、じっくり楽しもうと思っていました。
先日、紛失(と思っていた)回データもすべて復旧し、ホクホク顔ではじめたわけですが…
進めていくうちにまたまた、トラブルにはまりましたorz
(といっても、実は9年前から分かっていたことではあったのですが…)

まずは、キャラ登場回をざっとチェックし、候補とする音声をAVIUTILという動画作成ツールを使って
WAV出力で抽出し、全キャラの組込音声候補元ソースを確保しました。
とりあえず全リスト。

No.キャラNo.キャラ名回収音声リストノイズ
1 02 有明省吾 08-30718_はぁっ! はあっ!
2 02 有明省吾 08-31852_やあっ!
3 02 有明省吾 11-3840-3862_うりゃー
4 02 有明省吾 11-29824-飛鳥先生の空手がどんなものか
5 02 有明省吾 11-30214-見たか!これが飛鳥空手だ!!
6 02 有明省吾 11-30534-だーっ!
7 02 有明省吾 14-15115-飛鳥空手唯一の継承者、有明省吾だ!!
8 02 有明省吾 14-22503-僕を破門してください
9 02 有明省吾 14-32698-てやー!
10 02 有明省吾 14-34062-いやーっ!
11 02 有明省吾 15-7453-とぅーっ!
12 03 五十嵐 22-8173-この五十嵐、あんた一人を死なせはせんぞ
13 03 五十嵐 22-20962-わしゃあ、わしゃあうれしいぞー
14 03 五十嵐 24-8044-たあーっ!!
15 03 五十嵐 24-28143-はあーっ!!
16 03 五十嵐 24-28176-うあーぉ!!
17 03 五十嵐 24-29630-すまん、醜態じゃ
18 03 五十嵐 27-4772-だぁーっ!
19 03 五十嵐 27-5455-日系の皆さん、ありがとう! 次に…!
20 03 五十嵐 27-12358-誇りを持たれよ!
21 03 五十嵐 29-5484-全くふがいないわい
22 03 五十嵐 29-15426-いやー! うりゃー!!
23 04 ブラックコブラ 34-30374-とう! ああー
24 04 ブラックコブラ 34-30684-ふんっ!
25 04 ブラックコブラ 34-30875-さすがケンアスカ
26 04 ブラックコブラ 34-31799-うおぁっ
27 04 ブラックコブラ 34-32211-ア・ス・カ…
28 04 ブラックコブラ 35-11929-うっ、うわー
29 05 ザ・エクスキュースナー 24-?30290-はああっ!
30 05 ザ・エクスキュースナー 24-32284-はっはっは
31 05 ザ・エクスキュースナー 24-34203-キルユー
32 05 ザ・エクスキュースナー 24-34837-ケンアスカ、絞首刑だ!
33 05 ザ・エクスキュースナー 25-4590-であー
34 05 ザ・エクスキュースナー 25-5010-ケンアスカ、貴様の判決は絞首刑だ!
35 05 ザ・エクスキュースナー 25-6234-へっへっへ
36 05 ザ・エクスキュースナー 25-7219-見たか日本人
37 05 ザ・エクスキュースナー 25-10324-うわー
38 05 ザ・エクスキュースナー 25-11625-うわー2
39 05 ザ・エクスキュースナー 26-4665-うあー うおあー
40 06 傘ババア 21-26859-思い知ったかジャップ!
41 06 傘ババア 21-27047-敵を取ってやったわ! フフフ ぶしゅっ
42 06 傘ババア 21-27163-うわーっ
43 06 傘ババア 22-6644-あああーー
44 07 陳先生 44-8408-はっはっは、私が陳ですよ
45 07 陳先生 44-10328-おいでなされ
46 07 陳先生 44-16222-びしゅうっ ぶーん 
47 07 陳先生 44-20302-兄弟げんかに、勝った負けたもありますまい
48 07 陳先生 44-22050-円であり球
49 07 陳先生 44-24169-円の心とは
50 07 陳先生 44-32789-円の心に帰ったものが勝つ
51 08 ロゴスキー 42-14109-でやーっ
52 08 ロゴスキー 42-20953-お前は甘っちょろい世界に生きている
53 08 ロゴスキー 42-21547-もう一度だけ言う、やめておけ
54 08 ロゴスキー 42-21806-おまえはたった今、自分の死刑判決文を…
55 08 ロゴスキー 42-25019-でやーっ2
56 08 ロゴスキー 42-25570-へへへへへへ
57 08 ロゴスキー 42-27832-いやーっ!
58 08 ロゴスキー 42-27942-これからが地獄の始まりよ
59 08 ロゴスキー 43-6087-どりゃあああ(ジャイアントスイング)
60 08 ロゴスキー 43-7947-うあああああ 倒れる
61 08 ロゴスキー 43-34263-早くいけ、あばよ
62 09 トッド若松 20-31059-わたし、大損害をこうむります!
63 09 トッド若松 21-13797-命からがら、最悪の日ね
64 09 トッド若松 21-17506-私、大損害だ!
65 09 トッド若松 21-25011-何が東洋の神秘だ!
66 09 トッド若松 21-27961-許してくれ私はアメリカ人だ
67 09 トッド若松 21-30163-助かった助かったー!
68 09 トッド若松 21-30366-地獄に仏とはこのことね
69 09 トッド若松 21-34617-いやだいやだリンチで死ぬのは嫌だ
70 09 トッド若松 22-3949-オーノー!私死にたくないです
71 09 トッド若松 24-4110-フフ−ン
72 09 トッド若松 24-5193-せいぜいがんばることだフフ−ン
73 09 トッド若松 25-9497-こうなるともう哀れというしかないねえ
74 09 トッド若松 25-28370-オーノー
75 10 魯錬山 46-13056-ふっふっふ  ふん!
76 10 魯錬山 46-13345-失礼しました
77 10 魯錬山 46-13345-飛鳥サン、死ニナサイ
78 10 魯錬山 46-26975-ハッ!
79 10 魯錬山 46-28220-私の秘儀
80 10 魯錬山 46-28446-見テ死ニナサイ
81 10 魯錬山 46-29647-いやーっ!
82 10 魯錬山 46-29736-もう一発でアナタ死にマス
83 10 魯錬山 46-32362-ワタシハジメテ負けマシタ 
84 11 力道山 29-27578-なにくそー てやー! たーっ!!
85 11 力道山 29-28733-(チョップ)たーっ!!
86 11 力道山 30-13477-たーっ!
87 11 力道山 30-15853-でやーっ!
88 11 力道山 30-21572-わしの空手チョップをみせて震え上がらせてやる
89 11 力道山 30-23219-1分以内でKOさ
90 11 力道山 30-31009-あぁぁー…
91 11 力道山 30-31582-面目ない、敵を…
92 12 タム・ライス 30-30896-うらあーっ!
93 12 タム・ライス 31-9831-ナッシングだ!
94 12 タム・ライス 31-10940-ふんっ!
95 12 タム・ライス 31-14198-さあ、かかってこい、俺をのしたら…
96 12 タム・ライス 31-33043-はっ! はあああああっ!
97 12 タム・ライス 31-33346-うわああああっ!
98 12 タム・ライス 31-33491-うううう…
99 13 鬼殺しの竹林 10-29907-どうりゃあああ
100 13 鬼殺しの竹林 10-30223-たあいもないことよ
101 13 鬼殺しの竹林 10-30778-おりゃああああああああ
102 13 鬼殺しの竹林 10-32921-おりゃあ2
103 13 鬼殺しの竹林 11-17198-あはははは
104 13 鬼殺しの竹林 11-17298-わしと真剣勝負をしろ!
105 13 鬼殺しの竹林 11-18036-この申し込みを受けるか!
106 13 鬼殺しの竹林 11-33459-そりゃあっ タバコ投げ後
107 13 鬼殺しの竹林 11-33861-そりゃあっ2
108 13 鬼殺しの竹林 11-34533-うああああ 階段落ち
109 14 ???? 41-23031-俺は落ちぶれるところだった
110 14 ???? 41-24218-んー ケン・ニッポン
111 14 ???? 41-28675-俺はどうして運が無いんだろう

以上111音源。テーブル作るだけで疲れた('A`)
音声関係は、量産一括進行すると死ぬな…

で、この一覧表ですが、右側に「ノイズ」なる列があります。
あらかじめ言っておきますが、一般的な人は考慮する必要のない項目です。
これは管理人特有の問題でして…
管理人が2005年初放送時にキャプチャした1話〜26話については、
「コンポジットケーブル音声L側の接触不良」のせいで、
すべてL音声にノイズが入っている

のですorz
たちの悪いことに、当時使っていたスピーカーにガタが来ていて、
たまたまスピーカーLも死んでまして、26話終了まで気づかなかったという…
たしか、当時の実況民になんか音声をアップした際に
「変な音入ってるよ」といわれて、「へ?何も聞こえないけど」と返事し、
そのことでケーブルとスピーカー両方がおかしかったことが発覚したのです。
スピーカーさえまともだったら、26話も無駄にしなかったのに…
あ、そういやキッズ放送時に途中まで再キャプしてたような?
ダンボールの中に入ったままかorz

そんなこんなで、管理人が空手バカの音を使う場合、
1話〜26話の音声に限ってはノイズカット処理が必要なのです。
以下、メモ残し。

@ノイズトラック(左)をカット、保存
Aノイズカット済みデータを2つ並べて、どちらもトラック分離(4トラック状態)
Bそれぞれから無音左トラックを消し、2トラック状態にする
C Bの状態で、ステレオ化を選択で合成され、ノイズなしステレオ化完了

いやー、簡単簡単。簡単だけど…
これをノイズ有り音源55個分繰り返すのかorz
そんなわけで、音声回収開始時にうきうきだった管理人の心も、この
全キャラ分回収ノイズ音源ノイズカット惰性作業によってまたまたモチベ落ちしてしまったわけです。
音関係は、一括作業するモンじゃないなー…

ちなみに、このノイズカットや、その後の音声クリッピングなどwavデータの加工作業は
「Audacity」を使っています。昔から使っててGUIにもなじみあるからいいんだよねー…

で、ノイズ有り音源へのノイズカット処理をすべて終えた後ヘロヘロになり、
有明関連音源のクリッピング(必要部分のみ抜き出し、無駄音声をそぎとる作業)が終わった後に、
管理人の中で結論が。

他のキャラの音源クリッピング作業は、一括処理やめとこ

ヘタレてしまいました。これで、テストプレイはしばらく有明でしか出来ないなあ。



<3-06-3.初期音声組込>

そんなわけで、今回は有明分だけ組み込みます。それも初期組込として基本的なもののみ。

回収音声リスト 最終クリップ名 適用シーン 登録用ファイル名
08-30718_はぁっ! はあっ! 02-08-30718_いやぁっ! HA?
08-31852_やあっ! 02-08-31852_やあーーっ!
11-3840-3862_うりゃー 02-11-3840-3862_うりゃー HU? 00URYAA.wav
11-29824-飛鳥先生の空手がどんなものか 02-11-29824-飛鳥先生の空手がどんなものか イントロ
11-30214-見たか!これが飛鳥空手だ!! 02-11-30214-見たか!これが飛鳥空手だ!!(LONG)
02-11-30214-見たか!これが飛鳥空手だ!!(SHORT) WIN 02WIN.wav
11-30534-だーっ! 02-11-30534-だーっ! 必殺技系?
14-15115-飛鳥空手唯一の継承者、有明省吾だ!! 02-14-15115-飛鳥空手唯一の継承者、有明省吾だ!! イントロ2
14-22503-僕を破門してください 02-14-22503-僕を破門してください LOS
14-32698-てやー! 02-14-32698-てやー!
14-34062-いやーっ! 02-14-34062-いやーっ! 必殺技系?
15-7453-とぅーっ! 02-15-7453-ふぅっ! HU? 01HUU.wav

まず、すでにデフォルトの「ARAKI」で組み込まれている3つの音声を差し替えます。
旧コンテンツでは、元々のファイルに上書きをしたりしなかったりで混乱しました。
なので、今回は別途音声用フォルダを用意して、ぐちゃぐちゃにならないようにします。




最後に、「VOICE.LST」を新規音声素材を読み込むように変更し…完成!



320×240で動画出力しています。
テストの利便性でKF-Aを利用してますが、
KF-Xでも音声確認済みです。
以下、特別記入ない限りテスト動画はKF-Aです。

無事、再生できたようです! まあ、ボリュームが小さいのが気になりますが…
あと、負けた方がなんか点滅してるみたい…パターン画像が一部表示されていない?
あ…LOSで使ってる画像番号72がBMP.LSTからもれてたorz
つーことは、全キャラ漏れてんのか…なかなか完璧にはいかないなあ。修正は後日で。

さて、ここまでくれば…負け音声と、ゲーム開始時の音声組み込みだけ!
いよいよ本コンテンツのメインイベントです!

回収音声リスト 最終クリップ名 適用シーン 登録用ファイル名
08-30718_はぁっ! はあっ! 02-08-30718_いやぁっ! HA?
08-31852_やあっ! 02-08-31852_やあーーっ!
11-3840-3862_うりゃー 02-11-3840-3862_うりゃー HU? 00URYAA.wav
11-29824-飛鳥先生の空手がどんなものか 02-11-29824-飛鳥先生の空手がどんなものか イントロ 03INTRO.wav
11-30214-見たか!これが飛鳥空手だ!! 02-11-30214-見たか!これが飛鳥空手だ!!(LONG)
02-11-30214-見たか!これが飛鳥空手だ!!(SHORT) WIN 02WIN.wav
11-30534-だーっ! 02-11-30534-だーっ! 必殺技系?
14-15115-飛鳥空手唯一の継承者、有明省吾だ!! 02-14-15115-飛鳥空手唯一の継承者、有明省吾だ!! イントロ2
14-22503-僕を破門してください 02-14-22503-僕を破門してください LOS 04LOS.wav
14-32698-てやー! 02-14-32698-てやー!
14-34062-いやーっ! 02-14-34062-いやーっ! 必殺技系?
15-7453-とぅーっ! 02-15-7453-ふぅっ! HU? 01HUU.wav

まず、この二つの素材をVフォルダに組み込み、VOICE.LSTも修正。



そして…ついに、今開発にて初の、MOTION.LST編集となります。
バージョン管理をしっかりしないとまずいなこれは。



MOTION.LSTの0行目は、ゲーム開始時に一番最初にアクセスする行。
ここにイントロ音声の音声番号に「3」を記入。
そして、LOS(すなわち負け)処理行の410行の音声番号に「4」を記入。
さあ、テストだ!

320×240で動画出力しています。

有明暴走…orz

何が起こっているのかというと…イントロ音声がひたすら流れまくっているのですw
実はこれ、旧バージョン開発の際にもあったのです。
どんな風にすればこの暴走を止めるのかを必死に調べたのですが、
当時は解決方法が見つかりませんでした。

どこかのサイトでKF-Aでは回避の方法があるとのコメントを見つけ、
「intro.wav」というファイルを作っておけば、開始時にそれが流れるという
その方法のままに作ってはみましたが、何かが違う…
結局そのまま放置して終わっていたのです。

ですが、今は回避の方法、というか、
正しいイントロ音声を処理できる「組み方」
を知っております。今回は初めての方が経験しやすい部分として、あえて失敗を実現しておきました。
ではどうするのか!?

・「イントロ処理」のサブルーチンを用意する
・立ちキャラ処理の分離
・他のアクションの戻り位置の一斉変更

という、MOTION処理でのプログラム的概念の導入が必要となります。
詳しくは、次のコンテンツにて紹介いたします。



<3-06-04.イントロ音声処理>

イントロ処理については、
よっとまんさんのサイトのKFXコンテンツ内の「KFX基礎的応用集」内の[ラウンド開始時演出]
にシンプルにまとめられております。手早く作りたい人はぜひご一読を。

イントロ音声処理前に、発覚した画像番号72の立ちキャラ画像組込漏れを一括処理しておきました。
一括作業はこういうとき便利なんですよねえ。確実性・短時間処理性だけは上がります。

さてさて、有明の暴走を止める飛鳥先生の気持ちになって、新たにイントロ処理を行います。
やっぱ開始前に「俺はな、クマと戦うつもりだ」とか「オラオラいくぜ!」とか言わせたいですもんねえ…
イントロ処理を行ううえで必要なのは、
・MOTION.LSTの特徴
・「COMMAND.LST」の設定
を把握すること。ここを抑えれば、誰でも作れます。

まず、MOTION.LSTというのは、前コンテンツでもさらっと触れましたが、
ゲーム開始時に行番号0から実行する
ように決まっています。そこでイントロ処理は0行で行わせたいわけですが…
そもそも、0行を実行した後、どうなるのでしょう? MOTION.LSTを見てみましょう。



4行目の項目欄に「To」という項目があります。これは、

この行のアクションを終えたら、「To」に書かれた行へ移動しろ

という命令部です。つまり、0行立ちキャラ表示アクションは、延々に0行をさまよい続けるわけです。
そりゃあ有明もひたすら同じこと言い続けるわけですわなあ…
でも、ずーっと同じ立ちポーズ表示し続けてたら何もゲームが進まないのでは?
そこで出てくるのが、「ユーザーからの入力」「アクション後の自動処理」です。
まずはユーザー入力を管理しているファイルを見ましょう。それが「COMMAND.LST」です。



ユーザーからの入力(およびKF-Xシステムの自動処理時)に、
MOTION.LSTのどのアクションへ飛ぶのか
がこのファイルにまとめられています。

まず2行目を見ましょう。「CmdNum」の「0」番目がありますね。ここを見ると
・「Command」が「n」
・「AmnNum」が「0」
・「Comment」が「STA」
となっています。これを訳すと、

ユーザー入力状態がニュートラルになったら、
(立ちキャラアクションの記載された)MOTION.LSTの0行へ移動しろ


という意味です。
「ニュートラル」な状態とは、何も押されていない、もしくは、何か押した後離した状態を意味します。

次に3行目を見ましょう。「CmdNum」の「1」番目がありますね。ここを見ると
・「Command」が「4」
・「AmnNum」が「10」
・「Comment」が「WAK-L」
となっています。これを訳すと、

ユーザーが「左」を入力したら、
(左移動アクションの記載された)MOTION.LSTの10行へ移動しろ


という意味です。
ここで、COMMAND.LSTにおける「Command」の注意事項ですが、

・246789は登録されている移動キーの『方向』の意味
(キーボードの『2』〜『9』を押すことでは無い)

・pkPKは小大パンチキック対応ボタンの意味
右側の「Std」(状態)別に3種づつあります。
「100」なら空中、「010」ならしゃがみ、「001」なら立ちでのパンチやキックです。
(キーボードの『p』『k』を押すことでは無い)

です。ご注意ください。

少し話がそれましたが、COMMAND.LSTに記載のキー入力に対応し、
対応したMOTION.LSTの行のアクションを行う
ことになっています。
なので、初めは立ちポーズでも、方向キーを押すと別行の移動アクションに
移行します。しますが…
ここで、左方向を押したときのMOTION.LSTを見てみましょう。



MOTION.LSTの10行における「To」は『-1』となっています。
これは、そのまま次の行に進む、の意味です。
なので、次に11行を実行。11行の「To」も-1なので次に進む。
さらに、次に12行を実行。12行の「To」も-1なので次に進む。
そして13行。「To」は10になっているので、また10行に。
つまり、左を押し続ける限り、ずーっと左方向に動くアクションが実行され続けます。

では、キーを離すと? 離す=ニュートラル の状態になります。
すなわち、COMMAND.LSTにおける「n」の状態の処理が行われる、要するに



MOTION.LSTの0行アクションが実行される

というわけです。
さらに、上方向のキーを押したとき、すなわち
COMMAND.LSTの「8」コマンドが入力されたとき
つまりジャンプ入力時にどうなるかを見てみましょう。



MOTION.LSTの60行アクションが実行
続いて61行実行、62行実行、63行実行、64行実行、そして、

MOTION.LSTの0行アクションが実行される

ジャンプが終わったら立ちアクションに戻る、というわけです。
他のアクションでも、最後には0行に戻るようになります。
つまり、このCOMMAND.LSTとMOTION.LSTを使い続ける限り、
必ず0行に戻り続ける展開が行われるわけです。
これより、イントロアクションを作るには、

ゲームの開始時に1度だけ参照するフロー作り

をしなければいけないというわけです。
ではどうやって作ればいいのか?
よっとまんさんのサイトや、よっとまんさん作成の飛鳥先生にも組み込まれていますが、
シンプルにまとめれば、こうです。

@MOTION.LSTの1行に、Vを9(音声無音)に戻した0行のコピーを作る
ACOMMAND.LSTのCmdNumの0番(ニュートラル)はAmnNumの0でなく1に変更
BMOTION.LST内で0行に戻るアクションは、すべて1行に戻るように変更
CMOTION.LST内に、イントロアクションを行うサブルーチンを作成
DMOTION.LSTの0行の「To」は、サブルーチンに移動するようにする
Eサブルーチン内で、イントロ音声実行
Fサブルーチンは最後に1行に戻るようにする

これでおそらく、いけるでしょう。
で、早速作成。




立ちキャラ行の複製、0行戻り部を1行戻りに変更、



そして450行にイントロ用サブルーチン作成。
行数はよっとまんさんの飛鳥先生に習い、同じ450行に。
450行と451行はまるまる0行のコピーで、V鳴らしとToの戻り値1行への修正。
さて…これでいけるはずだが、どうかな?テスト!!

320×240で動画出力しています。

おおっ! いけた… と思っていたら、
「飛鳥先生の空手が…」の声がところどころで申し訳程度に出現。なぜだorz

実はこれ、よっとまんさんのサイトにも記入があるのですが、
KF-Xのシステムの方が
MOTION.LSTの0行に勝手にアクセスしている

のです。具体的に言うと、

Pic 用途1
200 立ちガード
201 しゃがみガード
210 立ち・顔面くらい
211 しゃがみくらい
220 立ち・腹くらい
221 ぶっとび
222 バウンド1
223 バウンド2
224 ダウン
240 ジャンプ、下降中
241 ジャンプ、着地

ユーザーがMOTIONをいじれない、強制的に画像を作らなければいけないこの部分。
このアクションの後、通常アクションに復帰する際MOTION.LSTの0行に戻るようなのです。
なんという固いシステム…

しかし、よっとまんさん含む先人たちはこの点をとっくに解析しており、
このシステム強制0行戻りMOTIONをシステムから抽出していたのです。
やはり、先人たちは偉大ですなあ…
で、テンプレの如く、その抽出部分を1行戻りに書き換えたものを、
システム書き換え用コードとしてよっとまんさんのコンテンツに置いてありました。
あとは自分のキャラMOTIONへはめ込むだけ! 以下です。

-Num---To-Sp-Pic-De-Ci-V---VxRx--VyRy-C-CL-G-Da--Hit-H-Flag-Def1---------Def2---------Att1---------COMMENT
		
 100  110 -1 240  0 23 9    0 0   0 0 9 -1 0  0    0 9 0000 112060012000 000000000000 000000000000 ;JMP-FALL
110 1 2 241 0 23 9 0 1 0 0 9 -1 0 0 0 9 0001 112060012000 000000000000 000000000000 ;JMP-S-END
111 1 4 241 0 23 9 0 1 0 0 9 -1 0 0 0 9 0001 112060012000 000000000000 000000000000 ;JMP-B-END
 150    1  1 200  0 30 9    0 1   0 0 9 -1 0  0    0 9 0000 112060012000 000000000000 000000000000 ;STA-G
160 1 7 200 0 30 9 -15 1 0 0 1 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;STA-S-G
170 1 10 200 0 30 9 -30 1 0 0 1 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;STA-B-G

180 30 1 201 0 31 9 0 1 0 0 9 -1 0 0 0 9 0000 112040012000 000000000000 000000000000 ;SIT-G
190 30 7 201 0 31 9 -15 1 0 0 1 -1 0 0 0 9 0000 112040012000 000000000000 000000000000 ;SIT-S-G
200 30 10 201 0 31 9 -30 1 0 0 1 -1 0 0 0 9 0000 112040012000 000000000000 000000000000 ;SIT-B-G

210 1 10 200 0 30 9 -15 1 0 0 1 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;STA-S-G
220 1 15 200 0 30 9 -30 1 0 0 1 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;STA-B-G
 700    1  8 210  0 50 9  -20 1   0 0 9 -1 0  0    0 9 0000 112060012000 000000000000 000000000000 ;STA-FSC
710 1 12 210 0 50 9 -30 1 0 0 9 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;STA-FBC
720 1 8 220 0 50 9 -20 1 0 0 9 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;STA-BSC
730 1 12 220 0 50 9 -30 1 0 0 9 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;STA-BBC
740 1 10 210 0 50 9 -10 1 0 0 9 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;STA-JSC
750 1 15 210 0 50 9 -10 1 0 0 9 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;STA-JBC

760 1 8 211 0 51 9 -20 1 0 0 9 -1 0 0 0 9 0000 112040012000 000000000000 000000000000 ;SIT-FSC
770 1 12 211 0 51 9 -30 1 0 0 9 -1 0 0 0 9 0000 112040012000 000000000000 000000000000 ;SIT-FBC
780 1 8 211 0 51 9 -20 1 0 0 9 -1 0 0 0 9 0000 112040012000 000000000000 000000000000 ;SIT-BSC
790 1 12 211 0 51 9 -30 1 0 0 9 -1 0 0 0 9 0000 112040012000 000000000000 000000000000 ;SIT-BBC
800 1 12 211 0 51 9 -10 1 0 0 9 -1 0 0 0 9 0000 112040012000 000000000000 000000000000 ;SIT-JSC
810 1 17 211 0 51 9 -10 1 0 0 9 -1 0 0 0 9 0000 112040012000 000000000000 000000000000 ;SIT-JBC

820 -1 1 220 0 52 9 0 1 0 0 9 -1 0 0 0 9 0000 112057012000 000000000000 000000000000 ;JMP-C-KOKE
821 -1 1 221 0 52 9 -40 1 80 0 9 -1 0 0 0 9 0000 11204D012000 000000000000 000000000000 ;
822 -1 4 221 0 52 9 -40 1 0 0 9 -1 0 0 0 9 0000 11204D012000 000000000000 000000000000 ;
823 -1 4 222 0 52 9 -40 1 0 0 9 -1 0 0 0 9 0000 112033012002 000000000000 000000000000 ;
824 -1 -1 223 0 53 9 -40 1 0 0 9 -1 0 0 0 9 0000 112034012000 000000000000 000000000000 ;
825 -1 1 224 0 53 9 -40 1 0 0 9 -1 0 0 0 9 0000 11201D012000 000000000000 000000000000 ;
826 -1 1 224 0 53 9 0 1 30 0 9 -1 0 0 0 9 0000 11201E012000 000000000000 000000000000 ;
827 -1 -1 224 0 53 9 -40 1 0 0 9 -1 0 0 0 9 0000 112020012000 000000000000 000000000000 ;
828 120 6 224 0 53 9 0 1 0 0 9 -1 0 0 0 9 0000 11201E012000 000000000000 000000000000 ;

830 -1 1 220 0 52 9 0 1 0 0 9 -1 0 0 0 9 0000 112057012000 000000000000 000000000000 ;JMP-C-KAI
831 -1 1 221 0 52 9 -40 1 80 0 9 -1 0 0 0 9 0000 11204D012000 000000000000 000000000000 ;HUKU
832 -1 4 221 0 52 9 -40 1 0 0 9 -1 0 0 0 9 0000 11204D012000 000000000000 000000000000 ;
833 -1 4 222 0 52 9 -40 1 0 0 9 -1 0 0 0 9 0000 112033012002 000000000000 000000000000 ;
834 -1 -1 240 0 53 9 -40 1 0 0 9 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;
835 1 2 241 0 53 9 0 1 0 0 9 -1 0 0 0 9 0001 112060012000 000000000000 000000000000 ;

840 -1 1 220 0 53 9 0 1 0 0 9 -1 0 0 0 9 0000 112057012000 000000000000 000000000000 ;JMP-C-YOKO
841 -1 1 221 0 53 9 -120 1 80 0 9 -1 0 0 0 9 0000 11204D012000 000000000000 000000000000 ;
842 -1 4 221 0 53 9 -120 1 0 0 9 -1 0 0 0 9 0000 11204D012000 000000000000 000000000000 ;
843 -1 4 222 0 53 9 -120 1 0 0 9 -1 0 0 0 9 0000 112033012002 000000000000 000000000000 ;
844 -1 -1 223 0 53 9 -120 1 0 0 9 -1 0 0 0 9 0000 112034012000 000000000000 000000000000 ;
845 -1 1 224 0 53 9 -120 1 0 0 9 -1 0 0 0 9 0000 11201D012000 000000000000 000000000000 ;
846 120 6 224 0 53 9 -120 1 0 0 9 -1 0 0 0 9 0000 11201E012000 000000000000 000000000000 ;

850 -1 1 220 0 52 9 0 1 0 0 9 -1 0 0 0 9 0000 112057012000 000000000000 000000000000 ;JMP-COMB
851 -1 1 220 0 52 9 -20 1 200 0 9 -1 0 0 0 9 0000 11204D012000 000000000000 000000000000 ;
852 -1 -1 220 0 52 9 -20 1 0 0 9 -1 0 0 0 9 0000 112034012000 000000000000 000000000000 ;
853 120 6 224 0 53 9 0 1 30 0 9 -1 0 0 0 9 0000 11201E012000 000000000000 000000000000 ;

860 -1 1 220 0 52 9 0 1 0 0 9 -1 0 0 0 9 0000 112057012000 000000000000 000000000000 ;JMP-COMB
861 -1 1 220 0 52 9 -20 1 200 0 9 -1 0 0 0 9 0000 11204D012000 000000000000 000000000000 ;
862 -1 -1 220 0 52 9 -20 1 0 0 9 -1 0 0 0 9 0000 112034012000 000000000000 000000000000 ;
863 120 6 224 0 53 9 0 1 30 0 9 -1 0 0 0 9 0000 11201E012000 000000000000 000000000000 ;

870 -1 4 220 0 50 9 -40 1 0 0 9 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;HURAHURA
871 -1 4 210 0 50 9 -40 1 0 0 9 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;
872 -1 4 220 0 50 9 -30 1 0 0 9 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;
873 -1 4 210 0 50 9 -30 1 0 0 9 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;
874 -1 4 220 0 50 9 -20 1 0 0 9 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;
875 1 4 210 0 50 9 -20 1 0 0 9 -1 0 0 0 9 0000 112060012000 000000000000 000000000000 ;
-Num---To-Sp-Pic-De-Ci-V---VxRx--VyRy-C-CL-G-Da--Hit-H-Flag-Def1---------Def2---------Att1---------COMMENT

いやあ、結構な長さで…
これはもはや挿入というレベルではないなあ。
ここまでの部分は、全キャラと共有しておかなければ。

320×240で動画出力しています。

どうやら、ようやく綺麗に収まったようです。KF-Xでも確認済み。
これは、素人には非常に垣根高いですなあ。
理解して組み込むか、とりあえずそのままはめ込んじゃうかで、その後の開発にも影響ありそう。
ですが管理人的には、すべての謎が解けかつ実現でき、ほっとしております。
他のキャラのサウンド選定クリップとかまだやってないですが、
このバージョンのCOMMAND.LSTとMOTION.LSTは、全キャラに上書きしておきます。

さてさて、これで目標であった初期組み込み音声は終了!
イントロ部分が熱かったですが、これもクリアという感じで、スッキリです。
まあ…実際組み込んだの有明だけですがw

ついはいよいよ、仮MIDIの作成編に突入です。
さてさて、どの曲にするかな…



<3-06-05.仮MIDI作成と組み込み>

MIDIを自分で作る作業は、昔からずーっと憧れていた作業でした。
むかし、ゲーム音楽をBASICのPLAY命令で作るのがはやった時期があり、
当時まだPCを持っていなかった自分は、友人のファミリーベーシックを借りて、
PLAY命令でポチポチ曲打ってたものです。
メモリほとんど無くて、すぐ容量オーバーになったけど…
その後MSX2を購入し、すぐPLAY命令で入力するも、FM音源なる高値の音源があることに
よだれをたらしつつPSGの3重音源で我慢していたものです。

時が流れ、Win95が世にデビューし、モデム通信→ISDN→ADSLとネット回線も発展を遂げ、
ネット常時通信が当たり前になったころ、個人でサイトを運営するユーザーが増えました。
そのあたりから、PCでMIDIが出来るということが常識になりつつあったのです。

まだMP3がネットアップに一般的でなかった頃、サイトを飾る音楽の主力はMIDIでした。
ゲームやアニメなどの曲をMIDI化するMIDI職人が大量に出現し、
MIDIサイトもものすごい盛り上がりを見せていた時期があったのです。
せっかくPCに内蔵されている音源があるのに、MIDIを作成する環境がなかったことを
嘆いたこともありました。それでも、良質の有志作成MIDIがあふれていたので、
ひたすらMIDI公開サイトを巡回していたものです。

しかしその栄華も、ある時期からあっという間に廃れます。
そう、悪名高きネット版劣悪遺伝子排除法です…(あえて言いません)
あれを境に、MIDIを含め音楽系のサイトは一気に廃れました。
そもそも、オリジナル作曲をアップする人など数えるくらいしかいなく、
たいていの人が、好きな曲の耳コピアップだったのです。
それを排除する法が出てから、恐ろしく短期間でMIDIサイトは廃れました。

あれから、何年の月日がたっただろう…
PCやネットの環境は飛躍的に進歩し、ツールも充実。
予想通り、フリーでMIDIを作れる良質のツールも十分あるようです。
ああ、あと10年前にこの環境が手に入っていたら…
いや、今それを味わえることを素直に感謝しよう。


手順1:曲の選定

作成する曲は…やはりモチベの上がる曲、ということで
軽快BGM
にきめました!

どの軽快BGMだよ!! と突込みが入りますね、はいw
まあ、一番ポピュラーなやつですが、これです。

320×240で動画出力しています。

基本的には「勝利BGM」に値する曲ですが(EDアレンジの方がより勝利BGMかな)、
やはり一番人気のBGMじゃないでしょうか。最も実況で盛り上がる曲。
飛鳥先生リペイント版にもこれのMIDIが入っていましたが、やはり自分の手で作りたい…
で、着手することに決めたのです。


手順2:開発環境の用意

いろいろ調べましたが、次の二つで作成することに決めました。

@MuseScore主旋律の楽譜作成用
Aテキスト音楽「サクラ」伴奏・和音作成、コーディング用

最初に、楽譜化したくて迷わずMuseScoreを選んだのですが、楽譜縛りな制約がありすぎて
別トラックを同時に作るのに向かないし、時間もかかりすぎる。
それに比べ、サクラの方は、昔作っていたベーシックでのMMLと同じようなつくりが出来、
おまけにトラック作成や音源変更の編集のしやすさがハンパない!
昔、VGM(ビデオゲームミュージック)をベーシックで入力してた頃を思い出し、
非常にやりやすかったです。


手順3:作成の流れ

まず、耳コピしやすく採譜化が楽な「主旋律」部分のみ、MuseScoreで作りました。
やはり慣れるのにある程度時間を要しましたが、主旋律のみなら意外と楽でしたね。



しかしながら、MIDIを作成する上での和音や別トラック作成法が難解であることがわかり、
(MuseScoreは、採譜化が主目的のソフトなんですよねえ…MIDI化は準目的)
早々にサクラのほうへ移管。



これを見ただけでは分かりずらいですが、簡単に言えば、
テキストベースで音符などを書くだけでMIDIが作れるソフト
です。トラック作成も、音源選択もものすごく楽!
やはり、こっちはMIDI作成が目的のソフトなんですよね。

管理人は、音取りはMuseScoreのキーボードで拾い、コード化はサクラで、という流れでした。
サクラ使ってからは、コーディング作業速度もデバッグも飛躍的に向上しましたよ。
まあ、まず主旋律を採譜化できたのがよかったようです。

ただし、主旋律と違い他のパートドラムを拾うのは大変でした。
やはり、音楽を専門的にやってないと、そういう耳はなかなか育たないんだろうなあ…
ロジックは分かっているものの、耳コピ時代は実にウン10年ぶりなので、
合っているような合ってないような、楽器も違うようなそうでもないような、
どう考えても該当する楽器が存在してなくてガッカリ…
それでも、そんなこんなを繰り返しつつ、気がつけば形になっていました。
取り急ぎαバージョンとしての「軽快BGMのMIDI」が完成しました。

軽快BGMのMIDI(α版)

現時点ではこれくらいの出来でいいかと。
さっそく有明のBGMとして組み込んでみました。

320×240で動画出力しています。

うーん、ちょっと主旋律が強すぎるかな。ベースも少し出てくれてもいいな。
まあ、バランスは後でいくらでも調整できるし、これでキャライメージを付けられるかな。
とりいそぎ、今回のMIDIは他のキャラのBGMにも流用として上書きしました。
後日、あと2・3曲は新たなBGMを作成予定です。

それにしても、予想より早くMIDIの仮作成が出来ました。
テキスト音楽「サクラ」はかなり優秀なツールですなあ…
こうなってくると、背景も有明用のものがほしいですね。
アクションパターンに入る前に、専用背景作成を入れることにしようかな。

<KF-KBI作成 開発工程 頁4>へ   <KF-KBI作成 開発工程 頁6>へ


もどる