Profile

アメリ

Author:アメリ
キャラ紹介

line
カテゴリ
AIR (1)
Pos (1)
Var (1)
FAQ (1)
line
不許カウンター
line
最新記事
line
最新コメント
line
最新トラックバック
line
月別アーカイブ
line
sub_line
カレンダー
02 | 2012/03 | 04
- - - - 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 31
line
検索フォーム
line
リンク
line
RSSリンクの表示
line
QRコード
QR
line
ブロとも申請フォーム

この人とブロともになる

line
sub_line
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
line
・ちょっと書き足したり削除したらエラーになったと言う場合の例です。
 基本的にはキャラクターを選択して対戦画面が出た後にエラーが出ると思いますが、動作中のエラーも発見する為にCtrl+Dを押すか(mugen.cfgのDebug = 0でAllowDebugMode = 1にしておくと切り替え出来る)最初からデバッグモードにして置いてください。→デバッグモードについて
 デバッグモードではCtrl+Dを何度も押す事によってヘルパーを含むプレイヤーを切り替えられます。また、Ctrl+Cを押すと攻撃判定の表示を切り替えできます。
 DisplayToClipboardを利用すると左下のプレイヤー状態表示の下に表示されます。取りあえずあると便利なのはpos x,pos y、距離の確認だとp2bodydist xでしょうか。他にはステート中で変化する変数を表示させておくと便利です。これを60fpsで録画すれば見逃しもまずありません、AmaRecCoがお勧めです。1f毎にTime=90程度のSuperPauseをすると録画しなくてもすぐわかりますけどね。

 大きく分けると、書き間違え、存在しない、mugendocsに書いてある仕様を把握していないの3つです。
winmugenは一行256文字制限に引っかかると途中で行が切れる為、どのエラーが起きるかわかりません。

・説明の為の用語定義です。
キャラクター読み込み時・・・対戦画面の後の暗転でエラー
ステート実行時・・・対戦中のステート実行時にエラー
ステート実行時のエラーは下の方に記述してあります。

・記述間違いの例(トリガーを主に挙げます)
キャラクター読み込み時ステート実行時にエラー。基本的には読み込み時になります。

「ステートコントローラーの開始[state ]を間違っている場合」

キャラクター読み込み時にエラー
Need at least one state controller


 これはとても分かりづらいですが[state]の所に半角スペースがありません。最低でも[state ]にしないと駄目です。しかしデバッグの観点から言うと[state 200, hitdef]の様にステート番号を記載し小文字にして説明を入れるべきです。これがないとエラー時にどの部分かがわかりません。画像の例で言うとステート200番の記述の中と言う所までしか分かりません。
 そもそもステートの書き方が分からない方は書式の項目を見てください。

「予約語の間違い」
キャラクター読み込み時にエラー。
Need at least 1 trigger


 trigger の様に指定する単語が間違っている場合は大抵この系統のエラーが出ます。triggerには数字が必要です。
triggerall = 1
trigger1 = 1
trigger2 = 1

「トリガーの行に変な物がある」
キャラクター読み込み時にエラー。
Invalid trigger
Library error message: Died parsing


 これは解釈できない単語が入っている場合等に起こります。この例だとfと言うのを単語として認識していますが解釈できないのでエラーとなります。

MUGEN1.0のキャラクターはwinmugenにないトリガーを使っている場合があるので(GameWidthやRemapPal等)そう言ったキャラクターは色々と変更しないと動かないと思います、似た様に相手側のHitpausetimeの差が1フレーム出るので全て+1に修正する必要があります。

「トリガーの行が途中で切れている」
キャラクター読み込み時にエラー。
Library error message: Malformed expression encountered


 このエラーも分かり易いです。間違っている行が表示されます。一番上のtrigger1,1と言う所とステート番号と一番下の行だけ見れば良いです。malformedと書いてありますね、書式が変なのです。大抵は括弧が足りなかったりしている事でしょう。
 但し、下にある一行が256文字以上の時にもなる可能性がありますし原因がどれだかは何とも言えないので全部見ておきましょう。


「書式が非常に間違っている」

キャラクター読み込み時にエラー。

 これはエラーの行が表示されない場合です。途中で切れているのではなく文法を間違っている場合に出ます。こんな感じです。
trigger1 = AnimElem = 3 (
3までは正しいですがその後に文章として繋がらない単語が出てきています。


「型の不一致」(1.0)

キャラクター読み込み時にエラー。
Library error message: Expected int value and read float.
 pos = 0.1
 type = Explodで、pos xに0.1を入れようとしてエラーが出て落ちます。単純な事ですが、pos や offset に少数を含む値を入れる場合はfloor()かceil()しましょう。pos = floor(0.1), 1; また、浮動小数点を返すpos x, pos y等のpos系統を使った場合も勝手に少数になるので同様にしておきましょう。


「型の不一致」

実行時にエラー。
Error message: Type mismatch detected: 27
Error message: Type mismatch detected: 20


 これは非常に分かりづらいですが書式エラーにならず実行時エラーになる場合です。バイナリダンプなので普通の人には読めないと思いますが下の2行は対応しているのである程度はわかります。基本はtrigger,int,operの順です。triggerは予約語、intと言うのは数字、operと言うのは演算子なのでintだけ抜き出すと特徴的な数字なら一発で分かります。プログラマならこの数字の並びは普通に読めますよね。下に続きます。

適当に判明したtriggerとoperを書いておきます。
;------------------------------------------------------------
trigger
0
1
2 0 !=
3
4 0 <
5 >=
6
11 &&
12 ||
13 !
20 :=
23 +
24 -
25 *
26 /
27 %

40 stateno

107 palno
113 GameTime
201 IsHelper
0 346 SysFVar(0)
2 346 SysFVar(2)
;------------------------------------------------------------
これがあれば復元できます。
trigger 40, int 120, opr 5, trigger 40, int 160, opr 4 opr 11 trigger 201, ...なので
stateno 120 >= stateno 160 < && IsHelper ...つまり
stateno >= 120 && stateno < 160 ...と言う事がわかります。ここまでわからなくても
stateno >= 120 , stateno < 160 と言う部分だけわかればもう殆ど場所はわかりますね。
trigger >= 120 , trigger < 160 でも数字と演算子がわかるので直ぐ見つかると思います。

 実はこのエラーは普通は出ません。Type mismatch detected:27 とありますね、つまり27番のtype mismatchなのです。このエラーは浮動小数点のfvarの剰余を計算すると出ます。fvar(0)%10
もしも浮動小数点から剰余を出したい場合になったらfloor(fvar(0))かceil(fvar(0))を使って切り上げか切り捨てを行ってください。floorとceilについては割愛します。普通はfloorを使えば良いはずです。
 これはmugendocsのCNS Formatに書いてある事なのでこの機会に他も読んでおきましょう。
 後、これは:=の代入判定で変換できない場合にも起きます。これもリダイレクトと一緒の理由だと思います。代入する時には兎に角、型を揃えましょう。
 posやoffsetは内部的にはfloatなのですが代入できるのはintなのでfloorしてから代入しましょう。
 このエラーが出た時は fvar の所、と覚えましょう。

「無限ループ、ステートのループエラー」
実行時にエラー。
2500 loop
(画像省略)
 2500loopと出るエラーです。SelfStateかChangeStateのエラーで繰り返しが2500回発見されると起こります。大抵はChangeStateのトリガーがずっと実行されていて同じステートへChangeしています。デバッグモードで自分のステートを見ても良いでしょう。但し1,2,3,1,2,3の様な一定の並びの繰り返しも判定されます。最初に引っかかりやすいのはTime=0かAnimが1フレームしかないのにAnimTime=0でChangeStateすると起こります。

「MUGEN本体処理の割り込みによる無限ループ」
実行時にエラー。
 基本的にChangeState条件を満たし続ける事で起こりますが2500loopエラーが出ない場合がcommon1.cnsに書いてあるのでそちらをご覧下さい。

「HelperのDestroySelfのエラー」
実行時にエラー。
 Helperを出した直後(時間が経過しない内に)にDestroySelfを記述して消すと起こります。

「HelperのExplodのエラー(DestroySelf)」
実行時にエラー。
 DestroySelfと同時にExplodを出すとエラーになるようです。DestroySelfの条件に引っかかる場合はフラグを立てtriggerで判断するか、DestorySelf専用のステートを作りましょう。

「サバイバルモードのエラー」
実行時にエラー
Assert failure in charsel.c line 3162
 これはサバイバルの相手として出てこないと気づきませんが、.defファイルにpal.defaults=1,2,3,4,5,6,7,8,9,10,11,12を設定していないキャラクターがサバイバル等のランダムカラーセレクト時に選択されるとエラー落ちします。設定しておけば問題はないので最初に必ず設定しましょう。関連、AI.RandomColor

「文字制限のエラー」
キャラクター読み込み時にエラー
 これはwinmugen(旧MUGEN)で起こるのですが一行に256文字までしか入りません。一行の文字制限としては少なすぎるので画面端から出たら気を付けましょう。
 ちなみに、文字制限と言うエラーがあるのではなく文字制限によって行が切れる事で不具合が発生する可能性があるだけなので普通に動く場合もあります

「トリガーのエラー(1.0)」
キャラクター読み込み時にエラー
Error Message: Error Parsing

 sysvarsysfvarを小文字で書いていない場合にエラーになります。該当箇所のステートコントローラーが表示されるので一応わかります。

「sffの読み込みエラー」
キャラクター読み込み時にエラー
Error Message: Can't load sff

 バッファメモリが足りなくなるとsffの読み込みエラーが出ます。
mugen.cfg
PlayerCache = 0
Precache = 4
BufferedRead = 0

にすると解消するかもしれません。

 Precache0 や 1 でも良いですけれど。
このエラーが出る場合は起動時にタスクマネージャーを起動して mugen.exe (winmugen.exe) が使っているメモリ量を見て下さい。空きメモリと合わせてみればある程度分ると思います。
カス雛さんは起動に 900MB 程度は必要なので空きメモリは最低でも 1.2G 以上にして下さい。
MUGEN1.0 のカス雛さん場合は 400MB 程度なので 600MB あれば大丈夫だと思います。


 単にSffが壊れている場合もあり、その場合は何らかのソフトで読み込んでみれば開けないので分ると思います。開ければ保存しなおして動く場合はあるかもしれません。


「メモリ不足のエラー」
キャラクター読み込み時にエラー
Error Message: Can't create projectile array
 mugen.cfg で設定した ProjectileMax等の値が大きすぎるとメモリを確保できなくてエラーになります。増やすにしてもまずは 1000 位にしてみましょう。

 LayeredSpriteMax は一度に使用できる画像の最大数なので、[Config] の他を全部足した値以上になっていれば大丈夫です。
 キャラクターの読み込み時に起こる場合は直ぐ上のバッファメモリの設定もしておきましょう。



「デバッグモードで出るエラー」
実行時にエラー。
デバッグモードで画面中央やや左上に出る白文字の事です。主なエラーとしては

ステートのアニメがAirに記述されていない
Invalid action
 anim=200 と指定している番号のアニメが無い場合です。
ChangeState先が無い
Changed to invalid state
 Reversaldef等で相手に変更される場合もありますが、ChangeStateのvalue先が間違っている場合です。
pos x等をfloorしていないので整数と浮動小数点で型不一致が起こっている
(但し自動で変換しているので実行は出来ます)

Expression truncated to integer
 これは実行できてしまうので見逃し易いですがデバッグの邪魔です。見つけたらfloor(pos x)としましょう。全てに行う必要はありません。主にposに代入する時に起こります。対処例、pos = -10 - floor(pos x) * 3, 0 ; or pos = floor(-10 - pos x * 3), 0
 但し自動で変換できない場合もあり、その場合にはMalformed expressionエラーで落ちます。
値がINT型の最大値を超えている
Expression cramped to INT_MAX(mugen1.0)
 MUGEN1.0ではfloor(2.0**31-1)を越えるとこのエラーが出ます。
その他
 キーボードのPauseボタンを押すと画面が止まりますのでこれを利用して見てください。読めば大抵のエラーの原因は見つかると思います。


「エラーが出ないエラー」
実行時に突然ウィンドウが無くなる
 ステートコントローラーの設定値にリダイレクトを使用すると参照の参照が行われるのかメモリエラーで落ちるようです。ステートコントローラーの設定項目にリダイレクトを書いて落ちる様であれば一度変数に入れてから設定しましょう。
 単に安定性の問題で突然落ちる事があります。ちゃんと確認したい時には一旦終了させましょう。

実行時に何も起きないでそのまま動く
 お前は何をry
 varをVarとか書いても動作する様な気がしますがfvarをFVARとか書くと動作しません。作りが悪いですね。これは綴りが正しいので発見が難しくなります。基本的に全て小文字で書いた方がよいです。私はtype宣言だけは見易いのでChangeStateの様にしています。
 triggerは1,2,3,4・・と並んでいる所までしか実行されないので数字が飛んでいるとトリガーを発見できずに判定が終わってしまいます。これも途中までは実行されて条件判定の一部が抜けるだけなので見つけ辛いです。
 value等の必須オプションが違う場合は一部のステートコントローラー内で無視されます。「無視される」と言うのは実行はされますが値の指定は行われないと言う事です。必須を間違えているのにvalueはエラーが出ずに実行される事があるのです。これはvalueだろうと思って書いてしまい実行時に不具合が出ると発見し辛いです。

他にもありましたら追加するかもしれません。
スポンサーサイト
line
・日本語の設定について
 日本語を使用するには3つほど設定する必要があります。
言語の設定フォントの設定キャラクターファイルの UTF8(BOMなし)です。
[ja.Quotes] を設定するだけであればフォントの設定は必要ありません。表示はそのままなのでお勧めです。
 UTF8に変換した際の問題解決については一番下にあります。

・言語の設定
mugen.cfg を開いて Language を設定します
;Preferred language (ISO 639-1), e.g. en, es, ja, etc.
;See http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
Language = "ja"

system.def
の場所を探します。
motif = data/mugen1/system.def


・フォントの設定(displaynameの日本語化)
次にsystem.defを開きます。(-r オプションでscrennpackを指定している場合はそのフォルダから開いてください)
; Supported languages: en, ja

対応言語が en, ja になっています

[ja.Files] の設定で font3 = enter48.def を msgothic-tt36 に変更します

; Load alternative victory quote font (font5) if language is "ja".
[ja.Files]
font3 = msgothic-tt36.def ;enter48.def

これでキャラクター表示画面の displayname のフォントが“MSゴシック”になりました。


次にfight.defを開きます
同様に msgothic-tt36.def に変更します

font1 = msgothic-tt36.def ;enter48.def
font3 = msgothic-tt36.def ;name14.def

これで対戦中のキャラクター名 (displayname) のフォントが“MS ゴシック”になりました。
font5 と言うのが [ja.Quotes] の部分でこれだけは最初から設定されています。

フォントを変更したい場合はdefを適当に作成して下さい。


・キャラクターファイルの UTF8 化
 キャラクターの .def (displayname) ファイルと [Data] ([ja.Quotes]) が記載されている .cns ファイルをUTF8(BOMなし)で保存します。displayname の日本語化をしないのであれば [Data] ([ja.Quotes]) の方だけで大丈夫です。
これで displayname[ja.Quotes] の日本語が表示されます。

displayname= "カンフーマン"

[ja.Quotes]
victory1 = "日本語 हिंदी Русский"

一応 name や author にも日本語を使えますが止めた方がよいと思います。そもそも外国のソフトですし発音も書いていない訳ですから読めない物は問題があります。横にコメントで書いておけば良い事です。私はどの言語でも使える事は良いと思いますが、伝わらない物を書いても仕方がないので上手く使って伝わる様に書くと良いと思います。








少し簡素ですね [ja.Quotes] はまだ良いですが、その他の部分はフォントを作らないと日本語が使えると言うだけで利点はないかもしれません。見栄えを考えるともう少し文字を大きくしたりライフバーから作成する必要がありそうです。それを考えると英語フォントだと文字数が少ないので見栄え良く作る事は簡単かもしれません。

そう言えば“MSゴシック”は UTF8 対応ではありませんね。 msgoth04.ttc や meiryo.ttc も使ってみましたが全て表示できる訳ではないようです。Shift_JISしか使えないだけだと思いますが。



UTF8 に変換した際に発生する問題
 winmugen のキャラクターが mugen1.0 でそのまま動く場合で文字コードを変える前にエラーが出ていない場合は通常はエラーになりませんが次のような場合にエラーになりやすいです。

1. UTF8(BOMなし)ではなUTF8(BOMあり)にした。
2. 改行がWindows(CRLF)に統一されていない。
3. コメント部分( ; 以降)に日本語がある。
4. CNSの作成時にWEBからコピー&ペーストを行った際に文字コードが混在した。

 1. は問題にならないと思いますが一応。
 2. はエディタで一度変更して元に戻す具合で揃えれば問題ありません。
 3. は該当部分の手前にある日本語を削除すれば問題ありません。
 4. は該当部分の手前にある日本語を削除すれば問題ありません。

 3. 4. では手前の改行も可能な限り削除して改行しなおすと動く場合があります。











































多分







 正確には確認していませんが、日本語部分と改行で変になっている様なのは見かけました。
line
 Fighter Factory 3 RC1 (3.0.1000) 3/14 updated!
ダウンロードはこちらから(beta3の時と同じ所です)
http://mugenguild.com/forumx/index.php?topic=137126

バグ報告とかはこの辺りからです
http://mugenguild.com/forumx/index.php?topic=137126.360

・Windows版で必要なファイルは以下の3つです。
Download (ff3rc1)
Pre-requisite (vcredist)
Update4 (3/14)

 ff3rc1Update4を上書きしてください。
vcredistは起動しない場合に必要です。
またすぐ更新されるかもしれません。

・日本語ファイル
 日本語ファイルは一応使えますが少し項目が増えた様です。
ちょっと待ってねと言うのはこの事だったのかも。
下のリンクから一つ前の記事を読んでください。
更新しないといけませんね。

・バグ
 お絵かき部分の保存のバグはそのままの様です。PSDで保存できる様にするのかな。
レイヤー毎にスプライトとして追加する機能が増えました。
ちなみに私はUltimateスタイルで使っています。

SFFv1について
 以前の記事で書きましたがやはりパレット順に並び替えをしている様ですね。

http://mugenguild.com/forumx/index.php?topic=137126.msg1536186#msg1536186
In the SFF v2 you can use any sprite order, that's the way FF3 organize sprites by group/index in this version.
If you are making a SFF v1, FF3 will organize by palette, to achieve a high compression ratio and avoid palette problems, then the 9000 group will be placed first.

それと9000グループは頭に置きましょうと言う事で。

・一つ前の記事
 Fighter Factory 3 beta 8.4 ja-jp  japanese 日本語化設定ファイル パッチ

line
line

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