DHQの雑記とか

mugen関連でいろいろと

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

先行入力用記述テンプレ

mugenではデフォルト先行入力が効かず、またbuffer.timeを利用するとバグが発生する確率が跳ね上がります。
というわけで、できるだけ機械的に導入できるようにした先行入力用記述をテンプレ化して掲載。
機能性などは二の次にして、できるだけ簡単に導入できるような形にしています。


手順1
以下の記述を-3ステートに追加します。statenoやIDが重複した場合は、適宜変更して下さい。

;先行入力認識用ヘルパー
[state -3, 先行入力認識用ヘルパー]
type = helper
trigger1 = !numhelper(99999)
trigger1 = !ishelper
helpertype = normal
name = "commandhelper"
stateno = 99999
ID = 99999
postype = p1
pos = 0,9999
keyctrl = 1
pausemovetime = 2147483647
supermovetime = 2147483647


手順2
-3番ステート、-2番ステート、-1番ステートの一番上に以下のステコンを追加します。

;先行入力認識用ヘルパー暴走防止
[state -3, ステートリセット]
type = changestate
trigger1 = ishelper(99999)
value = 99999
ignorehitpause = 1


手順3
cnsファイルの末尾に以下の記述を追加。
animは攻撃判定のないanimであればなんでもかまいません。

[statedef 99999]
type = A
movetype = I
physics = N
ctrl = 0
anim = 9999

[state 99999, 間違いで本体が来たら立ちへ移行]
type = selfstate
trigger1 = !ishelper
value = 0

[state 99999, 不可視化]
type = assertspecial
trigger1 = 1
flag = invisible
flag2= noshadow

[state 99999, 無敵化]
type = nothitby
trigger1 = 1
value = SCA,AA,AP,AT

[state 99999, posset]
type = posset
trigger1 = 1
x = root,pos X
y = 9999

[state 99999, turn]
type = turn
trigger1 = root,facing != facing


手順4
statedef 99999以下に、-1ステートにあるcommandがトリガーに含まれているchangestate群のうち、
先行入力を有効にしたい技のステコンをコピペ。


手順5
手順4でコピペしたステコン一式を以下のように書き換え。

[state -1, 真空波動拳]
value = 3000
type = changestate
triggerall = command = "sinkuhadouken"
trigger1 = ctrl
trigger2 = stateno = 200 && movecontact

[state -1, 波動拳]
value = 1000
type = changestate
triggerall = command = "hadouken"
trigger1 = ctrl
trigger2 = stateno = 200 && movecontact

これらを

[state -1, 真空波動拳]
type = varset
trigger1 = command = "sinkuhadouken"
v = 0
value = 7;先行入力猶予7-1F

[state -1, 波動拳]
type = varset
trigger1 = command = "hadouken"
v = 1
value = 4;先行入力猶予4-1F

これで、commandが入力されるとvar(0)、var(1)・・・に数値が代入されるようになります。
技ごとに別のvarを使っても、よほど先行入力の対象にする技が多くなければ足りると思います。
なお、喰らいモーション中にだけ先行入力を有効にしたい時などは、適宜条件を追加して下さい。
valueの値から1を引いた数が、先行入力が保持されるフレームです。
状況によって保持されるフレームの長さを変えたい時は、トリガーを追加した上で
valueの部分を置き換えたステコンを追加して下さい。


手順6
statedef 99999の最後に以下の記述を追加。使ったvarの分だけvaraddが必要になります。

[State 99999, 真空波動拳先行入力フレーム減算]
type = varadd
trigger1 = var(0) > 0
var(0) = -1

[State 99999, 波動拳先行入力フレーム減算]
type = varadd
trigger1 = var(1) > 0
var(1) = -1

特に事情があって入力されたコマンドをリセットしたい時は、
var(0)、var(1)をvarsetで0にして下さい。
ただし本体のhitpausetimeが有効になっている間に入力されたコマンドは
本体の方で内部処理として保持されるため、リセットできません。


手順7
-1ステートにあるcommandがトリガーに含まれているchangestate群のうち、
先行入力を有効にしたい技のステコンのトリガーに以下のように追記。

[state -1, 真空波動拳]
value = 3000
type = changestate
triggerall = command = "sinkuhadouken"
trigger1 = ctrl
trigger2 = stateno = 200 && movecontact

[state -1, 波動拳]
value = 1000
type = changestate
triggerall = command = "hadouken"
trigger1 = ctrl
trigger2 = stateno = 200 && movecontact

これらに

[state -1, 真空波動拳]
value = 3000
type = changestate
triggerall = command = "sinkuhadouken" || helper(99999),var(0) > 0
trigger1 = ctrl
trigger2 = stateno = 200 && movecontact

[state -1, 波動拳]
value = 1000
type = changestate
triggerall = command = "hadouken" || helper(99999),var(1) > 0
trigger1 = ctrl
trigger2 = stateno = 200 && movecontact

changestate用のステコンに追加するのは、ヘルパーの変数に関わる条件だけです。
これ以外の条件を加えると、本来有り得ないタイミングでキャンセルがかかってしまうことがあります。
-1ステート以外のステートにcommandトリガーを使ったchangestateが置いてあるキャラには、その都度追加して下さい。
なお追加する際は、もとからあるステコンに追加する形をとって下さい。
元々-1ステート以外にあったchangestateを、-1ステートに持ってくることはオススメできません。

  1. 2012/01/11(水) 15:55:53|
  2. キャラ製作の豆知識
  3. | トラックバック:0
  4. | コメント:2
<<フルカラー対応アニメーションカットインの作り方 | ホーム | プレイヤー操作動画上げてみました その17>>

コメント

導入させていただきました

ちょうど導入を考えていたのでホントありがたいです
これからも使わせていただきますm(__)m
  1. 2012/01/12(木) 01:22:23 |
  2. URL |
  3. にまめ #idkf9O26
  4. [ 編集 ]

お役に立てたようで何よりです。
ブログにはあえて必要最小限の記述しか載せておりませんので、
必要であればどんどん改造してやって下さい。
  1. 2012/01/13(金) 02:57:21 |
  2. URL |
  3. DHQ #km62nynQ
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://dhq.blog137.fc2.com/tb.php/51-1b4ed9d8
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

DHQ

Author:DHQ

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

未分類 (0)
お知らせ (2)
mugenの仕様 (16)
mugenのAI (3)
キャラ製作の豆知識 (31)
動画について (32)

FC2カウンター

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR

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