レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
製作お助け掲示板
製作で困ったことがあれば
質問をどうぞ
どんな初歩的な質問でも
キャラ製作の先人達がやさしくお答えいたします。
ただし教えてくれた内容が間違っていても怒らないように。
だれにでも間違いはあります。
ココで得た知識を吸収し、教える側に回れるように精進しましょう。
また
先人達も知識がさび付かないように、理解をより深めるために
お互いに知識を出し合い、高め合いましょう。
ヘルパーがReversalDef成功したかどうかはHelper(***),NumTargetで本体側から判別可能だから
それを条件にChangeStateすればおk
そのヘルパーにHitDef実行させている場合はタゲの有無だけじゃ判別できないけど
特定の当身技の補佐として一時的に召喚するヘルパーであれば大丈夫な筈
Targetって自分が攻撃当てた時につけるばんごうでしたよね
要するに当て身成功したときにターゲット番号振って、その番号で判別するんですか?
ちょっと記述の書き方悩んでます。すいません・・・
NumTargetってターゲット奪った相手のこともいうんですね!解決しました
丁寧にありがとうございました。
ガンマレイのように画面端まで届く攻撃判定を持った、
複数回攻撃が当たる技について質問なんですが・・・。
判定は出ていても攻撃が5ヒットを超えた段階で、相手はダウンする
(攻撃が当たらなくなる)ように設定していたんですが、ごく稀に
ヒット制限や想定している攻撃力・補正を逸脱してダメージを与えることが
あります。どなたか、原因に見当がつく方がいらっしゃいましたら、教えて
頂けないでしょうか?
問題の技のhitdef記述は以下の通りです。
[State 3000,判定1]
type = HitDef
triggerall = HitCount < 5
trigger1 = animelem = 4
trigger2 = animelem = 5
trigger3 = animelem = 6
trigger4 = animelem = 7
trigger5 = animelem = 8
trigger6 = animelem = 9
trigger7 = animelem = 10
trigger8 = animelem = 11
trigger9 = animelem = 12
trigger10 = animelem = 13
trigger11 = animelem = 14
trigger12 = animelem = 15
trigger13 = animelem = 16
trigger14 = animelem = 17
attr = S, HP
hitflag = MAFDP
guardflag = MA
damage = ceil(70*fvar(0)*fvar(1)), ceil(10*fvar(0)*fvar(1))
animtype = Hard
air.animtype = Back
ground.type = High
priority = 6, Hit
pausetime = 0, 2
getpower = 0, 0
ground.slidetime = 20
ground.hittime = 20
guard.hittime = 20
ground.velocity = -1,-1
guard.velocity = -6
air.velocity = -0.5,0
airguard.velocity = -0.5,0
ground.cornerpush.veloff= 0
air.cornerpush.veloff = 0
down.cornerpush.veloff = 0
guard.cornerpush.veloff = 0
airguard.cornerpush.veloff = 0
palfx.time = 200
palfx.mul = 80, 200, 80
palfx.sinadd = 5,80,5,40
sparkno = -1
guard.sparkno = -1
sparkxy = 150,-60
hitsound = S3000, 2
guardsound = S120, 0
fall = 1 ;1だと自動立ち直りなし
fall.recover = 0 ;0だと受身不可能
fall.recovertime= 999999
air.fall = 1 ;1だと自動立ち直りなし
それ見る限りだと問題無いけど、
可能性としてはHitCountがリセットされてる(=タゲが外れてる)んじゃないかな
作者によってはCanRecoverフラグ無視して復帰ステートに飛ばしてたりするからそこで外れてるとか
特定の相手キャラでのみ発生するの?
それが原因ならステート奪うかHitDefの上にTrigger1=1で常時ReversalDefかけて永タゲ使うかで解決できると思う
もし違ったらそのステート内の他のステコンや常時監視を見ないと分からない
>885
回答ありがとうございます。
私のキャラが動画でやらかしてたのを見て、慌ててチェックをしているので、まだ特定の相手かどうかはわかりませんが・・・。
ご指摘の復帰ステートの件、該当の動画を見返して気がついたのですが、地面近くで変な食らい方しているんですよね。
fallフラグを無視した復帰の他に、クイックスタンディング等でダウン拒否してまだ残っている判定に引っかかるという可能性は
ありますでしょうか?
↓該当動画、9:10くらいから、ビオレンテの放射樹液が間桐桜に不自然な大ダメージを与えてます。ヒットカウントも8行ってます。
ttp://www.nicovideo.jp/watch/sm16535862
動画見てもよく分からんけど、ヒットカウントが継続してるからタゲ外れてる訳ではなさそうかな
初弾で2ヒット入ってるように見えるから相手側の不可視ヘルパーと本体で1度に2回当たってるんじゃない?
不可視ヘルパー重ねるのはアーマー処理でも使う手法だから本体の無敵設定し忘れてそうなってるのかも
HitCountは同一HitDefでの同時ヒットを1回とカウントするから4回×2ヒットした後にTriggerAll満たさなくなるから計8ヒットで理に適ってる
UniqHitCountなら同時ヒットも個別にカウントするから2回×2ヒットで満たさなくなる
5ヒットを超えた段階で当たらなくするなら等号を付けて「<=5」にするか「<6」にしないといけない
わかりました。では、ヒットカウントは気にしなくても良いということですね。
ダメージがおかしなことになる方法の修正は・・・すみません、「HitDefの上にTrigger1=1で常時ReversalDefかけて永タゲ」が
ちょっとよくわからないです・・・。「ステート奪う」の方はわかりますが、できれば他のビーム系超必殺技を持っているキャラ
と同じく、通常の処理でなんとかしたいと考えております。
この現象が回避できるなら、この際ヒット制限は撤廃して、ダメージ×14ヒットで現在と同等の火力に調整し直してもいいと思っているんですが・・・。
triggerall = HitCount < 5を抜いて、ヒット時は全てのhitdefが当たるようにしておけば、よっぽど変な食らいぬけをされない限りは、
普通の攻撃と同じようにヒットします・・・よね?
間桐桜のcns見ないと分からないけど、ヘルパーによるアーマー処理のダメージと無敵設定ミスにより本体が直接受けたダメージが重複して大ダメージになってるのでは?って話ね。
もしそうならビオレンテ側のcnsどうこうの問題じゃないから>>885 は気にしなくていいし、寧ろ間桐桜の作者に不具合報告した方がいい
本来HitDefによるターゲットは相手のMoveTypeがHじゃなくなったときに解除されるんだけど、ReversalDefを実行し続けることによってターゲットが解除されずに残るのが「永タゲ」
相手がCanRecover無視で復帰してMoveType!=HになってもReversalDefを途切らせなければターゲット解除されずにHitCount継続するからTriggerAllでのヒット数制限が効く
Var使ってもいいならTime=0で0にセットしておいてヒット毎に1加算、そのVarでTriggerAll設定した方が確実
昨日は途中で寝落ちしてしまいました。すみません。
今日帰ってきたらvar追加したりして色々やってみます。また、他のキャラ相手にもこの現象が
起きるか試してみるまで、間桐桜の製作者の方への報告は保留します。桜以外にも起きたら
やはりこっちの問題ですし・・・。結果は後でまた報告に来ます。アドバイスありがとうございました!
>>884 の件ですが、タッグ時で、かつ相手が地面と判定に挟まれるような食らい方をしたときに発生するようです。
(地面の上でビタンビタンと小刻みに跳ねる食らい方をしてました)
ジェダ・cvsベガでも確認できたため、間桐桜の問題ではないようです。
>>889 のvarを使ったやり方も試してみましたが、どうもうまく行きませんでした。
現在、ヒットカウントが途中でリセットされて過剰に食らっている可能性を考慮して、ヒット制限を解除して全判定が普通に命中するように設定し、
ダメージ量をいじって調整しています。
また、保険としてヒット時に地面に近づかないように、各velocityのy値を-1にしています。
これで例の現象が起きなければいいのですが、原因が確定できたわけではないのでいささか不安です。
もし、原因に心当たりがある方がいらっしゃいましたら、教えて頂ければ幸いです。宜しくお願いします。
何とも言えんね…
ダウン追い討ちで問題が出てくるような記述ではないと思うんだけど
Var使って上手くいかないなら>>884 のHitDef以外のところが悪さしてる気がしないでもない
制限解除しても妙な現象が起きるなら常時監視やHitDef以外も見直す必要があるかも
ヒット数制限付きの多段飛び道具ならProjectileでProjHitsとProjMissTime設定すればできるけど
DamageにかけてるFVar(0)やFVar(1)がリアルタイムで反映されないのが難点
イントロでヘルパーをポヨンポヨンさせてparentに近づいたら999193にアニメ変更したいのですが、アニメが999193になると何故か最初の1枚目で止まってしまいます。
[Statedef 999191]
type = A
ctrl = 0
anim = 999191
velset = 1.1,-3
[State 191, 重力]
type = Gravity
trigger1 = time >= 10
[State 191, 地面に着く]
type = velset
trigger1 = pos y >= 0
x = 1
y = -8
[State 191, アニメ変更]
type = changeanim
trigger1 = pos y >= 0
trigger1 = pos x <= 40
value = 999192
[State 191, アニメ変更]
type = changeanim
trigger1 = pos x >= (parent,Pos x)-30
value = 999193
[State 191, 移動終わり]
type = velset
trigger1 = pos x >= (parent,Pos x)
x = 0
y = 0
二つ目のアニメ変更のステコンが原因かも
たぶん条件を満たしたら、自分がどのanimにいようと999193の最初に飛ぶようになってる
triggerall = anim != 999193
って入れてみたら何とかならないかしら?
違ってたらスマヌ
>>894
できました!しかし今度はdestroyselfでヘルパーを消し本体のchangestateでイントロを終了させようとすると
destroyself>一瞬消える>ニュートラル、のような感じになってしまいます
どうすればいいのでしょうか
[Statedef 191];本体ステート
type = A
ctrl = 0
anim = 191
[State 191, 特殊効果];試合が開始するまではこのコントローラを使おう(※2)
type = AssertSpecial
trigger1 = 1
flag = Intro ;イントロの状態
[State 191, カメラ固定]
type = ScreenBound
trigger1 = 1
value = 1
[State 191, ヘルパーを出す]
type = Helper
trigger1 = Time = 0
name = "intro" ;ヘルパーの名前。省略すれば勝手に「(ヘルパーを出した親)'s Helper」という名前になる。
stateno = 999191 ;ヘルパーの最初に向かうステートナンバー。
pos = -123,-45
postype = p1
facing = 1 ;ヘルパーの左右の向き(1=そのまま・-1=左右反転)
ownpal = 0 ;ヘルパーの色を独立させるか否か(0=させない,1=させる)
ID = 999191
[State 191, ステート変更];アニメーションが終われば「通常立ち」のステートに変更する
type = ChangeState
trigger1 = NumHelper = 0
value = 0
[Statedef 999191];ヘルパーステート
type = A
ctrl = 0
anim = 999191
velset = ceil((parent,BackEdgeDist)-73.9),-3;1.1,-3
[State 191, 重力]
type = Gravity
trigger1 = time >= 10
[State 191, 地面に着く]
type = velset
trigger1 = pos y >= 0
x = 1.15
y = -8
[State 191, アニメ変更]
type = changeanim
trigger1 = pos y >= 0
trigger1 = pos x <= (parent,pos x) -40
value = 999192
[State 191, アニメ変更]
type = changeanim
triggerall = anim != 999193
trigger1 = pos x >= (parent,Pos x)-30
value = 999193
[State 191, 移動速度リセット]
type = velset
trigger1 = pos x >= (parent,Pos x)
x = 0
y = 0
[State 191, ステート変更]
type = changestate
trigger1 = pos y >= 0
trigger1 = vel y >= 0
value = 999193
[Statedef 999193]
type = A
ctrl = 0
anim = 999194
[State 191, 位置戻す]
type = posset
trigger1 = time = 0
value = 0,0
[State 193, ヘルパー消す]
type = destroyself
trigger1 = time = 10
自己解決しました
すみません
マガキ(KOF)みたいな相手に対して鳥篭喰らってるときに、ある技をリバサ発動する記述を作りたいのですが
いまひとつグッと来る記述が思い当たりません。
下記3つか、それ以外を組み合わせる形式が良いのではないかとまでは考えたのですが……
◆画面上に飛び道具が一定数以上存在する。
⇒ProjectileではなくHelperに直接Hitdefを与えるタイプの飛び道具だと認識できない。
Helperの絶対数を数えればと思ったのですが、エフェクトや各種処理のために出しているヘルパーと見分けをつけようがない
ラウンド開始時のHelper数を記憶させればゲージとかの常時展開型Helperは除外して数えさせることは出来ると思うのだけれども、どうにも不確実性が高いのでゲージ技の記述には向かないのでは?
◆常時監視で「飛び道具を喰らった回数」を見張らせる
⇒記述自体は可能と思われるものの、単体では適用範囲が広すぎるので条件としてゆるいかも
◆飛び道具でダウンする(もしくは、それがn回連続する)
⇒Commonのダウンステートへ送られる時の喰らった攻撃or最初に喰らった攻撃を常時監視ステートで記憶させるようにすれば、一応は可能なはず。
が、コンボの〆に飛び道具を使うキャラとかの場合、誤認する恐れが高い?逆に弾幕張って接近してくるor起点にしてくるキャラを認識できない可能性も?
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; 初期相手ヘルパー数確認
;━━━━━━━━━━━━━━━━
[State -2, VarSet]
type = VarSet
triggerAll = !var(57)
trigger1= RoundState = [0,1]
var(57) = Enemy,NumHelper
[State -2, VarSet]
type = VarSet
triggerAll = var(57) > Enemy,NumHelper
trigger1= RoundState = 2
var(57) = Enemy,NumHelper
[State -2, VarSet]
type = VarSet
triggerAll = var(57) < Enemy,NumHelper
trigger1= RoundState = 2
trigger1= StateNo = 0 && !Ctrl
trigger1= EnemyNear,StateNo = 0 && !EnemyNear,Ctrl
var(57) = Enemy,NumHelper
[State -2, VarSet]
type = VarSet
triggerAll = var(57) > 0
trigger1= RoundState = 4
var(57) = 0
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; 飛び道具を喰らった回数
;━━━━━━━━━━━━━━━━
[State -3, VarAdd]
type = VarAdd
triggerAll = EnemyNear,HitDefAttr = SCA,NP,SP,HP
triggerAll = Time = 1 && Alive
trigger1= StateNo = 5000 || StateNo = 5010 || StateNo = 5020 || StateNo = 5070
var(x) = 1
これに変数リセット記述を加える
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; 飛び道具でダウンする(もしくは、それがn回連続する)
;━━━━━━━━━━━━━━━━
記述思いつかずorz
投稿してから気付きました
triggerAll = EnemyNear,HitDefAttr = SCA,NP,SP,HP
これだとProjectile喰らったことを認識できないですね、本体かヘルパーがP属性のHitdef出してないと反応しないです。
ヘルパーアーマー記述みたいな飛び道具しか喰らわないヘルパーを出そうかって思いましたが、その場合ヒットスパークが2重に出てしまう;
飛び道具ヘルパーであればMoveType=Aになってる筈だから
PlayerIDリダイレクトでヘルパーのMoveTypeとTeamSideを監視すれば識別できると思う
PlayerIDは通し番号だから新しく出したヘルパーからPlayerID(ID-1)とかで参照可能
飛び道具喰らった回数のカウントなら
[State ]
Type = HitOverride
Trigger1 = 1
Attr = SCA, NP, SP, HP
StateNo = 5090
Time = -1
で飛び道具被弾時に適当なステート飛ばして
[Statedef 5090]
Type = U
MoveType = H
Physics = U
[State ]
Type = VarAdd
Trigger1 = 1
V = ***;適当なVar番号
Value = 1
[State ]
Type = ChangeState
Trigger1 = StateType = S
Trigger1 = GetHitVar(yVel) = 0
Value = 5000
[State ]
Type = ChangeState
Trigger1 = StateType = C
Trigger1 = GetHitVar(yVel) = 0
Value = 5010
[State ]
Type = ChangeState
Trigger1 = StateType = L
Trigger1 = GetHitVar(yVel) = 0
Value = 5080
[State ]
Type = ChangeState
Trigger1 = (StateType!=A)*(StateType!=L)
Trigger1 = GetHitVar(Type) = 3;Trip属性
Value = 5070
[State ]
Type = ChangeState
Trigger1 = 1
Value = 5020
で即座に本来の喰らいステートに戻せばいいんじゃない?
HitOverrideの副作用で「P2StateNo付きのP属性の攻撃」を喰らわなくなっちゃうけど
A属性やT属性は通常通りMUGENの内部処理に従って喰らい処理ができる
製作中のキャラに固有ゲージというか固有アイコンを作ろうとしたのですが、
どうしても移動するとそれが画面外へ置いてけぼりになってしまいます
ヘルパーを使っているのですが、どなたか解決方法を知っている方がいらっしゃるなら、
是非教えてください
よろしくお願いします
基本的にそういうのはExplodで作った方が楽だけど
HelperでやるならxはPosSetで「適当な数字」(FacingかTeamSideを考慮して)、yはPosAddで「適当な値-ScreenPos y」を常に実行させる
PauseMoveTimeやSuperMoveTimeを適当に大きく設定するのは当然だけど、どうしても多少のズレはでてきちゃう
あとはHelperType=Playerで出した場合(インジケーター用のヘルパーなら普通はやらないけど)はScreenBoundを0にしとくことも忘れずに
>>901
アドバイスありがとうございます!
やはりExplodの方にすべきですかね…
Explodの場合ならどのように記述すると画面内に固定になるのでしょうか?
PosTypeをLeftかRightにしてBindTimeを-1にすればいい
PauseMoveTimeとSuperMoveTimeをちゃんと設定すれば暗転中に画面が移動しても置き去りにされることもない
状況に応じて変化するインジケーターはRemoveExplodで古いのを消して新たにExplod実行する感じ
ありがとうございます!
無事ゲージを搭載できました
どうも、投げ技を作り始めて早速躓きました、鰐です。
記述は以下のような感じで、相手を後方に投げて叩きつけるのですが、
その後selfstateでstate5100に入りバウンド中の相手が、投げた側が投げ動作終了して立ち状態に戻ると同時に
投げた側の足元まで瞬間移動?して戻って(接近して)来てしまうのです
statedef716で設定しているvelXは一応活きてるようで跳ね上がるときには離れるように弾んでいくのですが
バウンドの途中で叩きつけた位置よりもやや近い間合いまでワープしてきます
どのあたりが原因でこのようなことが起こるのかわからず難儀しており
ご教授いただければ幸いです
;背負い投げ
[statedef 710]
(略)
[state 710, 攻撃判定]
type = hitdef
triggerall = (P2stateno != [150,155]) || P2stateno != 40
trigger1 = animelem = 2
attr = S,NT
hitflag = HL
priority = 1, miss
sparkno = -1
P2facing = 1
P1stateno = 711
P2stateno = 715
fall = 1
fall.recover = 0
(略)
;背負い投げ、投げ動作
[statedef 711]
type = S
movetype = A
physics = N
anim = 711
poweradd = 0
[state 711, 投げられ側座標1]
type = targetbind
trigger1 = animelemno(0) = 1
pos = 50, 0
(略)
[state 711, 投げられ側座標7]
type = targetbind
trigger1 = animelemno(0) = 7
pos = -75, -34
[state 711, 投げられ側座標8]
type = targetbind
trigger1 = animelem = 8
pos = -70, 0
[state 711, 投げダメージ]
(略)
[state 711, 投げられ側を投げられ終了ステートに送る]
type = targetstate
trigger1 = animelem = 8
value = 716
[state 711, 叩きつけエフェクト]
(略)
[state 711, ターン]
type = turn
trigger1 = animelem = 11
[state 711, 動作終了]
type = changestate
trigger1 = animtime = 0
value = 0
ctrl = 1
;背負い投げ、投げられ動作
[statedef 715]
type = A
movetype = H
physics = N
velset = 0, 0
[state 715, 投げられ動作アニメ]
type = changeanim2
trigger1 = time = 0
value = 715
;背負い投げ、投げられ終了
[statedef 716]
type = A
movetype = H
physics = N
velset = 2.2, 0
[state 716, 投げられ終了〜ダウン]
type = selfstate
trigger1 = time = 0
value = 5100
ワープならこっちのTargetBindか相手のPosSet/PosAddだろうから
TargetBindのどれかが誤作動してるんじゃない?
Trigger1 = Anim = 711を全TargetBindに付け加えても起こるかどうか確認かな
早速の書き込みどうもです。
試してみましたがその方法では挙動変りませなんだ…
common1の記述との兼ね合いで変になってんのかとも思い
バウンド部分までstate716内で作って完全に倒れてからダウン状態に直接移行みたいにもしてみたんですが
それでも動作中に(投げた側が通常立ちに戻ると)posずれるんですよねー。
見た目的には(投げた側の投げモーションの)animtime = 0 をトリガーにposset(X)かtargetbindが働いてるようなんだけど…
解決しました!
最初のtargetbindのトリガーを
animelemno(0) = 1(0フレーム後のアニメコマ数が1である)から
animelemtime(2) < 0(アニメが2コマ目に変わった瞬間からの経過時間が0未満である、つまりまだアニメ2コマ目に変っていない)
に変更することで解決しました。
仕様上、各アニメーションはchangestateしなければ最初にループする都合上、
animtime = 0 (アニメーションが一週終わった瞬間)にも animelemno(0) = 1 (次の瞬間にアニメが1コマ目)を満たしていると判断されるようです。
カンフーマンに倣いanimelemtime(2) < 0にするとこちらはアニメ終了時のタイミングは含まないのでtargetbindが暴発しないのでした。
奥が深い(何
今更ですけど、ステコンに
persistent=0
を付けるっていう方法でも良いんじゃないかなと思います。
これを付けたら一度しか実行されなくなりますし。
調べてみました。なるほど…こんな記述追加要素もあったのですな。
ご教授有難うございます、憶えておこうと思います。
…奥が深い(また
重複する内容が非常に多いので、算数的なトリガー記述を使用して圧縮したいのですが、まるでわかりません。
理科系の人、助けてください。。。
[State 191, Helper_分身出現]
type = Helper
trigger1= time = 280
trigger2= time = 284
stateno = 10193
ID = 10193
pos = IfElse(Numhelper(10193)%2,1,-1)*88,IfElse(Numhelper(10193)%2,1,-1)*14
postype = p1
name = "Shadow"
size.xscale = 1-IfElse(Numhelper(10193)%2,1,-1)*0.025
size.yscale = 1-IfElse(Numhelper(10193)%2,1,-1)*0.025
[State 191, Helper_分身出現]
type = Helper
trigger1= time = 288
trigger2= time = 292
stateno = 10193
ID = 10193
pos = IfElse(Numhelper(10193)%2,1,-1)*33,IfElse(Numhelper(10193)%2,1,-1)*28
postype = p1
name = "Shadow"
size.xscale = 1-IfElse(Numhelper(10193)%2,1,-1)*0.025
size.yscale = 1-IfElse(Numhelper(10193)%2,1,-1)*0.025
[State 191, Helper_分身出現]
type = Helper
trigger1= time = 296
trigger2= time = 300
stateno = 10193
ID = 10193
pos = IfElse(Numhelper(10193)%2,1,-1)*33,IfElse(Numhelper(10193)%2,-1,1)*28
postype = p1
name = "Shadow"
size.xscale = 1-IfElse(Numhelper(10193)%2,-1,1)*0.025
size.yscale = 1-IfElse(Numhelper(10193)%2,-1,1)*0.025
[State 191, Helper_分身出現]
type = Helper
trigger1= time = 304
trigger2= time = 308
stateno = 10193
ID = 10193
pos = IfElse(Numhelper(10193)%2,1,-1)*88,IfElse(Numhelper(10193)%2,-1,1)*14
postype = p1
name = "Shadow"
size.xscale = 1-IfElse(Numhelper(10193)%2,-1,1)*0.025
size.yscale = 1-IfElse(Numhelper(10193)%2,-1,1)*0.025
[State 191, Helper_分身出現]
type = Helper
trigger1= time = [280,308]
trigger1= time%4 = 0
stateno = 10193
ID = 10193
pos = (Numhelper(10193)%2*2-1)*(88-55*(time=[288,300])),(Numhelper(10193)%2*2-1)*14*(1+(time=[288,300]))*(1-2*(time>292))
postype = p1
name = "Shadow"
size.xscale = 1-(Numhelper(10193)%2-.5)*0.05
size.yscale = 1-(Numhelper(10193)%2-.5)*0.05
でどうかな?
記述だけ見て纏めただけだからMUGEN上でどうなるか見てない
255文字制限は問題無い筈
上手く機能しました! ありがとうございますー
と、思ったらよく見るとtime=296で表示されるヘルパーのスケールが妙に大きい……なぜだorz
helperのdestroy条件が分からないから何とも言えんけど
8F周期で大きいヘルパーと小さいヘルパーを4F毎に交互に出すなら
Numhelper(10193)%2じゃなくてtime%8/4でやった方がいいかもね
trigger1= Asin((P2Dist Y+69+Vel Y*3+(EnemyNear,Vel Y*3)+(EnemyNear,Const(movement.yaccel)*3*3/2))/(P2BodyDist X-25+Vel X*3+EnemyNear,Vel X*3))*180/Pi = [35,45]
こちらの記述が「asin argument out of range」というエラメを吐いてしまいます。
エラメの意味は「asin()内の数値が設定範囲外です」ということだと思いますが、何がマズイのでしょうか?
ひょっとして、そもそもこのトリガーは現在の記述内容のままではエラメを吐くのみで機能していないのでしょうか?
Asinが-1〜1の間の値から角度を返す関数だから
括弧内に-1未満か1より大きい値が入ってたらエラー吐く
内容的に3F後の相手と自分の角度を返したいんだと思うけど
それならAtan(y距離/x距離)にしないと
現在位置から決まった距離を瞬時に移動させたいのですが、possetは画面を基準としているようでうまくいきません。
何のステートを使えばいいのでしょうか?
PosAdd
あっ、それの存在すっかり忘れてました
ありがとうございます
「いっしょにトレーニング」が自動ガードしてくれません・・・
Hitdefに問題があると思うのですが、どこがいけないのでしょうか。
ご教授願います。
[State 3101, ヒット定義]
type = HitDef
trigger1 = Time = 0
attr = A, HA
animtype = Back
damage = floor(182/(hitcount+1)), 12
getpower = 0
priority = 5
guardflag = MA
pausetime = 30,30
sparkno = 3
sparkxy = 0,-110
hitsound = 5,4
guardsound = 6,0
ground.type = Low
ground.slidetime = 26
ground.hittime = 26
ground.velocity = -1.3,25
guard.velocity = -13
air.velocity = 0,25
airguard.velocity = -4.5,-5
envshake.time = 8 ;攻撃を当てた場合の画面振動の処理
envshake.ampl = -40
envshake.freq = 60
p2facing = 1
fall = 1
fall.recover = 0 ;相手は空中受け身が出来なくなる
fall.envshake.freq = 178
fall.envshake.time = 15
AttackDistがいくつに設定されているかと距離に関わらずガードされないのか辺りを確認
MoveTypeはチェンステの段階([Statedef 3101]の直下)でAにしてるよね?
あと、ステ番的に超必だと思うから
PauseやSuperPasue使って止めてる間に2ヒット以上させていないかもチェック
時止め状態だと1発目の被弾で150、152、154に飛ぶけど2発目以降は
150、152、154のTime=0で受ける羽目になるからガード判定出ない
すみません説明が抜けていました
自動ガードしてくれないのは空中のみです
自己解決しました
SuperPanseのmovetimeの値をtimeより小さくしたら相手が自動ガードしてくれました
・・・なぜ?
>>922
次にガードしてくれなくなったときはそこを確認してみます、ありがとうございました
たびたび質問すみません・・・
相手がダウンしている時間を固定したいのですが、(AIだと何故か早く起き上がる)どうすればいいかわかりません。
(fall = 1、fall.recover = 0にはしています)
hitdefでステートを奪えばいいんじゃないかと奪ってみましたが、
相手側で指定しているダウンしたときの音が鳴らないのでムリでした。
どうにかしてダウンしているときにステートを奪えないでしょうか。
よろしくお願いします。
初めまして、よろしくお願いします。
自分もドットに興味を持ち始めたのですが…
ドット絵のアドバイスなどはドット絵板に投稿したほうが良いのでしょうか?
あそこはキャラ製作専門といった感じでアドバイスだけを貰うってのはすこし気が引けるのです。
>>925
MUGENのダウンはボタン入力で起き上がりに移行するから
それを無効化するには自前でダウンステート用意しなきゃならない
だからダウン追い討ちが重要なキャラなんかは大抵ステート奪ってる
相手の処理を優先するなら相手のステート5100を感知してからTargetStateで奪う感じになる
タッグでの巻き込みが気になるならヘルパーReversalDefで個別にTarget取得する方法もある
>>926
ドット絵に関しては実際に見て貰いながらの方が的確なアドバイスが出るかと
(製作)付けてない投稿も結構あるから右に倣えでGo
とあるキャラのAIを⑨氏の講座、平成㌢氏の説明書を手本にしながら作っているのですが、
-3ファイルの[Statedef -3]って付けるとエラーが出るのですが何故でしょうか?
教えてください。お願いします。
あと、移動、ガード、必殺技はちゃんとするようになったのですが、
コンボがなかなか繋げられません。
AIにコンボするように記述するにはどうしたらいいですか?
自分はそのキャラの人操作はうまくなく、必殺技もろくに出せないぐらいヘタです。
やっぱり人操作がうまくないとAIは作れないのでしょうか…
>>928
[Statedef -3]を付ける場所は-3ファイルの一番上です。
>>927
がんばってみたけど難しいです
参考にできるキャラっていますか?
>>928
各ステートには最低1個のステコンが必要だから
[Statedef -3]
[Statedef -2]
みたいになってるとエラー
それ以外が原因だったらその情報だけじゃ分からん
コンボに関してはどの技からどの技に繋げられるかを理解すれば
人操作の腕関係なく作れるよ
北斗みたく喰らい挙動にヒット数補正がかかるやつだとちょっと大変だけど
>>930
930=925でいいんだよね?
タゲステに関しては
[State -1]
Type = TargetState
TriggerAll = NumTarget
Trigger1 = Target,StateNo = [5100,5101]
Trigger2 = Target,StateNo = 5110
Value = 5111
って感じで床バウンドした時点で奪うか、Trigger1無しで5110の完全ダウンだけ奪うか
巻き込み防止は色々やることあって面倒だからあまりお勧めしない
参考キャラは分からない
基本的に自分で思いつく記述を紹介してるだけだから
皆さまレイヤ―ってどれくらい分けていますか?
アニメーションさせやすいレイヤ―を教えてください。
自分は最初一枚絵はレイヤ―ひとつで描いていたのですが、アニメーションさせるときは面倒な気がするのです。
>>931
ありがとうございます。
教えてもらったステートを組み込んでみたところ、
「WARNING : PLAYER TRANING(33) IN STATE 3200 : CHANGED TO INVALID ACTION 2300」と出ました。
これは
しかしAIRファイルにはちゃんと[Begin Action 3200]があります
どこがおかしいのでしょうか?
↓CNS
[State 3101, 相手ダウンステート移行]
Type = TargetState
TriggerAll = NumTarget
Trigger1 = Target,StateNo = 5110
Value = 3200
[Statedef 3200]
type = L
movetype = U
anim = 3200
ctrl = 0
sprpriority = 2
[State 3200, ステート変更]
type = SelfState
trigger1 = Time = 200
value = 5120
↓AIRファイル
[Begin Action 3200]
5040,10, 0,0, -1
これは←読み飛ばしてください
>>933
多分、TRANINGが参照してるのは、TRANING自身のanim3200なんじゃない?
[Statedef 3200]の中に
[state 3200,]
type = changeanim2
trigger1 = time = 0
value = 3200
って入れてみたら上手くいかないかな
>>935
うまくできました!しかしタッグだと2人同時に当てた場合に変な挙動になる時が・・・
これは仕方ないのかな・・・
どうも、鰐です。
今回地上通常投げを3キャラに搭載終了しまして、とりあえず動作できたのですが、
どういうわけか3人のうち1キャラだけ、遊戯用に使用してるMUGENが落ちるようになってしまいました。
私普段の(作業しながらの)テストプレイ用と別に、集めた大量のキャラを登録したMUGENを別にわけているのですが、
3人作ってるうちの1キャラのみ、その登録数の多いほうのMUGENで使用キャラに選んで始めると本体が落ちます。
エラーメッセージなどは無く、windowsからのメッセージ?で「winmugen.exeは動作を停止しました」となります。
簡易テスト用のもう一方のMUGENだと普通にプレイできるようなのでキャラの問題だけでもなさそうなのですが
落ちるキャラは決まっているのでキャラが無関係というわけでもなく。
何か動くことは動くが落ち易くなってしまうような記述があったりするのでしょうか。
>>937
考えられるのは、登録ミスかなぁ
簡易テスト用は動くみたいだし、select.defを見比べてコピペしてみたらどうかね?
>937
そのキャラだけ、データが重いなんてことありません?
重すぎるとPC状況にもよりますが、エラーメッセ吐かずに
mugenが落ちたりします。
登録の多いmugenから他の登録キャラを減らしてみて
その落ちている一人を起動してみるのはどうでしょう。
どうもありがとうございます。
試してみたところ、select.defの登録ミスが原因だったみたいです。
私の作ってたキャラではなくて、他のキャラで更新でフォルダとdefファイルの名前が変ったのがあったのですが
select.defへの登録は古い方の名前のままだったのがありキャラセレクト画面で空欄の箇所が出来ていたのですが
そのキャラの部分を修正したところ落ちなくなりました。
何でそこに異常があると自分の問題のキャラだけが落ちるようになるのかはよくわかりませんでしたが(汗
でもどうやら解決した(?)っぽいです、有難うございました(笑)。
空中ダッシュに制限をかけたくて、
[State -1, Air Dash]
type = ChangeState
value = 110
trigger1 = Pos Y >= 100
trigger1 = command = "FF"
trigger1 = statetype = A
trigger1 = ctrl
という記述をしているんですが、どの位置にいても出せなくなってしまいます。
原因が分からないので、ご教授してもらえると助かります。
Pos y >= 100は地下100ピクセルよりも下に潜ってないと成立しない
>>942
ありがとうございます。他の座標系の記述と同じ方法でいいんですね。
しかし、-100にしてもどこでも発動出来てしまいます。
何か他に必要な記述があるんでしょうか?
100ピクセル以上上空じゃないと空ダできないようにするならPos y <= -100だよ、不等号の向きも変える
それでも上手くいかないならそこ以外のChangeState疑った方がいい
あと、100ピクセルって空ダの制限にしては大きいと思うけどそれでいいの?
>>944
出来ました、ありがとうございます!
100だと大きいと思ったので、50にしました。
すみません!
悪咲氏のケンのボイスパッチを作ったのですが、公開していいのでしょうか?
以前に悪咲氏が更新などを記録していたサイトに許可や、公開などのことを書いていたような気がしたのですが、
そのサイトはもう消えてるので確認できません。連絡を取ろうとしてもMUGENから引退しているので…
誰か悪咲氏のキャラの公開について教えてください。
初めましてネコマンマと申します
今月からドット絵を練習しているのですが
Do||Mu,Fileのふうりん氏の「見せるアニメの動かし方」の中のオバケというものがうまく書くことができません
何か書き方のコツなどがあれば教えて頂きたいです><;
trigger1 = helper(6068),var(50) := EnemyNear,StateNo
こいつがどうもエラー出すんですが
リダイレクトキーワード付きのvarに代入って、使えないんでしょうか?
>>947
始めまして
もう1000埋まっているほうの雑談掲示板の345
に、わっかりにくい説明がありますので、読んでみてください。
投稿してドット絵板あたりで聞いてみると
結構みんな教えてくれますよ。
練習頑張ってください。
>>949
返信して頂きありがとうございます
凄く参考になりました><
元々スパロボドットを使用したキャラ制作をしていたので
ドット絵キャラ制作作りも今までのような作り方をしているので
かなり邪道だと思っているので、そちらには投稿しにくかったのですが
一度ドット絵板の方で聞いてみようと思います。
>>948
:=にリダイレクトは使えない。あくまでVarSetの代用だと思ってもらえればおk
6068ヘルパーのVarを弄りたかったら6068ヘルパー自身がVarSet/Addや:=で弄るか
6068ヘルパーが呼び出したヘルパーがParentVarSet/Addするしか(バグ以外では)ない
わかりました。
ありがとうございます。
どうも、最近気分転換とCNS記述の練習を兼ねていつものオリジナルキャラじゃないものの製作に手を出している、鰐です。
そこで質問なのですが、
攻撃判定を持ったヘルパーが飛んでいって当たるタイプの飛び道具を作ったのですが
飛び道具ヒット→硬直中に本体の攻撃がヒットという状況になったときに何故かヒット表示が増えません(本来なら2hitを表示されるはず)。
なんでなんでしょう?
逆(本体の攻撃→飛び道具の連続ヒット)の場合は素直に2hitと出てくれるのですが。
弾のステートはこんな感じ。
[statedef 8000]
type = A
movetype = A
physics = N
velset = 3.3, 0
juggle = 1
ctrl = 0
anim = 8000
poweradd = 0
sprpriority = 3
[state 8000, 飛び道具と相殺など]
type = hitoverride
trigger1 = 1
attr = SCA,AA,AT,AP
stateno = 8020
[state 8000, 飛び道具以外に無敵]
type = hitby
trigger1 = 1
value = ,AP
(中略:補正などのための変数設定)
[state 8000, 攻撃判定]
type = HitDef
trigger1 = time >= 1 && !movecontact && !movereversed
attr = A,SP
damage = ceil(56 * (fvar(1)*fvar(2)*fvar(3)*fvar(4))), ceil(5 * (fvar(3)*fvar(4)))
guardflag = HLA
hitflag = HLAF
priority = 5,Hit
pausetime = 0,9
sparkno = -1
guard.sparkno = s8101
sparkxy = -10,0
hitsound = s2,2
guardsound = s1,1
animtype = Hard
air.animtype = back
ground.type = High
air.type = High
fall = 0
air.fall = 1
fall.recover = 1
fall.recovertime = 32+(4*var(11))
ground.slidetime = 19
ground.hittime = 19+(4*var(11))
guard.ctrltime = 19
ground.velocity = -10
guard.velocity = -11
air.velocity = -4.5, -5.5
airguard.velocity = -5.3, -1
air.hittime = 23+(4*var(11))
[state 8000, ヒットエフェクト]
type = helper
trigger1 = movecontact
helpertype = normal
name = "efect"
ID = 4
stateno = 8010
postype = P1
pos = 30,0
ownpal = 1
supermovetime = 0
pausemovetime = 0
[state 8000, 消滅]
type = destroyself
trigger1 = movecontact
trigger2 = movereversed
trigger3 = frontedgedist <= -40
…っと速効で(?)自己解決…
ヒット時に即時で(0フレームで)destroyselfしていたせいでした。
いなくなった人(ヘルパー)からのヒット数は引き継がれない模様。
ヒット時に弾のヘルパーは即消える代わりにヒットエフェクトを別ヘルパーで発生させていたのを
ヒット時に弾ヘルパー自体が消滅アニメステートに移動、アニメ終了したら自壊として消滅までの時間稼ぎをすることで解決
…やっぱり書き込む前の調べが足らんのかな…
コンボの締めにワイヤーダメージを与えたいのですが、コンボのラストにステートを奪うとバグってしまいます。
コンボではなく単発でワイヤーダメージを与えるとちゃんと処理するのですが・・・
どうすればいいですか?
ステート貼らなくちゃどうにもならんと思う
くねくねさんに作っていただいたAIを改変して(OKを頂いたので)にーどるの後に飛び込みをさせたいのですが、どうしても相手が激突してから飛び込んでしまいます
にーどるで相手を浮かす>相手が浮いてる間、ずっと飛び込み構え>相手が地面に激突してから飛び込む、といった感じです
追加した記述は以下のとおりです。どう変更すれば直るのでしょうか?var(30)はタッグ用生死判別でしたので無関係だと思います
trigger4 = EnemyNear(var(30)),StateType = A
trigger4 = EnemyNear(var(30)),MoveType = H
trigger4 = EnemyNear(var(30)),vel Y > 0.5
>>955
どうバグってるのか分からないことには…
>>956 の言う通り記述貼らなきゃ具体的な改善策も提示できない
>>957
>ずっと飛び込み構え
飛び込みステート中に飛び込みステートへのチェンステ読んでるんだと思う。
地面衝突でEnemyNear(var(30)),vel Y > 0.5を満たさなくなって初めてチェンステループから抜けて正常の動作になる。
Trigger4 = StateNo != (飛び込みステート)
を追加すれば良いんじゃない?
>>958
できました。ありがとうございます。
>>956 、>>958 すみません
[state a]
type = targetstate
trigger1 = movehit && FrontEdgeBodyDist > 50
value = 6005
;---------------------
; ワイヤーダメージ
;---------------------
[Statedef 6005]
type = S
movetype= H
physics = N
velset = 0,0
ctrl = 0
[State 6005, 2]
type = NotHitBy
trigger1 = 1
value = SCA
[State 6005, 3]
type = ChangeAnim
trigger1 = Time = 0 && GetHitVar(animtype) != [3,5]
value = ifelse((GetHitVar(groundtype) = 1),5000,5010) + GetHitVar(animtype)
[State 6005, 4]
type = ChangeAnim
trigger1 = Time = 0 && GetHitVar(animtype) = [3,5]
value = 5030
[State 6005, 5]
type = ChangeAnim
trigger1 = Time = 0 && (GetHitVar(animtype) = [4,5]) && (SelfAnimExist(5047 + GetHitVar(animtype)))
value = 5047 + GetHitVar(animtype)
[State 6005, 6]
type = ChangeAnim
trigger1 = Time > 0
value = anim
[State 6005, 6]
type = StateTypeSet
trigger1 = Time = 0
trigger1 = GetHitVar(yvel) != 0 && GetHitVar(fall)
trigger2 = Pos Y != 0
type = a
[State 6005, 7]
type = ChangeState
trigger1 = HitShakeOver = 1
value = 6006
[Statedef 6006]
type = A
movetype = H
physics = N
velset = -14.0,0
[State 6006, 1]
type = NotHitBy
trigger1 = 1
value = SCA
[State 6006, 2]
type = PlayerPush
trigger1 = 1
value = 0
[State 6006, 4]
type = ChangeAnim2
trigger1 = Time = 0
value = 2256
[State 6006, 7]
type = ChangeState
trigger1 = BackEdgeBodyDist < 15
value = 6007
[State 6006, 8]
type = SelfState
trigger1 = Pos Y >= 0 && Vel Y > 0
value = 5100
[Statedef 6007]
type = A
movetype = H
physics = N
anim = 5050
velset = 0, 0
[State 2202, 1]
type = PlaySnd
trigger1 = time = 0
value = 490,0
channel = -1
[State 6007, 1]
type = Turn
trigger1 = Time = 0
[State 6007, 2]
type = PosFreeze
trigger1 = Time = [0,3]
[State 6007, 3]
type = EnvShake
trigger1 = Time = 0
time = 15
[State 6007, 4]
type = VelSet
trigger1 = Time = 4
x = -2.8
y = -9.6
[State 6007, 5]
type = VelAdd
trigger1 = Time >= 4
y = .50
[State 6007, 6]
type = ChangeAnim
trigger1 = Time > 4 && Vel Y > 0 && SelfAnimExist(5060)
persistent = 0
value = 5060
[State 6007, 7]
type = SelfState
trigger1 = Time > 4 && Vel Y > 0 && Pos Y >= 0
value = 5100
バグの内容は6005ステートでのchangestateの条件を満たさないのに移動する。6006ステートでのchangestateの条件を満たしたのに移動しないことです。
どの攻撃ステートからステートを奪ってもこの現象が起こるのでステートを奪うトリガーかワイヤーダメージのステートがおかしいと思います。
>>960
TargetStateはどこに置いてるの?
個別ステートならそのステートにMoveHitPersistが付いてるかどうかも併せて。
TargetStateにIgnoreHitPause付いてないからHitDefのPauseTime(相手側)がPauseTime(自分側)と同じか小さい値だと
HitDefで自分がHitPauseしてる間はタゲステが実行されず、HitPauseが終わってからタゲステ実行するから相手は既にHitShake終わってて即座に6006行く
TargetStateのトリガー的に自分がステート移動するかMoveHitReset実行しない限り(または前方の壁に近づかない限り)毎F実行し続けるから
タゲステループを回避する工夫が必要だと思うよ。
個別ステートに置いてるならPersistent=0付け加えるのが楽だけど。
凄まじく初歩的な質問で申し訳ないのですが
ドット絵の保存はpngかgifでと聞いたのですが
自分はいつもbmpでドット絵を保存していたのですけどマズかったですかね?
>>962
ありがとうございます!
無事に直りました!
>夜霧さん
ドット絵板への投稿は、注意書きにあるとおりです。
皆さんの製作環境にもよると思われますが
絵のデータを保存時に劣化させるJPG以外なら
GIFだろうとMAG(笑)だろうが構わないと思いますよ。
(GIF等は、パレット256色の制限が有り、それ以上の色数の絵は
自動的に256色に減色されます)
自分はBMP保存し→パレット適応減色→GIFにしていますね。
>>965
ありがとうございます
bmpでも特に問題はないみたいで良かったです
これまで通りの保存方法で進めていくます
[Statedef 20000];通常カウンター用ヘルパー
type = S;属性
movetype = I;状態
physics = N;重力
juggle = 0
ctrl = 0;コントロール
anim = 20000;アニメ
poweradd = 0;パワー(ゲージ)
sprpriority = 0;表示
velset = 0 ;X方向の速度,Y方向の速度
[state -2, 0]
type = AssertSpecial
trigger1 = NumHelper(20000)
trigger1 = 1
flag = noshadow
ignorehitpause = 1 ;ヒットポーズ影響無し。ヒットポーズをいまいちわかっていない。
[state -2, 1]
type = DestroySelf
trigger1 = NumHelper(20000)
trigger1 = time >= 300
とりあえずきちんとヘルパーが射出されて、きちんと消滅できているのですが、
どの番号でも正常にAnimが表示されません。(判定だけが表示される。)
何が抜けているのでしょうか?
Anim番号に関わらず表示されないならAssertSpecialのInvisibleが怪しい
常時監視ステートにそれらしき記述を置いてたりしないかチェック
20000ステートにはその2つのステコンだけなの?
Airの[Begin Action 20000]の中身が1F以上の表示時間に設定されていて、透過フラグを設定していなくて
SFFにAir指定の番号で画像がちゃんと登録されているなら
Cns側で表示を消す命令を出しているってことだから、20000ステートか常時監視が悪さしてると思うよ
うーん・・・
Invisibleは検索して見つからないですね。
20000ステートはとりえず表示を確認したいので、
その2つのみです。
今はこちらが1Por3Pで、
相手が攻撃している最中に弱攻撃(StateNo 200)を当てると、
ヘルパーが出るようになっています。
記述は[statedef -2]直下に書いています。
//www1.axfc.net/uploader/Sc/so/351042.rar&key=17320508
HelperステコンのSize.xScaleとSize.yScaleが0になってるね、ここを直せばおk
あと、CHの文字表示だけだったらHelper使わずにExplod使った方がいい
Helperは同時出現数の制限が最大で56(敵味方合わせて)しかないから
細かいところにまでHelper使ってたら場合によっては足りなくなる
>>970
なるほど、ありがとうございます。
Explodはちょっと調べてみます。
同じ動きをさせるヘルパーを1Fで複数体出したいのですが
[State 0, Helper_分身出現1]
type = Helper
trigger1= time = 0
stateno = 10183
ID = 10183
name = "Shadow"
[State 0, Helper_分身出現2]
type = Helper
trigger1= time = 0
stateno = 10183
ID = 10183
name = "Shadow"
このように同じ内容のステコンを多重に記載するのではなく
トリガー設定で行わせる方法は無いでしょうか?
イメージとしては
trigger1= time = 0
trigger2= time = 0
……という感じのを設定したいんですが
すいません>>972 の者です。 投稿内容を間違えました。
同じFでヘルパーを複数体呼び出したいのですが、下記記述のようにIDナンバーのみ異なり
他は全て同じヘルパー呼び出しステコンの記述を、まとめることはできないでしょうか?
[State 180, Helper_分身出現]
type = Helper
trigger1= time = 0
stateno = 10183
ID = 10183
pos = 0, 0
postype = p1
name = "Shadow"
[State 180, Helper_分身出現2]
type = Helper
trigger1= time = 0
stateno = 10183
ID = 10184
pos = 0, 0
postype = p1
name = "Shadow"
1つ適合するtriggerがあれば、
それ以降のtriggerは読み込まれないから、
同時には無理なんじゃないかなぁとか思ったり。
もっと詳しい人が・・・
~~~
未だによくわかっていないんですけど、
ttp://image.space.rakuten.co.jp/d/strg/ctrl/9/0a7d0425b11b0151243f93750af3fa6d4bf3c690.35.2.9.2.png
こういう考え方でいいんですか?
それで、毎フレーム判断したい要素は、
statedef-3、-2、-1の先頭に持ってこないとできなくて、
[statedef 333]の終わりは次の[statedef 334]がくるまでで、
[statedef 333]と[statedef 334]の間の[state -3]は、
全て[statedef 333]に含まれるんですか?
>>973
1つのステコンは1Fに1回のみ実行で>>974 の言うようにTrigger1を満たしていればTrigger2以降は読み込みすらしない
同一Fに複数のヘルパー出したいならその数だけHelperステコン用意する必要がある
>>974
絵がちょっと違う
Statedefの適用範囲は次のStatedefの上までだからStatedef 333以降は-3じゃない
ttp://www42.tok2.com/home/mugendteita/Suploda/uploda/src/file5.png
[State -3]の-3は飾りで、エラーでMUGEN落ちした時のダイアログに表示されるだけ
エラー箇所の特定材料になるからKFMとかは何番ステートの何個目のステコンかを[State 200, 1]みたいに書いてる
正常に動作させるだけなら[State minus three]でもいいし[State まいなすさん]でもいい(後者は日本語環境がないと駄目だけど)
[State ]でもおk(eの後の半角スペースは必須)
あとは絵に補足で書いたけどステート奪われている時に読み込むのは常時監視の中で-2だけ(-3は読まない)
ドット絵板の[No. 6522]にあるヨガシャングリラみたいな技を作りたいんですが
現状では自キャラの軸位置を基準に相手の位置を固定しているので、ステートを奪った際に相手キャラが浮いてしまいます。
相手キャラの方の軸位置を固定して基準する方法ってありませんかね?
もしくはドット絵板[No. 6522]みたいな技を持っている、参考にできそうなキャラっていませんかね?
A.相手がちゃんと設定している前提でHead.Pos使う
B.浮きが気にならないように背景エフェクトかAssertSpecialのNoBGでステージ背景を隠す
Aは一から作ってる人は割と設定してるけどKFMをベースに作ってる人はKFMの値のままってこともよくある
相手のPos yを0にして足元基準のスプライト表示させて
BindToTargetのPos=-(Target(**),Const(Size.Head.Pos.x)),(Target(**),Const(Size.Head.Pos.y)で自分が移動する
ただ、TargetリダイレクトをTrigger以外に使うと当該タゲが2体以上いるときにフリーズするから
ロック用のHitDefをT属性にするかHitOnce=1を設定して1体のみに当たるようにした上で
ID設定してそのID限定でTargetリダイレクトかける必要がある
Bは相手にChangeAnim2で頭基準のスプライト表示させて背景消すだけ
美的感覚が許すならこっちの方が簡単
>>977
Aの方法でうまくいきました。
ありがとうございます!
ヒットしたら相手をその場に固定して、
自分はそのまま切り抜けるロック技を作りたいんですが、どのような記述をすればいいのでしょうか?
PlayerPushを使おうと思っていたんですが、何をしても機能してくれないので…
相手(StateType=S,MoveType=H,Physics=N)
[State ]
Type = PosFreeze
Trigger1 = 1
[State ]
Type = PlayerPush
Trigger1 = 1
Value = 0
[State ]
Type = NotHitBy
Trigger1 = 1
Value = CA, NA, SA, AT, AP
Time = 1
[State ]
Type = NotHitBy
Trigger1 = Time = 0
Value2 = , HA;保険
Time = 120;適当
[State ]
Type = ChangeAnim
Trigger1 = 1
Value = 5000
[State ]
Type = SelfState;保険
Trigger1 = Time > 240
Value = 5000
自分(StateType=S,MoveType=A,Physics=S)
[State ]
Type = VelSet
Trigger1 = Time = [90,130);適当
x = 8;適当
[State ]
Type = PlayerPush
Trigger1 = 1
Value = 0
[State ]
Type = HitDef
Trigger1 = !MoveHit
Attr = , HA
(略)
[State ]
Type = ChangeState
Trigger1 = Time = 150;適当
Value = 0
Ctrl = 1
みたいな感じで
自分と相手の両方PlayerPush消しとかないとタッグとかでズレる危険性あり
相手にValue2のNotHitBy使わせているのもタッグとかで不用意に喰らわないように
ロック直後の自分の位置合わせも必要だろうけど
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板