レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
製作お助け掲示板
製作で困ったことがあれば
質問をどうぞ
どんな初歩的な質問でも
キャラ製作の先人達がやさしくお答えいたします。
ただし教えてくれた内容が間違っていても怒らないように。
だれにでも間違いはあります。
ココで得た知識を吸収し、教える側に回れるように精進しましょう。
また
先人達も知識がさび付かないように、理解をより深めるために
お互いに知識を出し合い、高め合いましょう。
>>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本体のヴァージョン違いのせい?
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板