このサイトはMUGEN講座のサイトです。
無限高校
HOME > サイト保管庫 > 採魂の炎 > アドオン製作講座

アドオン製作講座

製作・KALさん
はじめに

  ここでは、主にADD-ONの解説を行います。
さらに限定して言うと
タイトル、キャラセレに関して書いていきたいと思っております。
その際に必要となってくるツールが出てきます。
まずは、そのツールの入手をしてください。
まずは,MUGENの基本を学びます。
ADD-ONなので画面全体を対象に考えますので
画面の広さについて理解します。
画面の広さは320×240pixです。
それで、どこが原点かといいますと、
画面の真中の一番上の部分が0,0となってます。
つまりこうです。

0,0

-160,0  ----------------+----------------- 160,0 
   |                     |
   |                     |
   |                     |
   |         +           |
   |                     |
   |                     |
   |                     |
-160,240-----------------+----------------- 160,240 

0,240

これを理解しておきましょう


  ツールの紹介

ここではADD-ONを作るために必要と思われるツールの紹介をします。

●MCM

絶対に必要となってくるのは、MCMです。
これはPCXファイルを sff に変換するためのソフトなので必ず用意してください。

  ●WinShot

これは、デスクトップ上のあらゆる画像や、窓の中の画像などをキャプチャーするソフトです。
他にもこの類のソフトはあるみたいなので、自分が最も使いやすいものをお使いください。

  ●ツァイトイメージファイルコンバータ

このソフトは、いろんな画像フォーマットをお好みのフォーマットに変えるものです。
ここでは、主に PCX への変換に使うものです。
その際に256色に減色もできます。

  ●DxPalEditor

このソフトは act ファイルや pal ファイルをいじることができます。
後で、これと同じ画像で別の色を使いたなぁ、とか
256番目の色はどこに使われてんだ、とかを調べるのに便利です。

  ●Photoshop

いわずものがのAdoveの超一流ソフト。
値段も超一流のプロ御用達のソフトで
これでできないことはあるのか?と思いたくなる程の画像処理ソフト
これは、キャラの切抜きや加工に使います。
ちなみに私は 5.0j を使ってます。
えっ、そんなの持ってないって?
私他のソフトのことわかりません・・・
でも、とにかく必要なのは、いらない部分を塗りつぶせればいいんです。
誰かいいの知りませんか・・・私に教えて・・・

sffの基本

ここでは sff の基本について書いてあります。

まず、基本的に sff とは画像のまとまったファイルだと思ってください。
一枚一枚は PCX形式 の画像です。
その画像は二次元的に配列されて sff の中にあります。
たとえば、私の ATA03 を例にとって見ると MCMで、私の sff を開いてみてください。
MCMの使い方自体は掲示板等をご利用ください。
なんか右上のほうに二種類の番号が出てます。
はじめの画像は 160 と 1 と表示されているはずです。
それが、右側に表示されている画像の位置なんです。
これは、簡単にいうと、この画像の座っている席の番号と思ってください。
前から160番目で右から1番目みたいな感じで。(小学校を思い出すなぁ)
その中で、9000番の位置は特別みたいですが、あまり気にしなくてもいいと思います。
それを後ほど、 system.def でどう表示させるかを書き込むわけです。
先生>○○くん、35Pを読んで。    生徒>はーい   みたいに(笑)
で、一通りに登録し終わったらこの sff をセーブするんですが、そのときにたまにファイルが壊れます。
その後はMCMで読み込むことができません。
つまり、バックアップをとりながら、20個程度づつ登録したほうがよいでしょう。
後で system.def を書くときに、またMCMを開くことのないようにメモもとっておいたほうがよいです。
以上が sff の基本です。

  system.defの基本

ここでは system.def について書いてあります。
system.def とは先ほどMCMで登録した画像を
どこで、何を、どんなふうに、表示させるかを書いてやるものです。
それによってタイトルの画像を表示させたり、動かしたり、アニメーションさせたりします。
まず、 system.def はエディター等で書いていきますが
特にこれといったものを用意することはありません。
ちなみに私は、 EmEditor(シェア) というものを使ってます。
フリーソフトでも十分だと思います。

まず、 system.def を開いてください。
" ; "(セミコロン) がついてるところは無視してかまいません。
セミコロン以下の行は影響しないためです。
主に、説明等が書いてあるので、英語に自身のある方は読んでみてください。

  *注

[***] 内の英語は基本的に変えるとまずいです。
しかしそれ以外は大丈夫です。
たとえば
[TitleBG kanon]
これでいうと、 TitleBG は変えられませんが、 kanon は好きに決められます。
[TitleBGdef] こんなのは変えちゃいけません。
  開いてみましたか?
一番上に
[Files]

spr = system.sff     ← 使うスプライトのファイル名
snd = system.snd     ← 使うサウンドのファイル名
fight = fight.def       ← 使う figth definition のファイル名
select = select.def     ← 使うセレクトのファイル名
font1 = font/f-4x6.fnt  ←
font2 = font/f-6x9.fnt  ← 使うフォントファイルのファイル名
font3 = font/jg.fnt     ←

とあります。
ここで基本設定が行われます。
フォントは0731では10個まで追加できたはずです。
追加の際は、
font4 = font/***.fnt
というように書き込めばよいです。(以下同じ)
まあ、タイトルとキャラセレとVS画面のみでしたら、通常は4つまであればあまるぐらいです。
このままでよいです。

  次に

[Music]

title.bgm = sound/title.mp3     ← タイトル画面に使う音楽のファイル名
select.bgm = sound/select.mp3   ← キャラセレ画面に使う音楽のファイル名
vs.bgm = sound/versus.mp3     ← VS画面に使う音楽のファイル名

これで音楽の指定が終わりです

  次はタイトル画面です。

[Title Info]

cursor.move.snd = 100,0     ← タイトル画面のカーソルの移動音の番号
cursor.done.snd = 100,1      ← タイトル画面のカーソルの決定音の番号
cancel.snd = 100,2         ← タイトル画面のカーソルのキャンセル音の番号

ここは、そのまま書いてください。

  [TitleBGdef]

bgclearcolor = 255,255,255   ←タイトルの背景の色(RGBです)
ここで [Files] で設定した以外の sff を使う場合、新たにspr = ファイル名.sff を書き込む。
これを書かない場合は system.sff を使うことになる。

  まずはアニメ処理から

[TitleBG kanon]
type = anim     ←これから指定するもののタイプ(ここではアニメーション)
actionno = 0     ←ここはsffにはいっているグループナンバーを書きます。勝手に決めてもよいですが
layerno = 0     ←表示の優先順位(高い程手前に表示されます)
start = -160,0    ←その画像の原点
mask = 0       ←透過処理 1 でON

[Begin Action 0]  ←ここではアニメするのでこの項目がいる。数字は actionno の値
0,0, 0,0, 10     ←
0,1, 0,0, 10     ←グループ,番号, x座標,y座標, フレーム数
0,2, 0,0, 10     ←
   ↓
0,20, 0,0, -1    ←ここの -1 でアニメ終了

ここで -1 以外をつければはじめに戻ってループする。
つまりここではグループナンバー0の画像を0番から20番までを10フレームづつ表示させてます。
ちなみに Begin Action * のとこの数字を1にするとキャラセレ画面での1Pのカーソルとしてでてくるみたいなので最初から別の番号でやるとよいでしょう。(2も同じ)

  次はもうちょっと簡単なアニメーションしない場合です。
仮にグループナンバー0の20番の画像を表示させるときはこうなります。

[TitleBG kanon']

type = normal   ←これから指定するもののタイプ
trans = add       ←これを書くとその画像自体が透けた感じになります(なくても可)
spriteno = 0,20   ←ここはsffにはいっている番号を書きます
layerno = 0     ←表示の優先順位(高い程手前に表示されます)
start = -160,0    ←その画像の原点
tile = 1,1        ←画像の並び
tilespacing = 660, 240  ←画像と画像の間隔
velocity = 0,0    ←その画像の動くはやさ
mask = 0       ←透過処理 1 でON

これで終わりです。

trance については他に add1 などがあります。
tile についてはそれぞれ 横,縦 のならびで、 0,0 にするとその画像1枚。
1,0 にすると横だけに並び、 0,1 にすると縦だけに並びます。
tilespacing については画像と画像の間の距離ですので間違えないように。

MUGENにおいては画面の広さが320×240なのでこれ以上の数字にすれば画面には1個だけ出てくることになります。
0,0 にすればくっつきます。
velocity = x,y で画像を流す速さを決定します。0,0 にすると動きません。
MUGENではx方向の正は右で、y方向の正は下です。その画像を流すだけで途中で速さを変えることはできません。

あとは、

[SelectBGdef]     ←セレクト画面の設定
[VersusBGdef]     ←VS画面の設定
[Option Info]      ←オプションのインフォメーション([Title Info]と同じ)
[OptionBGdef]      ←オプションの設定

の全てで同じことです。

  次にセレクト画面の基本です。

  [Select Info]
rows = 13      ←横の数
columns = 17    ←縦の数
wrapping = 1     ←1にすると右端から左端へのワープができます(上下も) 0は無効
pos = 0,0       ←キャラの小さい顔をどこからはじめるか(x座標,y座標)
cell.size = 20,20   ←小さい顔を置くスペースの広さ
cell.spacing = -1  ←小さい顔のセルの間隔(ここでは食い込んでます)
cell.bg.spr = 150,0  ←セルの背景(枠だと思ってください)
cell.bg..Scale=1,1    ←セルの背景の大きさを変えます(1,1でもとの大きさ)*
cell.random.spr = 180,0 ←ランダムセレクト時のボックスの画像*
cell.random.switchtime = 3←ランダムセレクト時のtimeここでは3フレームおきに*
p1.cursor.startcell = 0,0 ←1Pカーソルの開始位置(一番左上が0,0)
p1.cursor.active.anim = 1 ←1Pカーソルのアニメ指定(アニメしないのは下記参照)
p1.cursor..active.scale = 1,1 ←1Pのカーソルの大きさを変えます(1,1でもとの大きさ)*
p1.cursor.done.spr = 161,0 ←1Pのキャラ決定後のカーソル
p1.cursor.done.scale = 1,1 ←1Pのキャラ決定後のカーソルの大きさを変えます(1,1でもとの大きさ)*
p1.cursor.move.snd = 100,0 ←1Pカーソルを動かすときの音(変えないでください)
p1.cursor.done.snd = 100,1 ←1Pのカーソルの決定音(変えないでください)
p2.cursor.startcell = 0,16          ↓以下1Pと同じ
p2.cursor.active.anim = 2
p1.cursor..active.scale = 1,1 ←2Pのカーソルの大きさを変えます(1,1でもとの大きさ)*
p2.cursor.done.spr = 171,0
p1.cursor.done.scale = 1,1 ←1Pのキャラ決定後のカーソルの大きさを変えます(1,1でもとの大きさ)*
p2.cursor.blink = 1      *1Pとカーソルが重なったときの点滅指定
p2.cursor.move.snd = 100,0
p2.cursor.done.snd = 100,1
cancel.snd = 100,2    ←キャンセルしたときの音(変えないでください)
portrait.offset = 0,0   ←小さい顔の置く位置(通常はこのまま)
portrait.scale = 0.74,0.74  ←小さい顔のスケール(1,1で27×27pix)
title.offset = 159,13   ←タイトル画像を置く位置
title.font = -1      ←タイトルのフォント指定(-1で指定なし)
p1.face.offset = -20,60 ←1Pの大きい顔を置く位置(ここでは左側が20pix切れます)
p1.face.scale = 0.74,0.74 ←1Pの大きい顔のスケール(1,1でもとの大きさ)
p2.face.offset = 339,60    ←1Pと同じ
p2.face.scale = 0.74,0.74    ←
p1.name.offset = 10,162   ←1PのNAME開始位置
p1.name.font = 3,4,1      ←1PNAMEのフォント指定
p2.name.offset = 309,162   ←1Pと同じ
p2.name.font = 3,1,-1     ←
stage.pos = 160,237      ←ステージを置く位置(ここでは下に少しの隙間)
stage.active.font = 3,0,0    ←ステージで使うフォントの指定
stage.active2.font = 3,2,0   ←その2
stage.done.font = 3,0,0     ステージ終了後のフォント指定

  [begin action 1]   ←1Pカーソルのアニメ処理
160,0,0,0,1      アニメ指定をしなければ必要なし
160,0,0,0,1
   ↓
160,1,0,0,1
160,1,0,0,1

[begin action 2]   ←2Pカーソルのアニメ処理
170,0,0,0,1      アニメ指定をしなければ必要なし
170,0,0,0,1
   ↓
170,0,0,0,1
170,0,0,0,1
カーソルのアニメ指定をしないのであれば
p1.cursor.active.anim = 1  のところを
p1.cursor.active.spr = 160,0 こうすれば 160,0 の画像を表示するだけ

  次はVS画面の基本です。

[VS Screen]
time = 150       ←VS画面の表示時間
p1.pos = -20,60    ←1Pの大きい顔を置く位置(ここでは左が20pix切れてます)
p2.pos = 339,60    ←2Pの大きい顔を置く位置(ここでは右が20pix切れてます)
p1.name.pos = 78,190  ←1PのNAMEを置く位置
p1.name.font = 3,0,0   ←1PのNAMEのフォント指定
p2.name.pos = 241,190 ←2PのNAMEを置く位置
p2.name.font = 3,0,0   ←2PのNAMEのフォント指定
上記の p2.pos = 339,60 においてこれでなぜ20pixのずれかというと
基本的にMUGENにおいて2Pとは1Pの反転でしかないためです
画像が反転してるのに実際に置く画面は反転していないため1pixのずれが出ます

  さあ,いよいよ最後です

アーケードモードのクリア後です

[Win Screen]
wintext.text = Congratulations!   ←クリア後の画面に出す文字
wintext.font = 4,0,0           ←上記の文字に使うフォントの指定
wintext.offset = 159,70         ←上記の文字を置く位置
wintext.displaytime = -1       ←クリア画面の表示時間
wintext.layerno = 2    ←上記の文字の表示の優先順位(数値の高いほど手前に表示)
fadein.time = 32      ←フェードインする時の時間の長さ
pose.time = 300      ←キャラの勝ちポーズをとる時間
fadeout.time = 64     ←フェードアウトする時の時間の長さ

*は0731以降のものです。

さあ,これでやっとsystem.defの基本が終わりです
逆にいうとこれさえ見ればADD-ONの変更は思いのままになるわけです
がんばってみてくれた人は,きっとすぐにマスターできるでしょう

sffにする

ここではMCMを使ってsffにします
MCMの使い方についてはムゲン道場のほうで詳しく解説されているのでそちらを参考にしてください

先ほどの要領で用意された画像をsffに登録していきます
sffに登録していくときに問題になってくるのがその画像の番号でしょうが,これは自分のわかりやすい番号をつけてもさして問題はないでしょう
私のATAを参考にしてみてください
MCMで私のATAのsffを読み込んで一緒にdefファイルもひろげ
どの画像がどこでどう使われているかを認識してください
それがわかれば私のATAを少しづつ改造してみてください
ただし、改造されるときは、KALの掲示板にてご一報を
あとは、なれの問題で進みが速くなっていくでしょう

system.defを書いてみる

まずはsystem.defの基本で学んでください

system.def では書かなければならないことことだけ書けば大丈夫です
無理にアニメーションさせることはないでしょう

[Files]

[Music]

[Title Info]

[TitleBGdef]

[Select Info]

[SelectBGdef]

[VersusBGdef]

[VS Screen]

[Win Screen]

[Option Info]

[OptionBGdef]

これらのどれが抜けてもだめです
まずは簡単に1枚づつ画像を貼り付けて試してください
それができたら、簡単なアニメ処理をしてみればよいです
これについてもKALのATAを参考にいじり倒せばよいです
それも改造されるときには掲示板にご一報を

fight.defの基本

次にくるのは、fight.defです
これは、ライフバーやパワーバーなど
戦っているときに使われる部分の項目です
まずくるのは、system.defにもでてきた、お約束の

[Files]

です
ここは初期設定なので間違えないように書きましょう
system.defの基本参照
ここからがfight.defの内容になります
基本的に1対1のときとチームバトルのときの2種類分が必要です

  ライフバーの設定です

基本的にライフバーは3つの画像が重なっています

@ゲージ
Aコンボのときに残っている(たいていのゲームでは)赤いゲージ
Bライフバーの本体(枠)
これらですが、別に@だけでも良いです
Aも無理に設定することはありません

[Lifebar]

;Player 1
p1.pos = 140,12   ←画像の位置を決めます
p1.bg0.anim = 10   ←ライフバーの後ろにくる背景です(ここではアニメ処理しています)
p1.bg1.spr = 11,0    ←Bの画像の指定
p1.mid.spr = 12,0    ←Aの画像の指定
p1.front.spr = 13,0    ←@の画像の指定
p1.range.x = 0,-127   ←ゲージの長さ*
;Player 2
p2.pos = 178,12   ←以下1Pと同じ
p2.bg0.anim = 10   ←
p2.bg0.facing = -1   ←1Pで使われている画像を反転して使います(別の画像を使っても可)
p2.bg1.spr = 11,0   ←
p2.bg1.facing = -1   ←
p2.mid.spr = 12,0   ←
p2.mid.facing = -1    ←
p2.front.spr = 13,0   ←
p2.front.facing = -1   ←
p2.range.x = 0,127   ←*

[Begin Action 10] ;Darkened lifebar background
10,0, 0,0, 1, , S    ←アニメ処理
*これはゲージの長さとともにそのゲージの伸びる向きの指定もしています
マイナスで左向きにゲージが伸びます

  次にチームバトルでのライフバーです

[Team Lifebar]
;Player 1
p1.pos = 140,12   ←画像の置く位置
p1.bg0.anim = 20   ←ライフバーの後ろにくる背景です(ここではアニメ処理しています)
p1.bg1.spr = 21,0   ←Bの画像の指定
p1.mid.offset = 0,-1   ←Aの画像を置く位置
p1.mid.spr = 22,0   ←Aの画像の指定
p1.front.offset = 0,-1   ←@の画像を置く位置
p1.front.spr = 23,0   ←@の画像の指定
p1.range.x = 0,-127   ←
;Player 2
p2.pos = 178,12   ←以下1Pと同じ
p2.bg0.anim = 20   ←
p2.bg0.facing = -1   ←1Pで使われている画像を反転して使います(別の画像を使っても可)
p2.bg1.spr = 21,0   ←
p2.bg1.facing = -1   ←
p2.mid.offset = 0,-1   ←
p2.mid.spr = 22,0   ←
p2.mid.facing = -1   ←
p2.front.offset = 0,-1   ←
p2.front.spr = 23,0    ←
p2.front.facing = -1   ←
p2.range.x = 0,127    ←
;Player 3(1Pのパートナー)
p3.pos = 140,15   ←画像の置く位置
p3.mid.spr = 22,0   ←Aの画像の指定
p3.front.spr = 23,0   ←@の画像の指定
p3.range.x = 0,-127   ←ゲージの長さ
;Player 4(1Pのパートナー)
p4.pos = 178,15   ←画像の置く位置
p4.mid.spr = 22,0   ←Aの画像の指定
p4.mid.facing = -1   ←1Pで使われている画像を反転して使います(別の画像を使っても可)
p4.front.spr = 23,0   ←@の画像の指定
p4.front.facing = -1   ←
p4.range.x = 0,127   ←ゲージの長さ

[Begin Action 20] ;Darkened lifebar background (team)
20,0, 0,0, 1, , S   ←アニメ指定

別に3P,4Pでも別のライフバーを用意してもいいです

  同居可能について

同居可能なのは単にMUGENのオプションです
自分で製作したファイルを適当な名前(abc)を付けたフォルダに入れて
dataフォルダの中に入れます
その後にエディター等で

mugen -r フォルダ名(abc)

と書いて ***.bat として保存するだけです

***.bat をMUGEN本体があるフォルダにいれて完成です
ただそれだけです

end

戻る



このサイトについて  サイトマップ
copyright(C)not. All Rights Reserved pakuri ha jikosekininnde onegaisimasu.