Profile

アメリ

Author:アメリ
キャラ紹介

line
カテゴリ
AIR (1)
Pos (1)
Var (1)
FAQ (1)
line
不許カウンター
line
最新記事
line
最新コメント
line
最新トラックバック
line
月別アーカイブ
line
sub_line
カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
line
検索フォーム
line
リンク
line
RSSリンクの表示
line
QRコード
QR
line
ブロとも申請フォーム

この人とブロともになる

line
sub_line
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
line
Localcoord4:3 から変更されると fall.yvelocityyaccelデフォルト値が変更した幅で再計算される為、数値で指定していないと浮き上がりが変化すると言うのがあります。

ですので通常は
fall.yvelocity=-4.5
yaccel=.35

を記述する必要がありますが、手作業で全てやったら面倒ですよね。

それを D&D でやってくれるツールが出来た様です。

http://www.nicovideo.jp/watch/sm24288522



安全だとは思いますが使う際は一応注意しましょう。


単にフォルダ内のファイルの一括置換であれば秀丸、サクラエディタ、Notepad++等のテキストエディタで出来るのでそちらを覚えれば他の作業にも応用できます。

また、一括ワイド対応 の記事では repl_ace と言う置換専用ソフトを紹介しましたのでそちらを使うのも良いですが、1個2個の置換であればテキストエディタの付属機能の方が手軽で十分なので知らない方は使ってみる事をお勧めします。大体のソフトは編集か検索メニューにあるので探して見ましょう。


スポンサーサイト
line
分かりやすい説明があると良いかなと思い、画像付きで新たに書きました。
読み終わったら左のメニューの localcoord(4) から他の記事も見て下さい。

400, 1200, 4800 キャラクターを登録できる mugen1-4800 を欲しい方は保管庫へどうぞ。
mugen1-4800 には本体付属のスクリーンパックを 640x480 用に変更した物も入っています(通常は使いません、D4ライフバー用です)。必要な .sff (画像ファイル)は本体付属のを使うので mugen1 フォルダからコピーしてください。

最初に注意すべき点
 winmugen のキャラをワイド画面に表示させても本来見える範囲が見切れる事はありません、見切れる様な場合は Locallcoord を設定していないか設定を間違えています。最初は画面の大きさを mugen.cfg640, 480 にしましょう。一覧は一括ワイド対応本体設定にあります。
 4:3 から x:y の比率の画面サイズに変更するには画面の幅を GameWidth 画面の高さを GameHeight とすると、
GameWidth = GameHeight * x / y
となります。最終的な画面の横幅は偶数の幅にしましょう。
 製作する方は GameWidth, GameHeight を使いましょう。それと Hitdef の項目に書かれている fall.yvelocity = -4.5yaccel = .35 を設定しておきましょう。

前置き
 MUGEN1.0 では画面幅が 4:3 固定ではなくなりました。1ドット単位で変更できます。その都合でキャラクターやステージ、そしてライフバーが拡大処理される事になりました。しかし、画面に対してぴったり拡大される訳ではありません。
 拡大処理に際して、画面の幅とキャラクターの拡大率を計算する為に localcoord と言う数値が追加されました。また、画面幅は GameWidth で取得できるようになり、高さも同様に GameHeight で取得できるようになりました。つまり、これらを使って作成してくださいと言う事です。
 localcoordその物から見た画面の大きさです。画面幅がどうなっていようと設定された値で計算して表示されます。画面幅は縦横共に1ドット単位で変更できる為、localcoord と画面の比率(GameWidth, GameHeight)が異なる場合は画面に合わせて拡大縮小されます。
 実際の処理については、GameWidth のみ参照して拡大されます。よって GameHeight を無視して拡大される、と言う事です。但し、ステージやライフバーは localcoordGameHeight で表示範囲が決まります。キャラクターも設定だけはしっかりしておきましょう。
 MUGEN 1.1βではステージの localcoord によってステージの幅が画面に対して縦にも合うようになりました。その為、16:9 の本体設定4:3 のステージを左右の足りない分が黒くなった状態で表示されます。今までより自然な対応・・・なのでしょうか。要するに、異なる localcoord のステージが混在していても表示範囲はステージの localcoord に依存して画面からはみ出さない様になった為、大丈夫になりました。

 localcoord の設定は、localcoord = GameWidth, GameHeight と記述します。省略すると localcoord = 320, 240 になります。これは、 4:3 となります。省略しないでください。localcoordwinmugen 用のキャラクターに書いても特に問題は起きませんがどうせ互換モードで動かすでしょうし不要です。



MUGEN 1.0 での説明になります


拡大処理 4:3
 先ずは、キャラクターを作る前に実際にどの様にして拡大処理されているかを知っておきましょう。

 最初に、winmugen の標準的な D0 キャラクターを例にして説明します。一応、次の値が設定されている物とします。

;// mugen.cfg (画面)
[]
GameWidth = 640
GameHeight = 480

;// system.def (ライフバーは D0 (320, 240) で制作)
[Info]
localcoord = 320, 240

;// kfm.def (キャラクター)
[Info]
localcoord = 320, 240

;// stage.def (ステージ)
[StageInfo]
localcoord = 320, 240


 localcoord に関しては、省略すると上記の値(320, 240)になります。この場合、どの様に表示されるかと言うと次のようになります。
 
画面が 640, 480 で描画されます。
ライフバーは 320, 240 ですが GameWidth しか参照しない為、640/320 = 2 でそれぞれ 2 倍されます。
キャラクターは、 320, 240 ですが GameWidth しか参照しない為、640/320 = 2 でそれぞれ 2 倍されます。
ステージは 320, 240 ですが GameWidth しか参照しない為、640/320 = 2 でそれぞれ 2 倍されます。

 さてこれだとそのまま 2倍 されただけで今までと特に変わりません。これはそれぞれの画面の比率の設定が全て同じだからです。


拡大処理 16:9
 それでは次に 16:9 の画面を例にして見てみましょう。簡単に、画面の大きさだけ変更してみます。


;// mugen.cfg (画面)
[]
GameWidth = 854
GameHeight = 480

;// system.def (ライフバーは D0 (320, 240) で制作)
[Info]
localcoord = 320, 240

;// kfm.def (キャラクター)
[Info]
localcoord = 320, 240

;// stage.def (ステージ)
[StageInfo]
localcoord = 320, 240


 GameWidth854 になりました。これは 16:9 の画面です。この場合、どの様になるかというと、

画面が 854, 480 で描画されます。
ライフバーは 320, 240 ですが GameWidth しか参照しない為、854/320 = 2.67… でそれぞれ 2.67… 倍されます。
キャラクターは、 320, 240 ですが GameWidth しか参照しない為、854/320 = 2.67… でそれぞれ 2.67… 倍されます。
ステージは 320, 240 ですが GameWidth しか参照しない為、854/320 = 2.67… でそれぞれ 2.67… 倍されます。



 違いがわかりましたか。localcoordmugen.cfgGameHeight の比率は 2 倍のままですが、2.67… 倍されました。実際に画面を見るとわかりますが、表示される範囲が画面の外側に出てしまいました4:3 よりも横長にすると、キャラクターが大きく表示されているのがわかると思います。
 逆に言えば、キャラクターやステージが横幅に合わせて拡大されたので、画面にちょうど収まったとも言えます。しかしこれでは横長になったのではなく、例えば上を切って横に長く見せたのと変わりません。多くの人がやりたい事はこれではありませんよね。

 問題になるのはどこを基準に描画されるかと言う事で、ステージであれば画面下中央(だったかな?)、キャラクターであればステージの基準線、背景画像は画面端や中央の上下いずれか、と言った具合で物によって表示位置の基準が違うので見切れる部分が変わってきます。下に表示しているパワーゲージ等の Explod が画面下に行って消える、見えなくなったりします。これが、localcoord を"思惑通り"に設定しないで表示した場合になります。勿論こういう表示をさせたい場合はこれで正しいですが。

 と言う訳で、次は正しい設定の仕方を学びます。

 
localcoord の設定
 さてそれではキャラクターの大きさをそのままで画面を横に広くしたい場合、例として 16:9 にしたい場合はどうすれば良いかと言うと、localcoord = 426, 240 に設定しなければなりません。正確には 426.66… なのですが、427 だと画面の真ん中が出来てしまうので 426 にしました。(画面の大きさは 854,480 です)
 こうすると比率が 16:9 同士になるので、画面の大きさに合わせてキャラクターを拡大した際に縦横がちょうど画面に収まります。画面の大きさは自由に変更出来るので 8:3 の画面にする事も出来ます、その際には localcoord = 640, 240 にすると良いでしょう。注意点としてこの設定をしたキャラクター等を4:3で表示させると逆に小さくなります。何故そうなるか考えてみてください。



 上の図の様に、localcoord16:9 の比率の物を 16:9 の画面に合わせようとするので画面にぴったり合います。localcoord は本来その物が置かれている画面の大きさを意味するので、localcoord を変更する事で画面に対する拡大率を自由に設定できます。


 さて、localcoord.def に書きます。つまり、画面の比率に対応した .def を作る必要があると言う事です。キャラクター、ステージ、ライフバーが対象となりますが、ステージは数が多いでしょうし修正がひとつひとつ確認しながらになりとても面倒なので、localcoord は変更せず拡大させて表示させると良いでしょう。ライフバーは一つしか使いませんので(ポートレートだけ)少し修正して他は拡大表示させるか、一時間もあれば全て修正できるので綺麗にすると良いと思います。キャラクターは拡大されてしまっては変なので、.def ファイルを別に作る必要があります。画面の大きさは mugen.cfg で設定するので、 MUGEN 本体を別に作って .def の写しを名前を変えて(char16x9.def、等)使うと言うのが良いでしょう。

 .def の一括修正については localcoord = 426, 240 ワイド対応(4:3,15:9,16:9 mugen 1.0) の記事に書いてあります。テキスト修正ソフトを使って xml の設定を読み込んで一括処理し、名前を変更したら、テキスト修正ソフトが自動的に取ったバックアップを元の場所に戻すと言った具合です。

 簡単に言えばキャラクターの .def ファイルを写して localcoord を書き足せば、後は本体を用意するだけです。既存のキャラクターを使うにはたったこれだけで済みます。


制作する際にやっておくべき事
 画面比率別に .def ファイルを作る事です。最初から作っておけば使う人に易しいです。作るべき .def

localcoord = 320, 240    ;  4:3
localcoord = 426, 240    ; 16:9

以上の 2 つです。私は 15:9 (400,240) は必要ないと思いますが 需要があるようなので作っておくと良いと思います。
対象となるのはキャラクター、ステージ、ライフバーです。

 ファイル名は、4:3 のを char.def とすると、char16x9.def と言うのが良いと思います。

 ステージは作ると大変なので localcoord = 320, 240 のままでも良いと思います。私が localcoord = 426, 240 にする際に行った方法は画像をループさせて端を小さくすると言う手法です。横長になるので壁が遠くなりすぎないように横に広がった分を引きます。具体的には 70~100 程度 boundleft, boundright を狭めれば良いと思います。一枚画像には tile = 1,0window = 0,0,854,480 とするだけです。

 ライフバーは変更が比較的簡単なのですが、スクリーンパックに合わせないといけなくなるのでスクリーンパックを調べて作ると良いと思います。1280,720640, 480 (854, 480) が多いと思います。まずは 4:3 で作り 16:9 でどう表示させるか考えましょう。4:3 のまま拡大させてポトレを縮小するだけでも良いですし、大きさがそのままになるように修正して左右を空けるのも手です。
 推奨は、854x4801708x960 です。ワイドサイズで作ると 4:3 にした時に縦が伸びるので問題になりません。854, 1708 と数字が倍になっていないのは計算するとそうなるからです。480/9 はぴったりの値にはならないのでその都度計算しましょう。ちなみに 852 のが近いですが見た目のずれの都合で 854 にしました。他の解像度との兼ね合いや動画や拡大の都合がありますし。

 4:3 の画面に対して localcoord = 400, 300 に設定してる方が居るようですが、これは画面の幅が 400, 300 の所にキャラクターを置いている事になります。これを kfm に設定して 640x480 の画面に表示させると 1.6 倍されるので本来の大きさ (2倍) より小さくなります。この設定でちゃんと表示出来るキャラクターは元のゲーム画面が 400x300整数倍(普通は。)であるはずです。winmugen で作ったキャラクターであればそもそも 320, 240 以外は間違いですので気をつけましょう。デフォルト値は 320, 240 です。


高解像度キャラクターの作成
 localcoord640, 480 で作成すると D4 キャラクター相当となります。相当と言うのは D4 と言う概念は特に無い為です。ただし scale = 1, 1 になるので画像の扱いが変わってくるのと winmugen では大きさが倍になってしまう為そのままでは使えません。MUGEN1.0 以降の専用キャラクターとなります。その為、D4 として localcoord = 320, 240scale = 0.5, 0.5 作成して使った方が、互換性としては良かったりはします。
 高解像度にする利点は次の通りで、ポートレートを綺麗に出来る、ヒットスパークを綺麗に出来る、と言った所です。解像度に依存する物が綺麗になるのが利点です。是非やってみてください。

小ポトレです。100x100

 localcoord = 1280, 960 のキャラクターの記事


最後に
 localcoord縦横ちゃんと数値を書いて下さい。省略すると正常に動かない事があります。


以上です。
line
キャラクター、ステージ作成について(ライフバーとスクリーンパックは一緒にする必要があります)

もっと分かりやすい説明を作ったので、先ずは次のリンク先から読んで下さい。そしたら戻ってきて下さい。
 MUGEN1.0 GameWidth 画面幅(ワイド)と Localcoord について 16:9 15:9 4:3の記事。

・localcoord
 対象から見た画面の大きさを指定する項目で、localcoord = 横幅, 高さ ;と指定します。.def に記載します。winmugen のキャラクターは D0, D4 に関わらず localcoord = 320, 240 固定です。MUGEN 1.0 では標準の画面の大きさが 1280, 720になっていてこれだと大体 3倍の大きさで表示されています。
 この画面でキャラクターを作ろうとすると localcoord = 1280, 720 になり、winmugen のキャラクターと比べるととても綺麗になります。しかしこれだと横 4倍の縦が 3倍になるので、私が推奨する値scale = 1, 1localcoord = 320, 240 / 640, 480 / 1280, 960 です。ワイド画面に対応させるには localcoordWidth だけ書き換えればよいので、4:3 で作成して .def を複数用意するのが基本となります。工夫するとブログの一番上の超横長画像や下の画像の様に好きな大きさで遊べます。下に続きます。

1280----960










 そして、localcoord = 1280, 960 で作成したキャラクターの動画



キャラクターの記事


・localcoord の設定
 system.def, char.def, stage.def にあります。画面に合わせて勝手に拡大処理されるので比率さえ合っていれば表示は変わりません。よって、4:3 用とか 16:9 用とかで .def を作る必要が出てきます。画面の大きさは mugen.cfg で決定する為、本体を 4:3 / 16:9 と別々に用意しておくと楽です。これに複数本体でのキャラクターの共有を行っておけば、本体を増やして新しい画面ですぐ使える状態になります。
 但し、system.deflocalcoordライフバー (fight.def)localcoord となる為、ライフバーは複数種類作っておかないとsystem.defに合わせられなくなって小さく表示されたりしてしまいます。ワイドになるとライフバーそのまま拡大されるか画面に合わせて修正する必要が出てくるので、ライフバーだけ制作する場合は幾つか (4:3 と 16:9) を作らないと綺麗に見えない事があります。

 画面幅を変えた際の localcoord を求める計算式は、
求める比率の localcoord Width = 元の localcoord Width * 3 / 4 * GameWidth / GameHeight
です。 4:3 から 16:9 だと横幅が 4/3 倍になります。横で調整するので縦は変えません。キャラクターに限り縦の値は読まないのですが、キャラクターの動く画面幅がわかる様にちゃんと設定をしましょう。縦で調整したい場合はこの限りではありません。
 キャラクターから見た横幅を広げただけなので、その比率の画面で表示させると元と同じ大きさで表示されます。忘れやすいですが、ステージも同様に変更する必要があります。


・4:3 以外の .def の用意
 .def の名前に困ると思いますが、localcoord = 320, 240 のキャラクターであれば localcoord = 426, 240 になると思います。よって char.def であれば char-426.def にしましょう。Elecbyte の char/kfm と stages/kfm の方式は横はそのままで縦を削って合わせているのでちょっと違います、それと見やすさを考えて命名を別にしたと言う訳です。本当は 426.66666…なのですが、元々が 320 なのと、画面あわせをした結果 426 のが良いと言う事になりました。427 だと真ん中が発生してしまうので好ましくありません。
 localcoord = 1280, 960 のキャラクターの場合は localcoord = 1706, 960 になると思いますが、長くなるのと細かい値なので char-16x9.def にしましょう。2種類になってしまいましたが、後者の方が統一されるので良さそうですね。


・left, right, GameWidth, GameHeight, yaccel, fall.yvelocity
 さて、あなたのキャラクターはこの値を使っているでしょうか?Explod が無いとか攻撃が存在しないとかではない場合で使っていないのであれば、恐らくそのキャラクターはちゃんと作られていないでしょう。そんな事は無いと思うかも知れませんが使っていないと言う事はそう言う事になります。
 left, rightExplod に使いますが、向きで言うと1P側は left で 2P側の場合は right になります。左、右なのですからどう考えてもそうですよね。もしも left 片方でやっている場合は GameWidth が必須になるので GameWidth を使っていない場合は表示がずれる可能性が出てきます。left, right で表示させている場合は winmugen のキャラクターでさえ問題は起きません。大抵の場合は画面の幅はそもそも関係ありませんからね。ちなみに私は理由があって p1 で表示させています。
 GameWidth, GameHeightExplod に付ける必要がありますが、GameWidth を使う事はあまりありません。GameHeight は下に表示する様な物に対してはあると良いと思いますが、縦幅が縮まると言うのは localcoord の設定を間違える以外だと考えにくいです。寧ろ縦幅は広がる可能性があります。入れておいて損はないので入れておくと良いと思います。GameWidthwinmugen での互換処理を作ってあるのでどうしても winmugen キャラにしたい場合は記事を見て使ってみて下さい。
 yaccel, fall.yvelocity は罠的な扱いで、これらは velocity にも関わらず、kfm の基本的な攻撃に設定されていません。その為、殆どの人が設定しておらず画面の大きさが変わった際に velocity が変わってしまうと言った具合になっています。他の値に関しても同じ事が言えますが、他の値は省略されている事はまずないのとground の値が air や guard に適用されるので大抵は問題が起こりません。よって、単に書いて無いので問題となります。winmugen では画面の比率が固定で初期値が 0 ではないので問題が発生しなかっただけなのです。Hitdef (Projectile) 全てに設定しましょう。初期値は
yaccel = .35
fall.yvelocity = -4.5

です。これを Hitdef の終わりにペタッと貼り付けましょう。
 以上になります。今挙げた項目は確認しましょう。


・一括変更
 画面比率を変えたいなと思った時に、localcoord だけ修正したファイルを一括で追加する方法です。
>> localcoord = 426, 240 ワイド対応(4:3,15:9,16:9 mugen 1.0)の記事
読むと難しい様に見えるかも知れませんが、バックアップが取れるので便利です。


不具合が発生しない様に全部小文字で書きましょう。
line
一括ワイド対応、一括localcoord変換変更 は少し下に書いてあります。
Explod以外のワイド対応が一括で出来る様になりました
(1280, 720 の部分は 1440, 960 をワイドにした時の 1708, 960 か 1920, 1080 と読むとよいと思います)


この記事はソフトを使った一括変更について記載してあります。前半の localcoord についての説明は
もっと分かりやすい説明を作ったので、先ずは次のリンク先から読んで下さい。そしたら戻ってきて下さい。
 MUGEN1.0 GameWidth 画面幅(ワイド)と Localcoord について 16:9 15:9 4:3の記事。

 画面サイズ変更については「手順4」か左のメニューから本体設定を見て下さい。まずは winmugen と同じ 640,480 にしましょう。


・前置き
 本頁で説明する事はlocalcoordの設定方法です。実際の作業は一括対応の所からになります。
それと画面の高さが変わらない自然なワイド化の方法を説明していきます。localcoordの設定を理解すれば何に合わせるかと言うだけの事で、1.0対応キャラであれば好きな様に遊べる様になるのでしっかり理解しましょう。
 追記
Hitdef(Projectile)には yaccel = .35fall.yvelocity = -4.5 を追加しないと横に伸ばした際に縦に良く飛ぶ様になります。設定してあれば良いので既に設定されている値がある部分はそのままで大丈夫です。
 これは恐らく4:3基準で全て計算しているからこうなっているのだと思います。実際にキャラクターのlocalcoordは縦の数値を読んでいませんので。画面との比率だけの対応をしてくれると良いのですが。

 これから説明する方法は一般的な4:3と16:9画面だと重ねた場合にキャラクターが重なります。
1280----960

ワイド画面を見ていると4:3の画面に移った時に縦長に見えたりします。と言うか狭いですよ。よく見るとわかりますがステージも4:3と同様に表示されています。ライフバーは面倒なのでポトレを合わせました。






・localcoord
 localcoordsystem.defchar.defstage.defにあり、それぞれが想定しているGameWidth, GameHeightを記載してそこからmugen.cfgのGameWidth, GameHeightに対して拡大縮小を行います(キャラクターは横幅のみ参照)。winmugenのキャラクターはlocalcoord = 320, 240 ですがlocalcoord = 426, 240にすると横幅1280の画面の時には1280/426 = 約3.0倍に拡大されるので縦が240*3 = 720となり1280x720のワイド画面にほぼぴったり合います。

・スクリーンパック、作業ファイル
 mugen1-4800と言うのを保管庫においたので使ってみて下さい。
 一括作業時に中身のxmlが必要になります。
 複数本体でのキャラクターの共有を行って下さい。


・ちょっと古い解説(screenpack,lifebarとkfm720以外は320,240のwinmugenの物とします)
 mugen.cfgGameWidth = 1280; GameHeight = 720にしてkfm720を表示させても横幅が広がった分拡大されているだけで4:3のままで縦が短くなってワイドにはなっていないと思います。これは、キャラクターの設定がlocalcoord = 1280, 720にも関わらず、localcoord = 320, 240のステージと既存のキャラクターに合わせて縦横4倍で作られている為localcoordの仕組み上4:3向けのキャラクターになっているからです(と言う事も出来ます)。
 画面を16:9にして16:9用のキャラクターと4:3用のキャラクターとステージを一緒に表示させると4:3のキャラクターとステージが横幅に合わせて拡大されて表示されると言うのは何か変ですよね。画面が横に広がったのにキャラクターから見た横幅は広がらずに縦が短くなったのでは納得出来るとは言い難いです(勿論そう言う方式はあります)。kfm720を960x720(4:3)の画面のキャラと同じ大きさでワイド画面に表示させようとすると、キャラクターはlocalcoord = 1706, 960にするのが正解でこれだとステージはlocalcoord = 426, 240となります。この設定にすると横が長くなった画面になります。
 キャラクターのlocalcoordは画面比率を4:3に合わせてから横幅が足りない分拡大する事になっていて、ドットの縦横比を1:1に保つ為に横幅に合わせて拡大されるだけで縦幅は考慮されません。ステージは設定したlocalcoordの縦横を画面に合わせるので縦と横を自由に変更する事が出来ます。システム(スクリーンパック)のlocalcoordは単に画面の広さを決めるだけですが、ライフバーがこの大きさで使用される為システムとライフバーの想定している画面の広さが一緒でないと(特に横幅)小さくなったり画面からはみ出たりしてしまいます。
 よって、キャラクター、ステージ、システムのlocalcoordを適切に設定すればその様に表示されるだけなので縦にも横にも合わせられて好きな様に表示出来るのです。但しキャラクターはGameWidthが変更されても良い様に作ってある必要があります。ですので間違っている方法と言うのは存在せず、どの様に使いたいかと言うのが重要になります。
 制作は、可能であればlocalcoord = 1440, 1080で作っても大丈夫です。これで以前の縦横それぞれ4倍以上の解像度になり、ポートレートを超綺麗に出来ます。スクリーンパックとライフバーはlocalcoordが同じでないと意図した表示にならないので一緒に作りましょう。


・ノーマルスクリーン(4:3)用キャラクター、ステージのワイドスクリーン(16:9)対応
 ワイド対応(4:3から16:9)はワイド用の本体を用意してワイド用のキャラクターとステージを登録するだけです。
ちなみにlocalcoord = 400, 24015:9です。これは、既存の説明だとキャラクター以外は変更していないので整合性が取れていませんでした。またlocalcoord = 400, 300と言うのはキャラクターの想定している画面が400, 300であると言う事なので、localcoord = 320, 240で作られたキャラクターに対する15:9への変更の表示としては殆ど場合は正しく無いと思います。その為、本頁の説明を理解し適切に対処する必要があります。localcoord = 426と言う横幅しか書かない書き方は駄目です。横幅だけだと16:9なのか4:3なのかは作った人次第なので確実には判断できませんし(判断できるとしても単に確率が高い事と思いこみでしょう)、ステージやシステムは縦幅も必須でlocalcoordを使ってMUGEN1.0対応を謳っているのですから縦幅も書きましょう。今後ちゃんと値を読む様になったら高さ0で表示されないかも知れませんし、そんな可能性を残しておくのは良いとは言えません。


・localcoord
 localcoordはそのキャラクターが依存する画面の大きさです。winmugenでは320,240固定で通常だと640x480の画面で表示していると思うので倍に拡大されています。D4キャラは0.5倍にして2倍に拡大しているので綺麗な訳です。
 さて、mugen1.0では画面の大きさが標準で1280x720なのでもしwinmugenのキャラクターを使おうとすると大きさが合いません。4:3から16:9にすれば良いだけなのですが、その時の基準がlocalcoordとなります。
 これにより、違う大きさのキャラクターもlocalcoordの書き換えだけで合わせる事が可能になりました(表示の調整をGameWidthやGameHeightで行う必要があります)。勿論、1.0のキャラクターも書き換えないと大きさが合いません。
 また、winmugenのキャラクターもmugen1.0になってからlocalcoordを追加するだけで大丈夫になりました!但し、幾つか注意点があるのでこれからその方法を説明していきたいと思います。

・命名規則
 命名規則はchar-width.defです。-が無いと凄く見づらいのとステージは変な名前が多いのでこうしました。縦長画面は存在しませんが、charwidthxheight.defと言うのが良さそうです。基本的に4:3のキャラクターには何もつけない様にすればそれ以外のキャラクターがわかります。320,240のキャラクターなので426にしますが、1280以上は区別が付かない事があるのでその場合は16x9にした方が良さそうです。こうした区分があれば小さいキャラクターかどうかすぐわかりますね。

・キャラクター対応、-426.defファイルの作成
 必要なのはlocalcoord = 426, 240を追記する事ですが、まずファイルを写さないといけない上に中身がある程度は決まっているとは言え不定なファイルにそれを行うのは難しいです。
 そこで一括して作成する方法を紹介します。必要な手順はファイルの複写、名前の変更、追記(置換)の3つです。ソフトを作っている人なら簡単に作れそうですね。
 320x240用のキャラクターを作成している人はchar-426.defと言うのを入れて下さい。
 尚、この426と言う値は320x240を16:9にした場合の値で、1920でも合う様になっています。

・ステージ対応
 ステージもlocalcoord = 426, 240を追加して、kfm.defの様な遠近がある場合は端の手前で途切れるのを防ぐためtile=0,0の[BG 0]等にtile=1,0を追加します。場合によってはboundを60以上(60-80とか)減らします。この60と言うのは幅320の画面で左右に160移動出来る通常のステージを幅426の画面に変更した際に、画面端手前になる数字です。
 遠近があっても画像が四角いステージであればboundを変更しなくても良い場合が多いのでそこは適度に。制作している方はワイドになった時に端の手前で途切れない様なステージにすると良いと思います。
 ワイドを考慮して有れば、320x240や640x480ではなく1280x960や1440x1080で制作しても大丈夫です。

[StageInfo]
;Width and height of the local coordinate space of the stage.
localcoord = 426, 240

[BG 0]
tile = 0, 0
から
[BG 0]
tile = 1, 0

若しくは必要であれば(減らすとステージを移動できる幅が狭くなります)
[Camera]
boundleft = -150
boundright = 150
から
boundleft = -90
boundright = 90

ステージ全体の幅は表示幅が広がった分をboundで減らして調節しています。kfmステージではtileだけで大丈夫でした。
localcoordが異なると拡大されるので段々とずれて行きます。

・ライフバー対応
 localcoord = 1280, 720にして、全部右にずらせば終わるとは思いますが・・・
 ライフバーのlocalcoordを変更する場合は非常に複雑になります。何故かと言うとそのままの大きさで写すには中心基準で計算しなければならない事が多いからです。兎に角1280x720にして同じ大きさになる様に揃えなければいけません。内部では浮動小数点で計算をしているので拡大する都合で微妙にずれますが、基本的に左にずれている方が揃うと覚えて下さい。座標の注意としては0,0は左上ではなく320x240であれば中心から160離れた位置と言う事で、画面の幅から逆算する必要があります。

fight.def
[Info]
localcoord = 1280,720 ;Local coordinate space width and height (new in MUGEN 1.0)


拡大されて良いので有ればlocalcoord = 320, 240かD4であれば640, 480と記載するだけなんですけれどね。


・スクリーンパック対応
 ライフバーに比べると構造上こちらの方が少しは簡単(だと思います)です。頑張って下さい。
使うlocalcoordは
localcoord = 426, 240
localcoord = 854, 480
localcoord = 1280, 720
になると思います。localcoord = 1280, 720は1.0のdefaultです。

 フォントの都合で直せない部分は有ると思いますが、妥協してポートレートの拡大縮小だけで合わせれば5分位で変更可能です。ライフバーと違って多少は細かい部分を気にしなくても普通に見えます。
 普通に直すのであれば、縦幅横幅に合わせてscaleを変更してからposとoffsetを合わせます。

system.def
[Info]
localcoord = 1280,720 ;Local coordinate space width and height (new in MUGEN 1.0)









一括ワイド対応、一括localcoord変換変更

この記事の一番上にあるxmlが必要です。repl_aceの部分を簡単に出来ます。


・概要
repl_aceで置換して、
Namery!で名前を変更して、
repl_aceのバックアップフォルダの中身を上書きする(実際には元有ったファイルの追加になります)

と言う事になります。以下手順になります。


 手順0
 複数本体でのキャラクターの共有を行って下さい。charsを移動してselect.defを一気に置換するだけなので後からやっても構いません。やらなくても良いですが。

 手順1
repl_aceで置換と複写。
 repl_aceはバックアップを取りながら置換をしてくれます。つまり、2つの手順を同時に行えます。本当はどの項目があるか調べて必要であれば追記したいのですが普通のソフトでは無理なので適当に置換します。
 上の部分でフォルダを選択して*.defを対象にサブフォルダも検索すると一覧が出てくるので全部チェックします。

この部分はmugen1-4800char-426.xmlStep 3の右端にある他の機能処理プランを開くから読み込めば設定が済みます。
下の置換対象の部分に次のを入力して\nが改行になる様に設定したら追加を押します。
\[Info\]
から
[Info]\r\nlocalcoord = 426, 240


これで実行を押すと全てのファイルが置換されて、repl_aceの下にバックアップが作成されて元のファイルに追記出来ました。

 手順2
ファイル名の置換はNamery!で行います。今変更したファイル(バックアップではない方)を元ファイル名+文字列にします。
表示設定で指定を選び.defと入力して下位フォルダ検索をチェックします。
リネーム設定は使わずに下の正規表現をチェックして、s/\.def$/-426.def/を入力します。s/\.def$/-16x9.def/ でも良いです。一括変更できるので適当にどうぞ。
この状態で真ん中のファイル一覧をクリックしてCtrl+Aを押すと全部選択されて変更後ファイル名が出るので確認しましょう。
右下のGo Namery!!を押すとキャラ名-426.defと言うファイルが出来上がります

 手順3
最初に取ったバックアップは元のフォルダと同じになっているので上書きして終了です。
これで元の.defと-426.defが出来ました。

 手順4
mugenの本体のフォルダをコピーしてmugen.cfgをワイド用に書き換えます。

;mugen.cfg 画面サイズ
;Game native width and height.
;Recommended settings are:
; 640x480 Standard definition 4:3
; 1280x720 High definition 16:9
; 1920x1080 Full HD 16:9
;GameWidth = 320 ;4:3
;GameHeight = 240 ;4:3
;GameWidth = 400 ;15:9
;GameHeight = 240 ;15:9
;GameWidth = 426 ;16:9
;GameHeight = 240 ;16:9
;GameWidth = 1280 ;48:9
;GameHeight = 240 ;48:9
;GameWidth = 640 ;16:9
;GameHeight = 360 ;16:9
;GameWidth = 600 ;4:3
;GameHeight = 450 ;4:3
;GameWidth = 800 ;16:9
;GameHeight = 450 ;16:9
;GameWidth = 640 ;4:3
;GameHeight = 480 ;4:3
;GameWidth = 800 ;15:9
;GameHeight = 480 ;15:9
;GameWidth = 854 ;16:9
;GameHeight = 480 ;16:9

;GameWidth = 1280 ;8:3
;GameHeight = 480 ;8:3
;GameWidth = 720 ;4:3
;GameHeight = 540 ;4:3
;GameWidth = 960 ;16:9
;GameHeight = 540 ;16:9
;GameWidth = 1920 ;32:9
;GameHeight = 540 ;32:9
;GameWidth = 960 ;4:3
;GameHeight = 720 ;4:3
;GameWidth = 1200 ;15:9
;GameHeight = 720 ;15:9
;GameWidth = 1280 ;16:9(default)
;GameHeight = 720 ;16:9(default)

;GameWidth = 1920 ;8:3
;GameHeight = 720 ;8:3
GameWidth = 1280 ;4:3
GameHeight = 960 ;4:3

;GameWidth = 1600 ;15:9
;GameHeight = 960 ;15:9
;GameWidth = 1706 ;16:9(scale = 4)
;GameHeight = 960 ;16:9(scale = 4)

;GameWidth = 1440 ;4:3
;GameHeight = 1080 ;4:3
;GameWidth = 1920 ;16:9
;GameHeight = 1080 ;16:9


 手順6
先程と同様に、写したmugen.cfgのselect.defの.defを-426.defに全て置換します。

 これで一応動きますがwinmugenで動いても1.0ではエラーとなる書式があるので、そう言ったキャラは根本的に対処しないといけません。

 手順7
1.0に対応していないエラーが出る様なキャラクターを全て直すかselect.defからコメントで除外します。;kfm-426.def

 手順8
 画面幅に合わせなければならないExplodのscaleのxに*GameWidth/320.0をつけます。scale = 1*GameWidth/320.0, 1
出来れば[statedef -1]に左のメニューにあるGameWidthの計算を入れて(var(49))が使用されていないか要確認。若しくは.cnsを複写して426.cnsにしてscale = 1*var(49)/320.0, 1

 別の例としては、ゲージ等の下に置くExplodがpostype = leftで位置が画面幅320固定で設定されていて、右下と言うのを左上から幾つと言う風に設定している場合は、
postype = left
pos = floor(now_x*GameWidth/320.0), floor(now_y*GameHeight/240.0)
の様にすれば対応できます。0.0 の形式にしないと整数計算されて少数部分がなくなります。しかし倍率を掛けるよりも GameHeight - y の形式の方が下から幾つになるので良いと思います。


 手順9
手順1,2と同様にstageに.defをcopyしてlocalcoordを追加します。ステージは範囲や背景の並びを手直しする必要があります。


この部分はmugen1-4800stage-426.xmlStep 3の右端にある他の機能処理プランを開くから読み込めば設定が済みます。
でも例外があるので一応見て置いてください。

stageの場合は[StageInfo]になります。
\[StageInfo\]
から
[StageInfo]\r\nlocalcoord = 426, 240
select.defのstage部分の.defを-426.defに変更します。

これで完了です。手順7と8はやらなくても動くと思います。

例外事項
 画面が動かないステージの場合は手直しする必要があります。
具体的には[BG ]にwindowと言う値が使われているステージを開いて

[BG ]
type = normal

であれば
tile = 1,0
を追加します。

[BG ]
type = anim

であれば

[BG 0]
type = anim
actionno = 0
layerno = 0
start = 0, 0
delta = 2, 2
trans = none
mask = 0
tile=1,0
tilespacing = 0,0
window = 0,0,854, 479

[BG 1]
type = anim
actionno = 0
layerno = 0
start = 639, 0
delta = 2, 2
trans = none
mask = 0
tile=1,0
tilespacing = 0,0
window = 0,0,854, 479

[BG 2]
type = anim
actionno = 0
layerno = 0
start = -639, 0
delta = 2, 2
trans = none
mask = 0
tile=1,0
tilespacing = 0,0
window = 0,0,854, 479

こんな感じにして左右に同じアニメを表示します。ついでにboundを
boundleft = -265
boundright = 265

にすると横幅320換算で3画面分のステージになります。

また、kfmステージの様に背景がずれて動くステージはtile = 1,0がついていなかったりするので背景を横に拡大したり適当に追加して下さい。一応kfm-426.deを付属してありますので参考にどうぞ。


 これから作成、更新する人はワイドと両方で確認しましょう。最初から.cnsを両方、若しくは1.0用を作っておくのであれば簡単です。



・まとめ
少し長かったですが、

repl_aceで置換して、
Namery!で名前を変更して、
repl_aceのバックアップフォルダの中身を上書きする(実際には元有ったファイルの追加になります)

と言う事になります。

動くかと言われると9割近くはこれで終わりなので後はエフェクトがずれるのが残ります。
postype = leftのexplodを探してscale = 1*GameWidth/320.0, 1すればほぼ完璧でしょう。

 追記
Hitdef(Projectile)には yaccel = .35fall.yvelocity = -4.5 を追加しないと横に伸ばした際に縦に良く飛ぶ様になります。設定してあれば良いので既に設定されている値がある部分はそのままで大丈夫です。


・キャラクター制作について
 キャラクターの制作をする際にはwinmugen用のキャラクターを作るにしても新MUGENのkfmから作りましょう。これをしておかないとMUGEN1.0以降[Data][Movement]等が不足して1.0 / winどちらにせよ互換性が低くなってしまいます
 Hitdef(Projectile)には yaccel = .35fall.yvelocity = -4.5 を追加しないと横に伸ばした際に縦に良く飛ぶ様になります。設定してあれば良いので既に設定されている値がある部分はそのままで大丈夫です。
 これは恐らく4:3基準で全て計算しているからこうなっているのだと思います。実際にキャラクターのlocalcoordは縦の数値を読んでいませんので。今後の更新で対応してくれると良いのですが。

 Explodのワイド対応はscaleにGameWidth/320.0を追加するだけなので、1.0に対応した.cnsを作って専用の.defファイルを入れておきましょう。320,240のキャラであればついでにlocalcoordを設定した-426.defも入れておきましょう。
 GameHeightについては高さで調節する必要がある物がある場合には追加しておきましょう。localcoordを適切に設定すれば縦幅が変わる事はないので必要ないとは思いますが、キャラクターを小さくして遊びたい場合はあると良いかも知れません。
 これで遊べる幅が増えます。

・代替GameWidth
 1.0から画面の幅を取得するトリガーが追加されました。とは言え旧キャラは使えないのでGameWidthの項目を見てvar(49)を変わりに使ってください。

・代替GameHeight
まだ試していませんので注意。
 こちらは正確な値が取得できませんが、ワイドであるかどうかはわかるのでそれ以上の高さであるかどうか判定する事が出来ます。
screenpos yが大きすぎる場合、+320なのはほぼ確実なのでそれで判断して倍します。
GameHeightmultiple = 1+(screenpos y - pos y - 1)/240
この式は高さが足りないかどうかではなくて、画面の高さが240の倍近くあるかどうかを判断しています。キャラクターが小さい場合に十分な高さを取得する方法です。


・D0,D4の違い
 既に説明した通りD4は320x240の画面で表示される前提の作りで0.5倍しています。winmugenで本体がD4化した事により原寸で表示されているだけでlocalcoord = 640, 480ではありません、localcoord = 320, 240です。localcoord = 640, 480のキャラと言うのはscale = 1, 1のキャラクターを指し、これはD0であってD4ではありません。1.0ではキャラクターのlocalcoordに合わせて表示されるだけなので、実際にはD4と言ってもそう言う概念は無いと言っても良いと思います。1.0に合わせて言うのであればscale = 0.5, 0.5のキャラクターがD4となるでしょう。localcoord = 1280, 720のキャラの場合はwinmugenで換算すると実にD9(3*3)となります。基本は等倍表示になるのでもっと巨大なスクリーンを前提に作る以外ではscale = 0.5, 0.5にする必要はもはやありません。
 と言ってもなかなかそんな大きな画像で作れませんが。普通に絵を書いていると寧ろ楽だったり。そうすると質の問題が出てくるのでどうなんでしょうね。サイズで言うとD4,D16だと作りやすいと思いますが色の問題が出そうです。

・スクリーンパックとライフバー
 スクリーンパックとライフバーはlocalcoordがsystem.defにしかない都合で、同じ解像度で作られていないとどうしても拡大縮小されてしまいます。スクリーンパックは拡大縮小されてもまだ良いのですが、ライフバーが拡大縮小されると場所を取ったり見づらかったりして少し不便です。セレクト画面を少し合わせる位ならすぐ出来ますが、ライフバーを合わせるには全てのposとoffsetを調節しないといけないので1時間位は掛かります。逆に言えば1時間あればライフバーは合わせられるので、localcoord = 1280, 720で作成してみては如何でしょうか。
 

・困った時には
 .defファイルの説明に日本語が使われているとエラーになるので消しましょう。行の最後が日本語になっていて次の行がファイル指定だったりすると駄目な様です。空行だと大丈夫な事もあります。

 ステージの共有化をしている場合はステージのsff指定はsprite.sffの様に直接指定にしましょう。bgmusic../stages/music.mp3の様な指定にしましょう。
 ステージは端が切れる事がよくあります。左端から設定しているステージの場合はwindow = start x,start y,endx,end yで設定したりしているのでend xを広げましょう。真ん中揃えの場合はwindow = 0,0,639, 479からwindow = 0,0,854, 479にして左右に同じ[BG ]を配置すれば広げられます。type = normaltype = animで指定が違うので注意しましょう。type = normalであればtile=1,0にするだけで十分だったりします。
 左右で絵が違うので繰り返しにしても繋がらない様なステージはHで左右反転をしてstart = -320, 0start = 319, 0に置くと上手く繋がります。
 アニメーションのステージはlocalcoord = 320, 240にしないと根本的に幅が足りなくなる事があります。若しくは左右に反転させたアニメーションを配置して繋げて自然に見せる方法もあります。

 ライフバーはスクリーンパックに合わせないといけないのでwinmugenの物であれば640x480のが多いと思います。その場合はlocalcoord = 854,480に合わせれば良いです。高解像度用のlocalcoord = 1280, 720の物もあると良いと思いますが。ライフバーはスクリーンパックのlocalcoordに合わせるので、そのままの縦幅でワイドになっていれば特に問題はありません。

 スクリーンパックはどちらかと言うとライフバーにあわせた方が良いと思います。winmugenのであればlocalcoord = 854,480で良いと思いますが、localcoord = 1280, 720のも作っておけば幅が広がると思います。スクリーンパックはsystem.deflocalcoordを決めてしまうので種類が多い方が便利です。使われる側と考えた方が納得の衣玖サーンでしょう。

https://onedrive.live.com/?cid=0bb0c1bffa5e14e7&id=BB0C1BFFA5E14E7!106
line
バグ修正ファイル
 1/25stage-426.xmlは致命的な間違いがあったので、stage-426-bugfix.xml保管庫からダウンロードして念の為全ステージファイルを置換してください。

バグの詳細
 誤ってboundrightをマイナス(-)にしていたので右側が凄い狭くなってしまっていました。右端に寄った状態で始まるステージが対象になります。現状ではboundrightがマイナスで画面幅より狭くしてあるステージは存在しないので、全てのステージに適用しても問題はありません。通常は画面幅以下のステージでも[Info]のboundleftとboundrightではなくて[Bound]のscreenleftとscreenrightで指定しています。

 序でに、先程mugen1-4800のstage-426.xmlを更新したので一括対応ステージが増えました。現在のは固定数値に置き換えですが、引く幅が固定なので計算式に出来ればと思いますが・・・。


 そう言えばDemoで確認していて思った事ですが、ゲージをleftのみで表示していると思われるキャラがチラホラ見受けられました。普通はleft,rightで表示しますが、leftで画面幅320に対して位置をずらしているキャラクターはゲージがほぼ真ん中から表示されてしまっていました。この様に、暗に計算式の中に画面幅が入るのは良くないですね。ゲージに関して言うと普通の感覚でleft,rightを使えばワイド化自体が必要ありません。
 後、ヘルパーで画面端を判定しているキャラクターが居る様な気がしました。この方法ならを判定するだけなので画面の幅は余り関係ないと思いました。
line
line

line
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。