レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
製作お助け掲示板
製作で困ったことがあれば
質問をどうぞ
どんな初歩的な質問でも
キャラ製作の先人達がやさしくお答えいたします。
ただし教えてくれた内容が間違っていても怒らないように。
だれにでも間違いはあります。
ココで得た知識を吸収し、教える側に回れるように精進しましょう。
また
先人達も知識がさび付かないように、理解をより深めるために
お互いに知識を出し合い、高め合いましょう。
>>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使わせているのもタッグとかで不用意に喰らわないように
ロック直後の自分の位置合わせも必要だろうけど
>>975
-3-2-1で、それぞれ1つになるんですね。
ありがとうございます。
幾度もすみません。
h t t p : //www1.axfc.net/uploader/Sc/so/354376.rar&key=22360679
相手が攻撃中4を押す→立ちガ
相手が攻撃中1を押す→屈ガ
にはなるのですが、
相手が攻撃中に4から1を押したり、1から4を押しても、
StateNo = 120のアクションが移行せずに、
攻撃が当たって別ステートに飛んだときに移行します。
120のStateは触っていないので、
Airに問題がありそうなのですが、原因がわかりません。
120から130〜132へのChangeStateはAnimTime=0が条件だから表示時間-1のAnim読ませちゃダメだよ
Begin Action 120とBegin Action 121の各スプライト表示時間を自然数にすればおk
デフォルトだと120はTime=0のときにAnim切り替えてるだけでそれ以降はそのまま
StateTypeは毎F更新してるからちゃんとガードの切り替えはできるけど
>>983
ありがとうございます。
120(ガード移行)→130(ここでガード待機。で、立屈ChangeState。)
なっていますね。すみません。
AIに相手がヘルパー式飛び道具を複数出してる事を検知させたいのですが何かよい方法はないでしょうか?
ヘルパー飛び道具の有無に関してはできるようになったのですが・・・。
NumHelperだと学習用ヘルパーとか飾り用ヘルパーも数えてしまいますし・・・
毎Fヘルパー出して、出したヘルパーのID使ってPlayerID系リダイレクト使えば検知できることはできる
本体Varが空いてるなら本体が直接ヘルパー出してもいいけど、それ用にヘルパー用意した方が楽
[Statedef 10000]
[State ]
Type = NotHitBy
Trigger1 = 1
Value = SCA
Time = -1
[State ]
Type = AssertSpecial
Trigger1 = 1
Flag = Invisible
[State ]
Type = Helper
Trigger1 = 1
StateNo = 10001
[State ];VarにIDを格納した敵ヘルパーがいなくなった場合、Var(59)にいなくなった数を格納しつつ番号の若いVarへ詰め、Var(58)にはMoveTypeがAの敵ヘルパー数を格納
Type = Null
Trigger1 = !PlayerIDExist(Var(1))
Trigger1 = Var(59) := 1
Trigger1 = 0
Trigger2 = PlayerIDExist(Var(1))
Trigger2 = PlayerID(Var(1)),MoveType = A
Trigger2 = Var(58) := 1
Trigger2 = 0
Trigger3 = !PlayerIDExist(Var(2))
Trigger3 = Var(59) := Var(59)+1
Trigger3 = 0
Trigger4 = PlayerIDExist(Var(2))
Trigger4 = Var(2-Var(59)) := Var(2) || 1
Trigger4 = PlayerID(Var(2)),MoveType = A
Trigger4 = Var(58) := Var(58)+1
Trigger4 = 0
Trigger5 = !PlayerIDExist(Var(3))
Trigger5 = Var(59) := Var(59)+1
Trigger5 = 0
Trigger6 = PlayerIDExist(Var(3))
Trigger6 = Var(3-Var(59)) := Var(3) || 1
Trigger6 = PlayerID(Var(3)),MoveType = A
Trigger6 = Var(58) := Var(58)+1
Trigger6 = 0
(略)
Trigger105 = !PlayerIDExist(Var(53))
Trigger105 = Var(59) := Var(59)+1
Trigger105 = 0
Trigger106 = PlayerIDExist(Var(53))
Trigger106 = Var(53-Var(59)) := Var(53) || 1
Trigger106 = PlayerID(Var(53)),MoveType = A
Trigger106 = Var(58) := Var(58)+1
Trigger106 = 0
Trigger107 = !PlayerIDExist(Var(54))
Trigger107 = Var(59) := Var(59)+1
Trigger107 = 0
Trigger108 = PlayerIDExist(Var(54))
Trigger108 = Var(54-Var(59)) := Var(54) || 1
Trigger108 = PlayerID(Var(54)),MoveType = A
Trigger108 = Var(58) := Var(58)+1
[State ];いなくなった数だけVarを初期化
Type = VarRangeSet
Trigger1 = Var(59) > 0
First = 54-Var(59)
Last = 54
Value = 0
(続く)
(続き)
[Statedef 10001]
[State ]
Type = NotHitBy
Trigger1 = 1
Value = SCA
Time = -1
[State ]
Type = AssertSpecial
Trigger1 = 1
Flag = Invisible
[State ];1F前に出したヘルパーのIDを自分のVar(0)に記憶しつつ親のVar(0)に自分のIDを格納
Type = ParentVarSet
Trigger1 = Var(0) := Parent,Var(0)
Trigger2 = 1
V = 0
Value = ID
[State ];親ヘルパーの未使用Varのうち最も番号の若いVarを取得(Var(0)を除く)
Type = Null
Trigger1 = Var(1) := !!Parent,Var(1)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(2)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(3)
(略)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(53)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(54)
[State ];自分の直前に呼び出されたヘルパーが敵のものだった場合、上で取得した親ヘルパーの空きVarにそのIDを格納し、Var(1)を1増やす
Type = ParentVarSet
Trigger1 = ID-Var(0) > 1
Trigger1 = PlayerIDExist(ID-1)
Trigger1 = PlayerID(ID-1),TeamSide != TeamSide
Trigger1 = Var(1) := Var(1)+1
V = Var(1)
Value = ID-1
[State ];自分の2つ前に呼び出されたヘルパーが敵のものだった場合、上で取得した親ヘルパーの空きVarにそのIDを格納し、Var(1)を1増やす
Type = ParentVarSet
Trigger1 = ID-Var(0) > 2
Trigger1 = PlayerIDExist(ID-2)
Trigger1 = PlayerID(ID-2),TeamSide != TeamSide
Trigger1 = Var(1) := Var(1)+1
V = Var(1)
Value = ID-2
(略)
[State ];自分の20個前に呼び出されたヘルパーが敵のものだった場合、上で取得した親ヘルパーの空きVarにそのIDを格納し、Var(1)を1増やす
Type = ParentVarSet
Trigger1 = ID-Var(0) > 20
Trigger1 = PlayerIDExist(ID-20)
Trigger1 = PlayerID(ID-20),TeamSide != TeamSide
Trigger1 = Var(1) := Var(1)+1
V = Var(1)
Value = ID-20
[State ];呼び出したFのうちに削除
Type = DestroySelf
Trigger1 = 1
これで親ヘルパーのVar(58)に敵の飛び道具ヘルパーの数が格納される。
上の例だと54個も監視してるけど、そんなに必要ないと思う。(最大ヘルパー数が56個で親子ヘルパーに2個使われるから55以上は無意味)
1Fに20個もヘルパー新生すること滅多にないと思うけど、それでも足りないと思うならば増やしても可。
>986
成功しました、ありがとうございます。これで弾幕キャラに単発飛び道具で撃ち負けつづけて負ける事も減ると思います。
はじめまして。「帰ってきた!!元祖ドット絵板」にてカンフーマン(カプエスドット)を製作(予定)している者なのです。
質問です。MCMで白い十字を基準にするわけですが、座標がそのキャラに対して正しい座標なのかが分かりません。移動アニメーションもカクカクになってしまいます。
お助けお願いします。
それと現在、同時進行ではないのですが「CAPCOM vs SNK vs MARVEL」なるカプジャムみたいなのを考えています。
立ちモーションの一枚目(0,0)の足元を十字に合わせて、移動モーション等は0,0→20,0→20,1の前後の動きで合わせる
実際の移動はcns側で行うから「歩き」じゃなく「足踏み」のつもりで軸合わせするといい
ドット次第だけど、D0ならy座標は足が2〜4ドットほど十字から下に はみ出てるくらい、x座標は両足の中間地点を十字に合わせる感じ
5000番台の必須喰らいスプライトは下一桁が0で接地部(立ち喰らいは足元、仰向けダウンは背中)を、下一桁が1で腰を、下一桁が2で頭をそれぞれ十字に合わせる
この辺は文字で説明されるよりMugenのdocsフォルダのspr.gif見れば視覚的に分かると思う
>990
教えていただいてありがとうございます。さっそく試してみます。
遊撃でモカがマライアの設置(打撃判定)に反応できてなかったので打撃判定ヘルパー検知できるようにしたいのですが上手くいきません。
以前ここで教えていただいた敵ヘルパー数検知ヘルパーに
[state ];打撃ヘルパー検知?
type = null;varset
Trigger1 = PlayerID(Var(1)),HitDefAttr = SCA,AA,AT
Trigger2 = PlayerID(Var(2)),HitDefAttr = SCA,AA,AT
Trigger3 = PlayerID(Var(3)),HitDefAttr = SCA,AA,AT
v = var(51)
value = 1
という記述を追加してみたのですがデバッグにhelper(10010),var(51) を入れてみても0のままで昨日していないようです。
機能するかチェックしてるときはNull外してるんだよね?
あとAT入れると投げも検知しちゃうよ
>Null外してるんだよね
はい。
>あとAT入れると投げも検知しちゃうよ
飛び道具のみ無効バリア持ちなのでそれで無効化できないヘルパー攻撃の検知が目的なので投げも検知対象にいれてます。
StateDef 10000に置いてるならば特に問題はないハズなんだけどねぇ
相手の設置はHitDef出しっぱなしのタイプ?
それとも近づくと攻撃に移行する(HitDef後出し)タイプ?
後者だと設置待機時は検知できないけど
あとはVar被りとかチェックしてみるくらいかな
qzak氏の仮面ライダーキバを参考にカプエスシステムのキバを製作したいと考えているのですが、琉衣氏&吾妻氏たちクウガチームのようにキャラを改変しようと思うのですがどんなキャラがキバに合うでしょうか?
第三者の視点を参考にしたいので、ご意見をいただけないでしょうか?
質問する場所を間違えていたらすいません。
>StateDef 10000に置いてるならば特に問題はないハズなんだけどねぇ
10000にはAIスイッチが置いてあるので10010に置いてあります。
>相手の設置はHitDef出しっぱなしのタイプ?
type = HitDef
trigger1 = !movecontact&&!moveguarded
trigger1 = time>=4
出しっぱなしみたいです。
>あとはVar被りとかチェックしてみるくらいかな
playerIDに使ってるのは8までなんで
[State ];いなくなった数だけVarを初期化
Type = VarRangeSet
Trigger1 = Var(59) > 0
First = 50-Var(59)
Last = 50
Value = 0
こっちでも51は使っていません。
うーん
HitDefAttrにPlayerIDリダイレクトが使えないとか
AA,ATじゃなくてNA,SA,HA,NT,ST,HTに分けないと駄目とか?
記述見ただけじゃ原因が分からない
>>986 のVar(58)が正常に計上されているならHitDefAttr周りの問題だと思うけど
相手によってはvar(58)が1になったまま戻らないことがありました(mugenだし相手によっては記述が合わない?まあヘルパー飛び道具複数出す相手だと判別することは出来てるしいいか?)
と思いそのまんまにしてました。
987の
State ];親ヘルパーの未使用Varのうち最も番号の若いVarを取得(Var(0)を除く)
Type = Null
Trigger1 = Var(1) := !!Parent,Var(1)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(2)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(3)
となっているところの写しで
Trigger1 = Var(1) := Var(4)+!!Parent,Var(4)
という記述ミスがあったのを直したらvar(58)がうんともすんとも言わなくなりやがった・
もしかしてmugen本体のヴァージョン違いのせい?
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板