Tags
No Tags

Frequently used words (click to add to your profile)

javaandroidc++linuxc#objective-ccocoa誰得qtrubybathyscaphegamephpguiwindowsc翻訳pythonomegattwitterframeworkbtronarduinovb.net計画中(planning stage)directxpreviewertestゲームエンジンdom

Recent Chamber Activity

2019-10-10

Recent Wiki Changes

2019-10-10

Wiki Guide

Side Bar

Ikemen GO

  • R/O
  • R/O (HTTP)
  • R/W (SSH)
  • R/W (HTTPS)
Fork

Go で書き直した Ikemen

Release Files

No download files.

Recent Commits

Rev.TimeAuthorMessage RSS
e03685642019-10-09 17:39:52neatunsouAfterimageのalphaの数値が範囲外になる場合があるのを修正 A...
7c1457ee2019-09-27 00:12:59neatunsouhitflagでPを指定してProjectileに当てたときにp1statenoが機...
0eedec892019-09-26 23:21:46neatunsouWindblade氏の更新に対応
5c0ce1392019-09-23 18:21:57neatunsouWindblade氏の更新に対応
1135ffa42019-09-17 19:31:24neatunsoucontinue画面のBGMのタイプミス修正 drawVictoryPortraitで引...
a5e758d12019-09-17 19:30:19neatunsouWindblade氏の更新に対応
5285bac72019-09-15 02:31:15neatunsouStoryboardのBGCtrlの移動量がlocalcoordの影響を受けるよう...
c9a733942019-09-08 19:04:30neatunsouBGMのloopstartとloopendを読み込むようにした Screenpackでb...
bfd999882019-09-01 13:41:56neatunsoudouble select時に相手側のポートレイトが表示されていなかっ...
237d812d2019-09-01 12:36:56neatunsouscriptファイルを含めるようにした

Latest updated Tickets

No tickets

変更点の特記事項

追加機能の詳細

ZSSについて

個別ページを参照 wiki:ZSS

Mapについて

いわゆる連想配列。キャラクターごとに文字列と整数値を紐づけて設定することができる。 変数の代わりとして使える他、相手への参照ができるので 属性名を設定してタグとして使ったり、特定の技に対応するフラグとして使ったりすることができる。 なおマップ名に半角スペースは使えない。

例としてキャラクターdefファイルに以下のような記述を加えることでマップを設定できる。

[map]
Ryu=1
Streetfighter=1
man=1
birthyear=1964
Japan=1
Ansatsuken=1

キーとなるマップの名前 (文字列)に=で整数値を設定する。このマップを持っていると、上から順に

・リュウ系統である
・ストリートファイターである
・男である
・誕生年が1964である
・日本出身である
・暗殺拳を使う

キャラであることを相手側から認識することができる。

このマップはトリガーで認識できる。

trigger1 = map(birthyear)

括弧内に認識したいマップ名を入れて使う。 例として上記のマップを設定したキャラではmap(birthyear)が1964として返ってくる。 何も設定していなければ0が返ってくる。

Mapの値を変更するステートコントローラ

[State test]
type = mapset
trigger1 = !time
map = "birthyear"
value = 1987

map = "キーとなるマップの名前" (文字列)

value = マップに入力する数値 (整数)

ステートコントローラでもマップを設定することができる。 既に設定した数値を変更したり、新たにマップを設定したりするのに使える。

追加ステートコントローラ

Matchrestart

[state test]
type = MatchRestart
trigger1 = time=10
p1def = "kfm.def"
p2def = "kfm.def"
Stagedef = "stage0.def"
reload=1,1

ラウンドをリセットして再開する。(デバッグキーのF4と同じ効果)

Reloadを1にするとファイルを読み込み直してラウンドを最初から再開する。(デバッグキーのShift + F4と同じ効果)

Reloadの1項目はP1、2項目はP2を読み込み直すかどうかを指定する。全て0の場合は読み込み直しを行わずラウンドをリセットする。

P1def 、P2def、Stagedefでdefファイルのパスを指定すると読み込み直しの際にそのファイルを読み込む。その際のパスは実行キャラを基準にする。

Mapset

上記を参照。

Savefile

[state test]
type = SaveFile
trigger1 = time=10
savedata=var
path="kfm.gob"

指定したデータをまとめてバイナリとして保存する。 保存形式にはGo言語用のシリアライズフォーマットであるgobを使用する。

savedataで保存するデータをvar、fvar、mapのいずれかに指定する。 ステコンを実行したキャラもしくはヘルパーがその時点で持っている指定データの全てが保存される。

pathで保存先のファイルパスを指定する(実行キャラ基準)。 拡張子は自由だが、形式名のgobを推奨。

Loadfile

[state test]
type = Loadfile
trigger1 = time=10
savedata=var
path="kfm.gob"

指定したデータを読み込んで実行キャラのデータに上書きする。 読み込む前のデータは全て消えるので注意。

savedataで読み込むデータをvar、fvar、mapのいずれかから指定する。 形式を間違えるとエラーになる。

pathで読み込むファイルのパスを指定する(実行キャラ基準)。

追加トリガー

Majorversion

defファイルのmugenversionを1.0以上にしている場合に1を返す。

Map

上記を参照。

Selfstatenoexist

trigger1 = Selfstatenoexist(3000)

指定したナンバーのStatedefが存在すれば1を返す。しなければ0を返す。 括弧内に認識したいStatedefの番号を入れて使う。

Stagebackedge

自分の後方のステージ端までの距離を返す。

Stagefrontedge

自分の前方のステージ端までの距離を返す。

トリガーの変更点

Teammode

チームモードでTagを選択時、このトリガーで"Tag"を指定すると1を返す

追加パラメータの詳細

ステートコントローラの追加パラメータ

Roundnotskip

Assertspecialのflagで指定するパラメータ。 実行中はボタン押しによるイントロと勝利ポーズのスキップができなくなる。

Teamside

Hitdefのパラメータ。 Hitdefを指定したTeamside(トリガーのTeamsideと同様)からの攻撃として処理する。

Extendsmap

Helperのパラメータ。 1にすると親のmapをHelperに引き継ぐ。

Projangle

Projectileのパラメータ。 Projectileのアニメーションを回転させる角度を指定する。

ReadplayerID

Selftateのパラメータ。 移動先を指定したPlayerIDのキャラが持つステートに変更する。 成功した場合、指定したPlayerIDのキャラにステートを奪取された状態になる。

RedirectID

ステートコントローラ全般に使える。 ステコンの実行者を指定したPlayerIDのキャラに変更するオプションパラメータ。 ターゲットを取らずに対象に干渉することができる。 いわゆる永続ターゲットのような動作を簡単に実装可能。 相手に触れずにライフを減らす毒の再現などが主な使い道。

※以下のステコンでは実行フレームでしか効果を発揮しない処理の都合上動作しない

Posfreeze、Trans、Assertspecialの一部 (Screenbound、Playerpush、Angledraw、Offsetは対象IDより後に実行すれば効果が出る)

ステージdefの追加パラメータ

Attachedchar

ステージdefのInfoに書き込む。 指定したパスのキャラをステージ側のキャラとして登場させる。 Teamsideは3、攻撃は1P側2P側両方に当たり、両方から喰らう。 ステージdefだけでは実装できない機能をキャラによって実現できるようにするのが主な使い道。

Autoresizeparallax

BGレイヤーのパラメータ。 ズームアウト時、IKEMENによるparallaxのサイズの自動修正を行うかどうかを指定する。省略時は1。 これを0にした上でZoomdeltaを指定することで、MUGEN1.1でparallaxがズームアウトした時と同じ挙動を再現できる。

Zoomscaledelta

BGレイヤーのパラメータ。 Zoomdeltaに逆補正をかけることができる。 ズームアウト時に画像の比率が歪むのを逆補正をかけて戻すのが主な使い道。 数値はxとyの2つを読み込み、それぞれを省略して片方だけに逆補正をかけることも可能。

Xbottomzoomdelta

BGレイヤーのパラメータ。 ズームアウト時の画像の底辺のXスケールの縮小率を指定する。省略時は1。Autoresizeparallaxが1でないと機能しない。 Widthの立体視差を使用したステージで大きなズームアウトを行うと、底面のXスケールが異常に小さくなり酷いとフリーズする現象の対策。この現象は仕様上正しい動作なので、新たにパラメータを追加し記述で対策できるようにした。

キャラクターdefファイルの追加パラメータ

Portraitscale

Infoに書き込む ポートレイトの表示倍率を指定する(Localcoord準拠の表示倍率は上書きされる)

その他

ステージのZoomdeltaについて

Zoomdeltaの2項目はMUGEN1.1では読み込まないが、ここではY方向のZoomdeltaとして処理するようにした。 省略した場合は1項目と同じ値が入り、MUGEN1.1と同様の処理を行う。

BGctrlのSinYとSinXについて

MUGEN1.1にはBGctrlのSinYとSinXがBGCtrlDefのlooptimeを無視するバグがある。 そのためIKEMEN GOではMUGEN1.1を想定したステージのSinYとSinXの動きがおかしくなることがある。 BGCtrlDefのlooptimeと、SinYかSinXのValueの2項目(周期)の数値を合わせることで対処できる。

ExplodのXangleとYangleについて

MUGEN1.1ではこれを使うと微妙に視野角が働くため位置によって勝手に画像が歪むが、IKEMEN GOでは正射影で描画しているためこの歪みがない。 現状この歪みが無くなることによってエフェクトがおかしくなるキャラが確認できず、製作者としても歪みがないほうが作りやすいと思うため、この仕様で良しとする。

Zoomoutによるboundhighの変動処理を入れていない理由

MUGEN1.1ではZoomoutの値によってboundright、boundleftが変動するため、IkemenGOでもこれに対応する処理を入れている。

同様にboundhighもzoomoutの値によって変わるが、boundhighの場合修正すべき値がステージによって一定でないため、修正処理を入れていない。 この修正すべき値が一定でない理由は、ステージのboundhighを決定付ける背景レイヤーのzoomdeltaがステージによって異なるから。boundrightとboundleftでは基準となるzoomdeltaが1の背景レイヤーがほぼ必ず存在するためzoomoutの影響によってズレてしまう値もステージ問わず一定になる。一方boundhighはそれを決定付ける背景の上限に相当するレイヤーのzoomdeltaが、あまりスクロールしないようになっていると0.2だったり、逆に一枚絵ステージの場合は1だったりする。この場合zoomdeltaが1のステージより0.2のステージの方が補正値が小さくなる。そしてどのレイヤーがboundhighを決定付けているのか、defを読んだだけではわからない(zoomdeltaが一番小さいレイヤーとは限らない)。よってboundhighのズレを自動的に修正することはできない。MUGEN1.1でこれが問題にならないのは、ズームアウト最大状態でないとステージの表示上限に到達しないバグがあるため。そしてこれに合わせてboundhighが設定される場合があるために、ステージによって修正すべき値が一定でなくなっている。 また、1.1のズームアウトのバグを無視してboundhighを設定している製作者が少なからずいるという事情もある。この場合は補正を入れないのが製作者の意図通りの動作となる。