したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

製作お助け掲示板2

1blank:2012/09/12(水) 22:10:24
>>前スレ999
Var(58)の初期化忘れはこっちのミスだね
10000のHelperとNullの間にVarSetのTrigger1=1のvar(58)=0を追加で。

>>前スレ997で「PlayerIDに使ってるのは8までって」ことなら
VarRangeSetはFirst=8-Var(59)とLast=8になるハズだけど…

本体のVerはそんなに影響してこないと思う。
「:=」を使った代入も使ってるステコンも昔からの共通仕様の範囲内だし。

2ケットシー:2012/09/13(木) 01:14:28
>10000のHelperとNullの間にVarSetのTrigger1=1のvar(58)=0を追加で。
[state ]
type = varset
trigger1 = 1
v = var(58)
value = 0
 を指定の場所に追加しましたがvar(58)がそのままです。
相手のヘルパーが出っ放しでもvar(1)が0に戻るんですが仕様上これであってますか?

3blank:2012/09/14(金) 01:20:34
ごめん、Var(59)の初期化も忘れてる
>>2のVarSetの代わりにVarRangeSetのFirst=58のLast=59のValue=0にしてみて
それかV=Var(58)をV=58に変えて、VarSetのV=59のValue=0を追加するか

ヘルパー出しっぱなしならVar(1)が0に戻ることはない予定だから
↑の変更しても駄目なら実際の記述見ないと何が原因か分からないかも

4ケットシー:2012/09/14(金) 22:16:13
>↑の変更しても駄目なら実際の記述見ないと何が原因か分からないかも
var(1)がすぐ消えるので変数管理の記述はります。

[State ]
Type = Helper
Trigger1 = 1
StateNo = 10011

[state ]
type = varrangeset
trigger1 = 1
First = 58
Last = 59
Value = 0
[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
(中略)


[State ];いなくなった数だけVarを初期化
Type = VarrangeSet
Trigger1 = Var(59) > 0
First = 8-Var(59)
Last = 8
Value = 0

5ケットシー:2012/09/14(金) 22:19:32
続きです

[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)を除く)なぜか8まで入れるとばぐる
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(4)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(5)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(6)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(7)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(8)



[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 ];呼び出したFのうちに削除
Type = DestroySelf
Trigger1 = 1

6blank:2012/09/15(土) 00:07:56
あー
親ヘルパーの1F目でPlayerIDExist(0)がいないからVar(59)に1が入っちゃうのか
子ヘルパーのParentVarSetでID格納する前にPlayerIDExist(Var(1))とか読ませちゃ上手くいくわけないな
なんか見落とし多くてスマソ

[State ];VarにIDを格納した敵ヘルパーがいなくなった場合、Var(59)にいなくなった数を格納しつつ番号の若いVarへ詰め、Var(58)にはMoveTypeがAの敵ヘルパー数を格納
Type = Null
Trigger1 = Var(1) > 0
Trigger1 = !PlayerIDExist(Var(1))
Trigger1 = Var(59) := 1
Trigger1 = 0
Trigger2 = Var(1) > 0
Trigger2 = PlayerIDExist(Var(1))
Trigger2 = PlayerID(Var(1)),MoveType = A
Trigger2 = Var(58) := 1
Trigger2 = 0
Trigger3 = Var(2) > 0
Trigger3 = !PlayerIDExist(Var(2))
Trigger3 = Var(59) := Var(59)+1
Trigger3 = 0
Trigger4 = Var(2) > 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
(中略)

↑こんな風に各トリガーの1行目を追加で。

あとはVar(9)以降にID格納しちゃわないように

[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
Trigger1 = Var(1) <= 8
V = Var(1)
Value = ID-1

↑こんな風にトリガーの5行目を追加した方がいいかな
8までじゃないとバグる理由はよく分からない

7ケットシー:2012/09/16(日) 00:00:07
var(58) とvar(59)の初期化は成功していますが。
 なぜか敵ヘルパーが消えた際var(4)は0になるのにvar(5)はそのままという自体が。
 それと
trigger1 = PlayerID(Var(1)),HitDefAttr = SCA,AA
trigger2 = PlayerID(Var(2)),HitDefAttr = SCA,AA
中略
trigger8 = PlayerID(Var(2)),HitDefAttr = SCA,AA
v= var(57)
value = 1
 という記述を入れるとvar(4)以降が全部埋まりvar(58)=5という結果になりました。

 ちなみにみやかか同士のテストなのでvar(1)からvar(3)はstate10010のヘルパーとそれ以前に実装したヘルパー飛び道具感知用
ヘルパーが消えずに出続けているので埋まっていると思われます。

8blank:2012/09/16(日) 02:27:37
まず、Var(4)を0にする記述は

[State ]
Type = VarrangeSet
Trigger1 = Var(59) > 0
First = 9-Var(59);8-Var(59)じゃなかった、ごめん
Last = 8
Value = 0

↑これのVar(59)が5以上だった場合のみだから一緒にVar(5)も0になるハズ
Var(4)が0になってVar(5)がそのままってことは他のVar弄りが働いてるからそれをチェック
もしかしたら常時監視のVarSet読んでるかもしれない

で、Var(4)に格納したIDのヘルパーが消えてVar(5)に格納したIDのヘルパーが残っている場合は

[State ];VarにIDを格納した敵ヘルパーがいなくなった場合、Var(59)にいなくなった数を格納しつつ番号の若いVarへ詰め、Var(58)にはMoveTypeがAの敵ヘルパー数を格納
Type = Null
Trigger1 = Var(1) > 0
Trigger1 = !PlayerIDExist(Var(1));敵の常駐ヘルパーがいるから満たさず。これ以降のTrigger1を読み飛ばしてTrigger2を読み始める。Var(59)は0のまま
Trigger1 = Var(59) := 1
Trigger1 = 0
Trigger2 = Var(1) > 0
Trigger2 = PlayerIDExist(Var(1))
Trigger2 = PlayerID(Var(1)),MoveType = A
Trigger2 = Var(58) := 1
Trigger2 = 0;絶対に満たさず。Trigger3を読み始める。
Trigger3 = Var(2) > 0
Trigger3 = !PlayerIDExist(Var(2));敵の常駐ヘルパーがいるから満たさず。これ以降のTrigger3を読み飛ばす。Var(59)は0のまま
Trigger3 = Var(59) := Var(59)+1
Trigger3 = 0
Trigger4 = Var(2) > 0
Trigger4 = PlayerIDExist(Var(2))
Trigger4 = Var(2-Var(59)) := Var(2) || 1;Var(59)が0なのでVar(2)に現在のVar(2)を代入、つまり変化なし
Trigger4 = PlayerID(Var(2)),MoveType = A
Trigger4 = Var(58) := Var(58)+1
Trigger4 = 0
Trigger5 = Var(3) > 0
Trigger5 = !PlayerIDExist(Var(3));敵の常駐ヘルパーがいるから満たさず。これ以降のTrigger5を読み飛ばす。Var(59)は0のまま
Trigger5 = Var(59) := Var(59)+1
Trigger5 = 0
Trigger6 = Var(3) > 0
Trigger6 = PlayerIDExist(Var(3))
Trigger6 = Var(3-Var(59)) := Var(3) || 1;Var(59)が0なのでVar(3)に現在のVar(3)を代入、つまり変化なし
Trigger6 = PlayerID(Var(3)),MoveType = A
Trigger6 = Var(58) := Var(58)+1
Trigger6 = 0
Trigger7 = Var(4) > 0
Trigger7 = !PlayerIDExist(Var(4));敵のヘルパーがいなくなったから満たす。
Trigger7 = Var(59) := Var(59)+1;Var(59)に1を足す。Var(59)が1になる
Trigger7 = 0
Trigger8 = Var(4) > 0
Trigger8 = PlayerIDExist(Var(4));敵のヘルパーがいなくなったから満たさず。これ以降のTrigger8を読み飛ばす。
Trigger8 = Var(4-Var(59)) := Var(4) || 1
Trigger8 = PlayerID(Var(4)),MoveType = A
Trigger8 = Var(58) := Var(58)+1
Trigger8 = 0
Trigger9 = Var(5) > 0
Trigger9 = !PlayerIDExist(Var(5));敵のヘルパーが残っているから満たさず。これ以降のTrigger9を読み飛ばす。Var(59)は1のまま
Trigger9 = Var(59) := Var(59)+1
Trigger9 = 0
Trigger10 = Var(5) > 0
Trigger10 = PlayerIDExist(Var(5))
Trigger10 = Var(5-Var(59)) := Var(5) || 1;Var(59)が1なのでVar(4)に現在のVar(5)を代入、2行前を満たしているから代入する数値は0より大きい
Trigger10 = PlayerID(Var(5)),MoveType = A
Trigger10 = Var(58) := Var(58)+1
Trigger10 = 0

いなくなった敵ヘルパーがVar(4)の1つだけだった場合はVar(59)が1のまま最後まで実行されて
Var(5)にVar(6)を、Var(6)にVar(7)を、Var(7)にVar(8)を代入してVarRangeSetでVar(8)〜Var(8)を0に、って仕組みなんだけど…

追加する記述に関してはv = var(57)という書き方じゃVar(57)に格納されている数字に対応するVarを弄ることになるからVar(0)が変わっちゃうよ
Var(57)は一度も弄ってないから0になってるだろうし
trigger8のVar(2)はVar(8)の書き換え忘れかな

9ケットシー:2012/09/16(日) 22:49:37
本体の-2ステートのvarsetがヘルパーの変数にも影響する場合ってありましたっけ?

10blank:2012/09/16(日) 23:01:46
常時監視は本体用って訳じゃないよ
-2ならHelperType=Playerのヘルパーも実行する

11ケットシー:2012/09/19(水) 16:40:15
var(5)がそのままな理由はわかりませんが打撃ヘルパーの検出には成功しました。
親ヘルパーに


[State ];打撃、投げヘルパー検知
Type = ParentVarSet
trigger1 = PlayerID(Var(1)),hitdefattr = SCA,AA,AT
trigger2 = PlayerID(Var(2)),hitdefattr = SCA,AA,AT
trigger3 = PlayerID(Var(3)),hitdefattr = SCA,AA,AT
trigger4 = PlayerID(Var(4)),hitdefattr = SCA,AA,AT
trigger5 = PlayerID(Var(5)),hitdefattr = SCA,AA,AT
trigger6 = PlayerID(Var(6)),hitdefattr = SCA,AA,AT
trigger7 = PlayerID(Var(7)),hitdefattr = SCA,AA,AT
trigger8 = PlayerID(Var(8)),hitdefattr = SCA,AA,AT
var(27) = 1


[State ]
Type = ParentVarSet
trigger1 = (PlayerID(Var(1)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(1))||PlayerID(Var(1)),MoveType!= A
trigger1 = (PlayerID(Var(2)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(2))||PlayerID(Var(2)),MoveType!= A
trigger1 = (PlayerID(Var(3)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(3))||PlayerID(Var(3)),MoveType!= A
trigger1 = (PlayerID(Var(4)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(4))||PlayerID(Var(4)),MoveType!= A
trigger1 = (PlayerID(Var(5)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(5))||PlayerID(Var(5)),MoveType!= A
trigger1 = (PlayerID(Var(6)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(6))||PlayerID(Var(6)),MoveType!= A
trigger1 = (PlayerID(Var(7)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(7))||PlayerID(Var(7)),MoveType!= A
trigger1 = (PlayerID(Var(8)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(8))||PlayerID(Var(8)),MoveType!= A
trigger2 = helper(10010),var(58) = 0
trigger2 = var(27) = 1
var(27) = 0
 
の記述で上手くいきました。

 次は設置対策だ!

12ケットシー:2012/09/19(水) 17:33:21
 っと↑の
trigger2 = var(27) = 1

trigger2 = root,var(27) = 1
に修正

13ケットシー:2012/09/19(水) 22:31:49
設置?の大雑把な認識はできました。

[State ];打撃判定の設置足元にある
Type = ParentVarSet
trigger1 = (PlayerID(Var(1)),hitdefattr = SCA,AA,AT)&&PlayerID(Var(1)),vel X = 0
trigger1 = (PlayerID(Var(1)),pos Y > -50)||((PlayerID(Var(1)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger2 = (PlayerID(Var(2)),hitdefattr = SCA,AA,AT)&&PlayerID(Var(2)),vel X = 0
trigger2 = (PlayerID(Var(2)),pos y > -50)||((PlayerID(Var(2)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger3 = PlayerID(Var(3)),hitdefattr = SCA,AA,AT&&PlayerID(Var(3)),vel X = 0
trigger3 = (PlayerID(Var(3)),pos y > -50)||((PlayerID(Var(3)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger4 = PlayerID(Var(4)),hitdefattr = SCA,AA,AT&&PlayerID(Var(4)),vel X = 0
trigger4 = (PlayerID(Var(4)),pos y > -50)||((PlayerID(Var(4)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger5 = PlayerID(Var(5)),hitdefattr = SCA,AA,AT&&PlayerID(Var(5)),vel X = 0
trigger5 = (PlayerID(Var(5)),pos y > -50)||((PlayerID(Var(5)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger6 = PlayerID(Var(6)),hitdefattr = SCA,AA,AT&&PlayerID(Var(6)),vel X = 0
trigger6 = (PlayerID(Var(6)),pos y > -50)||((PlayerID(Var(6)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger7 = PlayerID(Var(7)),hitdefattr = SCA,AA,AT&&PlayerID(Var(7)),vel X = 0
trigger7 = (PlayerID(Var(7)),pos y > -50)||((PlayerID(Var(7)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger8 = PlayerID(Var(8)),hitdefattr = SCA,AA,AT&&PlayerID(Var(8)),vel X = 0
trigger8 = (PlayerID(Var(8)),pos y > -50)||((PlayerID(Var(8)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
var(25) = 2




[State ];打撃判定の設置空中にある
Type = ParentVarSet
trigger1 = PlayerID(Var(1)),hitdefattr = SCA,AA,AT&&PlayerID(Var(1)),vel X = 0
trigger1 = PlayerID(Var(1)),pos Y < -50
trigger2 = PlayerID(Var(2)),hitdefattr = SCA,AA,AT&&PlayerID(Var(2)),vel X = 0
trigger2 = PlayerID(Var(2)),pos y< -50
trigger3 = PlayerID(Var(3)),hitdefattr = SCA,AA,AT&&PlayerID(Var(3)),vel X = 0
trigger3 = PlayerID(Var(3)),pos Y< -50
trigger4 = PlayerID(Var(4)),hitdefattr = SCA,AA,AT&&PlayerID(Var(4)),vel X = 0
trigger4 = PlayerID(Var(4)),pos Y < -50
trigger5 = PlayerID(Var(5)),hitdefattr = SCA,AA,AT&&PlayerID(Var(5)),vel X = 0
trigger5 = PlayerID(Var(5)),pos Y< -50
trigger6 = PlayerID(Var(6)),hitdefattr = SCA,AA,AT&&PlayerID(Var(6)),vel X = 0
trigger6 = PlayerID(Var(6)),pos Y< -50
trigger7 = PlayerID(Var(7)),hitdefattr = SCA,AA,AT&&PlayerID(Var(7)),vel X = 0
trigger7= PlayerID(Var(7)),pos Y < -50
trigger8 = PlayerID(Var(8)),hitdefattr = SCA,AA,AT&&PlayerID(Var(8)),vel X = 0
trigger8 = PlayerID(Var(8)),pos Y < -50
var(24) = 2

が、足元の設置を消して空中の設置を出してもvar(25)が2のままという事態が発生しました。(var(24)とvar(25)が一つの設置で同時に2になりといことはありませんでした)

14ケットシー:2012/09/19(水) 22:32:46
var(25)の初期化に関する記述は


[State ];打撃判定の設置足元にある初期化
Type = ParentVarSet
triggerall = root,var(25) = 2
trigger1 = (PlayerID(Var(1)),pos y < -50)||PlayerID(Var(1)),hitdefattr!= SCA,AA,AT||PlayerID(Var(1)),vel X!= 0
trigger1 = (PlayerID(Var(2)),pos y < -50)||PlayerID(Var(2)),hitdefattr!= SCA,AA,AT||PlayerID(Var(2)),vel X!= 0
trigger1 = (PlayerID(Var(3)),pos y < -50)||PlayerID(Var(3)),hitdefattr!= SCA,AA,AT||PlayerID(Var(3)),vel X!= 0
trigger1 = (PlayerID(Var(4)),pos y < -50)||PlayerID(Var(4)),hitdefattr!= SCA,AA,AT||PlayerID(Var(4)),vel X!= 0
trigger1 = (PlayerID(Var(5)),pos y < -50)||PlayerID(Var(5)),hitdefattr!= SCA,AA,AT||PlayerID(Var(5)),vel X!= 0
trigger1 = (PlayerID(Var(6)),pos y < -50)||PlayerID(Var(6)),hitdefattr!= SCA,AA,AT||PlayerID(Var(6)),vel X!= 0
trigger1 = (PlayerID(Var(7)),pos y < -50)||PlayerID(Var(7)),hitdefattr!= SCA,AA,AT||PlayerID(Var(7)),vel X!= 0
trigger1 = (PlayerID(Var(8)),pos y < -50)||PlayerID(Var(8)),hitdefattr!= SCA,AA,AT||PlayerID(Var(8)),vel X!= 0
trigger2 = helper(10010),var(58) = 0
var(25) = 0
という風になっています。

15blank:2012/09/19(水) 22:53:15
PlayerID(Var(1))等が存在しない場合の条件を付けておかないと駄目かな
>>14のTrigger1は1〜8まで全て存在する上で、それらのy座標が-50より大きいか、
打撃や投げを振ってないか、水平方向に速度を持っているかっていう条件だからね

親ヘルパー(10010番ヘルパー自身)に読ませるならTrigger2はリダイレクト使わずににVar(58) = 0で。

あと、親ヘルパーは本体が直接呼び出してると思うけど、
そうでないならTriggerAllのRootリダイレクトはParentリダイレクトに変えないと駄目

16ケットシー:2012/09/20(木) 23:44:27
>PlayerID(Var(1))等が存在しない場合の条件を付けておかないと駄目かな
 成功しました。これで設置の手前で行ったり着たりせずにすみます。

17mas2:2012/10/31(水) 22:02:19
絵の依頼ってココでできますかね?
家族計画の「広田 寛」を作るんですけど高屋敷家の皆さんとその他をどなたか描いていただけないでしょうか?
富竹やミクみたいにいろんな人が協力していただけると、嬉しいです。m(_ _)m
ヘルパーとして出します。
家計キャラ以外でも、中の人つながりでもネタでもいいので、なにとぞご検討のほどお願いします。

18blank:2012/11/02(金) 19:46:39
>>17
ドット絵板でも指摘されているようですが、まずはα版なり形になってから募集されるのが一番よいかと思います。

19mas2:2012/11/02(金) 22:28:21
>>18
そうですね、分かりました。まずはα版まで形にします。

20mas2:2012/11/07(水) 22:18:25
「広田 寛」α版完成までなんとかたどり着きました。
>>18様ありがとうございました

本格的に募集したいとおもいます。
家計キャラのストライカーの絵を代わりに描いてくださる方
ご協力の程をおねがいいたしますm(_ _)m
ホントお願いします
ゆっくりでいいので検討の方を・・・

21ケットシー:2012/12/18(火) 20:00:21
モカにラビキャン的なシステムを搭載しAIにもそれを組み込んでみたのですがなぜか指定範囲外でも暴発・・・
 試しに同キャラでF3を押すとSEなりまくってゲージがあっという間にからに・・・
 記述は以下の通りになります。

[state -1,ぬこキャンセル]
type = changestate
value = 3300
triggerall = power >= 1000
triggerall = alive
triggerall = movetype!=H
triggerall = var(59) = 1
triggerall = ctrl = 0
trigger1 = stateno = 260;立ち中段
trigger1 = moveguarded
trigger1 = (Random<=var(58)*30)||(var(58)>9)
trigger2 = stateno = 810;投げ成功
trigger2 = AnimElem = 3, < 0
trigger2 = p2life > 300
trigger2 = EnemyNear(var(50)),backedgebodydist <= 130
trigger3 = stateno = 1120||1140;昇竜
trigger3 = moveguarded
trigger3 = (Random<=var(58)*50)||(var(58)>9)
trigger4 = stateno = 1120||1140
trigger4 = AnimElemTime (9) > 0
trigger4 = (EnemyNear,HitDefAttr = SCA,AA,AT,AP)|| var(27) = 1||var(26) = 1||(enemynear(var(50)),NumProj = 1)
trigger4 = inguarddist
trigger4 = (Random<=var(58)*50)||(var(58)>9)
trigger5 = stateno = 260
trigger5 = AnimElemTime (5) < 0
trigger5 = p2stateno = 130
trigger5 = (Random<=var(58)*50)||(var(58)>9)
trigger5 = P2bodyDist X = [-15,25]
trigger5 = var(58)>7
trigger6 = stateno = 810
trigger6 = AnimElem = 3, < 0
trigger6 = p2life > 100
trigger6 = EnemyNear(var(50)),backedgebodydist >= 130
trigger6 = power >= 1800
trigger7 = stateno = 1010
trigger7 = NumHelper(1011) = 0
trigger7 = animelem = 9, > 0
trigger7 = inguarddist
trigger7 = EnemyNear(var(50)),movetype = A
trigger7 = (Random<=var(58)*50)||(var(58)>9)
trigger7 = (EnemyNear,HitDefAttr = SCA,AA,AT)|| var(27) = 1
trigger8 = stateno = 1141||1151
trigger8 = EnemyNear(var(50)),movetype = A
trigger8 = (EnemyNear,HitDefAttr = SCA,AA,AT)|| var(27) = 1||(enemynear(var(50)),NumProj = 0)
trigger8 = (Random<=var(58)*50)||(var(58)>9)

 triggerは全てstateno を入れてあるのでところかまわず暴発するはずはないんですが??

22blank:2012/12/18(火) 21:39:18
Trigger3、Trigger4、Trigger8の各1行目が確実に成立するね、それだと
やるなら
Trigger3 = (StateNo = 1120) || (StateNo = 1140)
みたいにしなきゃ駄目

23ケットシー:2012/12/19(水) 00:46:25
>22
>Trigger3 = (StateNo = 1120) || (StateNo = 1140)
>みたいにしなきゃ駄目
 ご指摘ありがとうございました。

24blank:2012/12/29(土) 14:56:46
ヘルパーを呼び出し、同じコマンドを入力をすると呼びだしたヘルパーが攻撃するようにしたいのですが、
どのような記述をしたらいいのでしょうか?

25blank:2013/01/03(木) 16:18:29
[State -1]
Type = ChangeState
Trigger1 = Command = "○○"
Trigger1 = !NumHelper(XXX)
Value = ???

[Statedef ???];本体動作(ヘルパー呼び出し)
Anim = ???
Ctrl = 0
[State ???]
Type = Helper
Trigger1 = !NumHelper(XXX)
Trigger1 = Time = **
ID = XXX
StateNo = !!!
[State ???]
Type = ChangeState
Trigger1 = AnimTime = 0
Value = 0
Ctrl = 1

[Statedef !!!];ヘルパー待機
[State !!!]
Type = ChangeState
Trigger1 = Time > 0
Trigger1 = Root,Command = "○○"
Trigger1 = Root,Ctrl
Value = ###
[Statedef ###];ヘルパー攻撃

例えばこんな感じで
この場合コマンドは常に本体の向き依存だから
ヘルパーの向きに合わせたいならFacing使ってやる必要があるけど

26マーレイ:2013/01/08(火) 16:03:44
初めまして。初のキャラ制作チャレンジ中なのですが、sndファイルでトラブってます。
MCMで作ったsndファイルを登録するとエラーが出てしまいます。
他キャラのsndファイルを登録したら問題なく動きましたが、他キャラのsndファイルに自前のwavファイルを追加してsndファイルを作ってもエラー、SAEで作ってもダメでした。
エラーメッセージは
"Can't load mitate.snd
Error loading chars/mitate/mitate.def
Error loading p1"
です。
あまり変なwavファイルは使っていないはずですが、wavファイルが壊れているのでしょうか?それとも登録できない番号があるのでしょうか?どなたか御教示ください。

27blank:2013/01/08(火) 22:48:42
そのwavファイルとMCMの相性が悪いだけだから別のツール使って登録するなり
別のツールでエラーsndを開いて保存し直すなりすれば解消されるはず
それで直らないならwavファイルに原因アリ

MCMは旧世代のツールだから新しく製作始めたい人には正直お勧めしない
sffとsndは不具合多いから、MCM使い慣れた俺でもair以外はSAMに鞍替えしたし
airも慣れてなきゃ使ってられないレベルだよ

28マーレイ:2013/01/09(水) 17:24:29
相性なんてあったんですね・・・
とりあえずSndEditorも使ってみましたがダメだったのでWAVファイル見直してみます。
他のエディタに関してはSAMを使ってみることにします。
ありがとうございました。

29blank:2013/02/15(金) 21:53:51
食らった攻撃が打撃か飛び道具か投げかを判断するにはどうすればいいのでしょうか?

30blank:2013/02/16(土) 01:25:49
トリガーでenemynear,hitdefattrと指定すると相手の出した攻撃の属性が分かる。
enemynear,hitdefattr = SCA,AAなら全ての攻撃(投げと飛び道具を除く)、enemynear,hitdefattr = SCA,ATなら全ての投げ。
Statedef -2で上のトリガーと変数を使って敵の攻撃属性を監視しておけば、攻撃を喰らった瞬間にその攻撃が打撃か投げか判断できる。

ただしこの方法だと、「enemynear,」は一番近くの敵本体という意味になるので、
飛び道具やヘルパーを使った同時攻撃、またはタッグ戦で属性を精密に判別できない。できる方法があるのかもしれないが私では説明できない。
とりあえず簡単な方法を参考程度に。

31blank:2013/02/16(土) 21:52:43
HitOverrideを2つ用意して
片方はSlot=0でAttr=SCA,AAでStateNo=5025
もう片方はSlot=1でAttr=SCA,APでStateNo=5026
みたいにパラメータ設定して
5025や5026にはステートの最初にMoveType=Hを置いておく
5025では適当なVarに適当な値を格納して(打撃を喰らったフラグON)5000や5020や5070へChangeState
5026では適当なVarに適当な値を格納して(飛び道具を喰らったフラグON)5000や5020や5070へChangeState
本来の喰らいステートの前に5025か5026を経由して判別する感じ
どちらのフラグも立たなかったら投げってことで

まあこの方法はP2StateNo付きのHitDef効かなくなるし常時展開するのはお勧めできない
攻撃で潰せるストライカーとか身代わりの術みたいな技に限って組み込むならいいと思うけど

32blank:2013/02/20(水) 22:51:05
>>30,>>31
遅くなりましたがお二人共ありがとうございます。
参考になりました!

33ケットシー:2013/03/22(金) 00:16:58
有利ステートがとれるダウン引き起こし技(早い話が「まだお」)の終わり際5Fを必殺技でキャンセルできるようにしたいのですがどうも上手くいきません。
State -1, 変数の例2];必殺技の発生条件をチェック
type = VarSet
triggerall = statetype != A
trigger1 = ctrl||stateno = 11
trigger2 = (stateno = [200,270]) || (stateno = [400,499])
trigger2 = movecontact
trigger3 = stateno = 1111
trigger3 = AnimElemTime (6) >= 0;ここより下
trigger4 = stateno = 1211
trigger4 = AnimElemTime (6) >= 0
trigger5 = stateno = 281
trigger4 = AnimElemTime (6) >= 0
var(1) = 1

という記述したのですがキャンセルできていません。この他にもtimeやanimtimeでも試してみたのですが上手くいきません。

34ケットシー:2013/03/22(金) 12:29:21
すいません自己解決しました。超必殺技専用の変数管理とtoriggerがかぶっていたのが原因だったようです。

35ケットシー:2013/03/22(金) 22:52:34
空中技のステートで何故かair一枚目で固まるという減少が発生しています。人操作だとなんともないのですが何故かAIだとバグります。
ただ、バグっても落下中にのこりの動作がはじまったりします。一枚目の表示時間は3FしかないはずでSAEでAIRファイルを再生するぶんには問題がありません。
一応CNSとCMDを張って置きます。どなたかアドバイスを頂けると助かります。

;ジャンプ強爪
[Statedef 640]
type = A
movetype= A
physics = A
juggle = 1
poweradd= 0
ctrl = 0
anim = 640
sprpriority = 2
facep2 = 0



[State 640, 音を鳴らす]
type = PlaySnd
trigger1 = Time = 9
value = 0, 1



[State 400]
type =Explod
trigger1 = time = 13
trigger1 = NumExplod(10026) < 1
Anim = 10026
ID = 10026
postype = p1
pos = 0,0
SprPriority = 3
scale = 0.25,0.25
BindTime = -1
RemoveTime = 10
OwnPal = 1
RemoveOnGetHit = 0
ignorehitpause = 1


[State 640, ヒット定義]
type = HitDef
trigger1 = AnimElem = 4, >= 0 && AnimElem = 5, < 0
attr = A, NA
damage = Floor(75*fvar(0)), 0
guardflag = HA
getpower = 80,0
priority = 4
pausetime = 20,20
sparkno = 1
sparkxy = -10,-40
hitsound = s200,7
guardsound = s201,5
animtype = Med
ground.type = High
ground.slidetime = 12
ground.hittime = 12
guard.hittime = 2
ground.velocity = -1.2,-6.5
air.velocity = -1.5,-6
air.hittime = 20
fall = 1
air.fall = 1
fall.recovertime = 50
guard.velocity = -2.5
persistent=0 ;これでステート中一回しか発動しない。


[State 240]
type =Explod
trigger1 = movehit= 1
trigger1 = NumExplod(10021) < 1
trigger1 = (AnimElemTime (4) >= 0) && (AnimElemTime (5) < 0)
Anim = 10021
ID = 10021
postype = p1
pos = 30,-60
SprPriority = 3
scale = 0.25,0.25
BindTime = -1
RemoveTime = 24
OwnPal = 1
RemoveOnGetHit = 0
ignorehitpause = 1

36ケットシー:2013/03/22(金) 22:55:06
 続いてCMDです。
[State -3,空中強]
Type = ChangeState
value = 640
TriggerAll=var(59) = 1 && RoundState = 2
TriggerAll=StateType=A
TriggerAll=EnemyNear(var(50)),StateType != L
triggerall = var(9) = [0,14];juggle
triggerall = p2stateno!= var(52) && var(52) > 0||var(52) = 0;当身ステート
triggerall = p2stateno!= var(51) && var(51) > 0||var(51) = 0
trigger1 = var(21) =0;コンボ管理用変数
trigger1 = ctrl
trigger1 = P2BodyDist X =[-40,80]
Trigger1 =P2BodyDist Y =[-45,42]
Trigger1 = Random <= var(58)*(30-var(38)*5)
trigger2 = stateno = 610
trigger2 = movehit
trigger2 = P2BodyDist X =[-40,50]
trigger2 = (fvar(5) = 0.3)||(var(23)=0);同技補正とパワーアップ管理変数
trigger3 = ctrl
trigger3 = P2BodyDist X =[-40,60]
Trigger3 =P2BodyDist Y =[-52,62]
trigger3 = p2movetype = H
trigger3 = var(21) =0
trigger4 = var(21)>0
trigger4 = vel Y > 0
trigger4 = P2BodyDist Y = [-45,50]
trigger4 = P2BodyDist X =[-40,60]
trigger4 = EnemyNear(var(50)),movetype =H
trigger5 = stateno = 610
trigger5 = movehit
trigger5 = EnemyNear(var(50)),StateType!= A
trigger5 = (var(23)=0)||(fvar(5)!=1)
trigger6 = ctrl
trigger6 = var(20)=7
trigger6 = P2BodyDist Y = [-55,50]
trigger6 = P2BodyDist X =[-40,60]

37ケットシー:2013/03/23(土) 01:47:08
追記 
録画してみてみたのですがtimeが0のままになっていました。

38ケットシー:2013/03/23(土) 21:49:09
すいません二回連続自己解決しました。trigger4にctrlが入っていなかったためひたすら640へチェンステし続けてたのが原因でした。

39Azuma:2013/05/05(日) 18:32:36
鬼武者の魂エフェクト(へルパー管理)を作りたいのですが
※参考ムービー ttp://www.nicovideo.jp/watch/sm520983


①相手を攻撃した場所(X座標のみ読み取り)から発生
②画面内ではなくステージ内で一定時間存在する
③発生後、消滅まで蛍っぽい動き方をする(一定範囲をランダムor数パターンでふよふよと浮遊して動く)
④本体の特定アクションに反応して、本体の指定座標へと動く(本体が吸い込むイメージ)

このうち、③の「蛍っぽいふよふよしたランダムorパターン挙動」
及び④の「本体の指定座標へと動く」のvel系ステコンを作れませんでした。

参考になるキャラがいたら、それをベースに作るなどの手段を考えているのですが見つかっていません。
可能であれば記述それ自体を教えて下されば理想ですが
もしくは、参考になるキャラデータの紹介をお願いしたいです。

40blank:2013/05/07(火) 22:35:22
東方の「魂魄 妖夢」は半霊という「本体を追尾する」「ふよふよした」オプションを連れています。
クロガネ氏が原作再現キャラを作成していてダウンロード可能なので参考にしてはいかがでしょうか?

41blank:2013/05/14(火) 20:20:59
すいません、初心者なんですけどここってCNS代行をお願いできますか?

42blank:2013/05/15(水) 00:41:29
ドッターなら「こういうキャラ描いてるんでプログラマー募集します」的なのを
どっちかの絵板に貼れば、ドット打てないけどCNS組めるって人が名乗りを上げるかもしれないよ
箱レンとかそういうタイプだった気がするし

ここはどっちかというと、自分で記述組んでるけど上手くいかない部分があるから解決策が欲しい
って人にアドバイスするのがメインだから、そういう呼びかけには適さないと思う
ここ見てる人自体そんなに多くなさそうだし

43blank:2013/05/15(水) 12:58:12
>>41
【同人ゲーム】MUGENキャラ作ろうぜ!スレあたりはどうかな?

42の云うとおり、具体的に○○なキャラ作ってますorサンプル絵提示すると
更に良いかも知れないよ

44blank:2013/05/15(水) 16:56:52
>>42 >>43 返信ありがとうございます。
そんなスレがあったんですね、了解しました。のぞいてみますね。

45Azuma:2013/05/19(日) 18:20:39
>>40
参考にしてみます、ありがとうございます。


御礼遅れました。
サキエルのオプション火の玉も参考になりそうなので、見てみることにします。

46flax:2013/05/23(木) 16:22:04
すんません、非常に間抜けな質問なんですが…
ヘルパーを出して、それにエフェクトを出させて、本体の方でvarの数値を変更したらエフェクトを消してヘルパーも消す、っていう処理をさせたいんですが、
[State -2, エフェクト消去]
type = RemoveExplod
trigger1 = var(21)!= 1
ID = 12000
と記述してもエフェクトを出した瞬間に消してしまいます
デバッグ情報ではちゃんとvarそのものは1になっているんですが…

47blank:2013/05/23(木) 23:49:58
Trigger1 = Parent,Var(21) != 1
だね
本体とヘルパーは別々に変数管理してるから
本体のvarを見てヘルパーが行動を起こすって場合にはParentリダイレクトが必要

48flax:2013/05/25(土) 02:28:53
>>47
ありがとうございます!
こんな簡単な事に気付かなかったとは…

49blank:2013/08/27(火) 16:03:44
ステートを奪って地面に接触するとバウンドする技が作りたいのですが、
どの様な記述をすればいいのでしょうか?
カンフーマンの壁バウンドを参考にしようと思ったのですが、壁バウンドにしかならないので…。

50blank:2013/08/27(火) 23:20:40
5050の空中喰らい落下から始まって5100〜5101が床バウンド、5110が床ダウンのステートだから参考に。
基本的にPos y>=0とVel y>0でPosSetとVelSetとChangeAnimで床衝突、
AnimTime等でタイミング図ってVelSetとChangeAnimで跳ね上がり、
あとはVelAddやGravityで重力かけつつ再度Pos y>=0とVel y>0で床ダウン
って流れ。
Common1.cns見て記述を理解しながら書いた方がいいと思うよ

51MANDA:2013/09/16(月) 17:30:23
初めまして、MANDAというものです。最近MUGENでキャラ作りを始めたのですが、
ヘルパーが思うように消滅してくれなくて困っています。ちなみにそのヘルパーとは、
KFMを改造してお辞儀をするたびに本体の動きとシンクロするKFMが沸いてきて
、その沸いてきたKFMは攻撃を受けると消滅する・・・という感じにしたいんです。
しかし攻撃を受けると、なぜか消滅せずに判定が残ったまま固まるという現象が、
分身だけでなく、本体にも起こります。どうすればちゃんと消えてくれるのでしょうか?
CNSの記述も書いたほうがいいでしょうか?

52blank:2013/09/17(火) 23:15:49
statedef 5000が無い(or無関係なステートと番号被ってる)んでしょうな

53blank:2013/09/17(火) 23:19:10
書き忘れたけど5000とかはCommon1.cnsに最初からあるから
特に弄ってなければ5000が無いってことはないと思う

54MANDA:2013/09/18(水) 21:54:57
Common1.cnsとかは特にいじってないですね
ちなみにCNSに書き込んだヘルパーのステートは以下のとおりです
[Statedef 6000]
type = S
movetype = A
physics = S
anim = 195

[State 6001]
type = Helper
trigger1 = time = 10
helpertype = normal
name = "bunsin"
ID = 200
stateno = 40
pos = 60,-120
postype = p1
facing = 1
supermovetime = 0
pausemovetime = 0
keyctrl = 1

[State 6001,攻撃を受けたときの処理]
type = HitOverride
trigger1 = time = 0
attr = SCA, NT, ST, HT, NA, SA, HA,NP,SP,HP
stateno = 6002
Time = -1
ForceAir = 0

[State 6002, ヘルパー消滅]
type = DestroySelf
anim = 40
trigger1 = Animtime =0

[State 1010,1]
type = changestate
trigger1 = time = 30
value = 10
ctrl = 1
ステート6000台がなんかのステートと被ってるか
単純に何かが抜けているのどっちかですかね?
記入漏れがあるなら教えていただけるとありがたいです

55blank:2013/09/19(木) 23:14:01
まず、6000番を読み込むと
11F目に40番(ジャンプ開始)で始まるヘルパーを呼んで
今後いかなる攻撃を受けても6002番に飛ぶよう準備して
自分がヘルパーだったら現在表示中のアニメーションの終わりに消滅して
31F目に10番(屈み開始)へ飛ぶ
ということになってる
で6002番が存在しないから一度喰らったらその後の挙動が指定されずに固まる

[Statedef XX]を記入して初めてXX番として機能するから
>>54の書き方だと[State 6001]とかが全て6000番の中身として扱われる

56MANDA:2013/09/21(土) 13:03:16
つまり、6001番とか6002番を[Statedef 6001]みたいに直せってことですか?

57blank:2013/09/21(土) 15:07:08
[Statedef XX]から[Statedef YY]までがXX番で、[State ZZ]のZZは全く考慮されない
で、各ステートには最低1つの[State ZZ]がなきゃいけないから
[State 6001]を書き換えるんじゃなくて[Statedef 6001]を適切な場所に追加する

58MANDA:2013/09/21(土) 19:02:07
うーん?初心者なのでよくわからないです・・・
[State ZZ]とは具体的にはどんなものか、
また適切な場所とはどこなんでしょうか?
わからないことだらけで申し訳ないです・・・すみません

59blank:2013/09/21(土) 19:53:05
[Statedef 6000];6000番ステート開始
Type = S
MoveType = A
Physics = S
Anim = 195;Type〜Animの4つはステート開始時の設定(VelSetやCtrl等もここで設定可)

[State 6001];6000番ステートの中身1つ目
Type = Helper
(略)

[State 6001];6000番ステートの中身2つ目
Type = HitOverride
(略)

となっているのを、例えば
[Statedef 6000];6000番ステート開始
Type = S
MoveType = A
Physics = S
Anim = 195;Type〜Animの4つはステート開始時の設定(VelSetやCtrl等もここで設定可)

[State 6001];6000番ステートの中身1つ目
Type = Helper
(略)

[Statedef 6001];6001番ステート開始

[State 6001];6001番ステートの中身1つ目
Type = HitOverride
(略)

と記述を追加するとHelperは6000番の中身のままで、HitOverrideは6001番の中身になる
この時の[State 6001]の「6001」には何の意味も無くて、
[State ろくせんいち]と日本語入れても[State ]と無記載(半角スペースは必須)でも
[Statedef 6000]の下であれば6000番の中身だし[Statedef 9999]の下であれば9999番の中身

60blank:2013/09/21(土) 20:11:25
CNSの構造理解しないとこの先躓くだろうからその説明ばっか書いてたけど
>>51のやりたいことを記述に起こすと

[State ]
Type = Helper
Trigger1 = Time = 10
StateNo = 6000
Pos = 60,-120
KeyCtrl = 1

を最初からある[Statedef 195]の下に追加して

[Statedef 6000]
Type = A
Physics = A
Anim = 44

[State ]
Type = HitOverride
Trigger1 = 1
Attr = SCA, NA, SA, HA, NT, ST, HT, NP, SP, HP
StateNo = 6001
Time = -1

[Statedef 6001]

[State ]
Type = DestroySelf
Trigger1 = 1

をCNSファイルの一番下にでも追加する
ってところかな
完全にシンクロさせるならこの方法じゃ無理だけど
>>54から察するにやりたいのはこれだと思う

61MANDA:2013/09/22(日) 20:54:05
出来ました!ありがとうございます!
しかしcnsの構造ですか・・・
始めたばかりなので右も左もわかりませんが何とかして理解していきたいと思います。
これから何度もいろんな問題にぶち当たるでしょうけれど、
そのときはまた、サポートしてくださるとうれしいです。

62blank:2013/09/28(土) 09:49:14
仮面ライダーアギトのライダーキック用に
「地面に描かれたエフェクトが回転する」という画像を作りたいのですが
イメージ:ttps://www.youtube.com/watch?v=q1CGPfT6OZs

予め平面に描いた絵を「Hamana」で3次元回転させてステージ等の「地面」にz軸を合わせて斜めに見た画像を作成
ヘルパーかAngleDrawなどで回転させてエフェクトにしようとしたのですが、回転軸がz軸が無いので結局不可能でした。

こういったエフェクトを作成することのできるフリーウェアはないでしょうか?

63blank:2013/09/28(土) 13:28:23
AngleDrawで回転させてそれをキャプ→SFF登録→yScaleを縮めて表示
でいいんじゃない?
NoBGやInvisibleをAssertSpecialして邪魔な絵を消しておけばトリミングだけでおkだし
MUGENのAngleDrawは中間色とか勝手に追加しないから仮登録した回転加工前の画像と同じパレット使えるし

64flax:2013/09/30(月) 03:39:54
パワーゲージをメルブラみたく固有のゲージとして表示させたいのですが、
常時出しているヘルパーにExplodを出させて、
それのAnimを本体のパワーが増える度に変更するという感じで実装しようと
Anim = IfElse(Root,Power>=5000,13160,13000+Floor(Root,Power/31.44))
のように記述したのですが、Animが変わってくれません。
デバッグで確認したところ13000は出ているのですがそこから変わらないようです。
本体のパワーゲージのMAXは5000で、そこまでゲージが伸びるようにしたいと思っています。
アニメ番号13160はMAX状態のゲージで、13000から13159までは1ドットずつ削ったゲージの画像を登録しています。
Animが変わらないのはHelperの仕様でしょうか?それとも別な不備でしょうか?

65blank:2013/10/01(火) 01:21:00
IfElseの中のリダイレクトはIfElse用のコンマと誤認されないようカッコで括るのを忘れないように
それは兎も角、Powerは本体・ヘルパー(・相方)共有だからそもそもリダイレクト自体不要だね

66flax:2013/10/02(水) 00:41:17
>>65
なんと…盲点でした
色々あって無事実装できました

67にょろにょろ ◆SzcHm6l1xM:2013/10/16(水) 07:58:58
KFMのAir 5040、5200、5210は全て空中受身のために用意されているもので、
いわゆる地上受身は独自にStateDefとAirを
作る必要があるということでいいのでしょうか?

68blank:2013/10/16(水) 21:48:34
Airは兎も角StateDefは新たに作らなきゃいけない
あと既設のCanRecoverでは地上/空中で受身の可否を分けられないから
CanRecoverに依らないトリガーでチェンステすることになるだろうけど
どんなに上手く条件設定しても相手から見たらノーゲージ喰らい抜けと変わらないから注意

69にょろにょろ ◆SzcHm6l1xM:2013/10/17(木) 07:51:14
うーん…CanRecoverを使用しない場合は
ノーゲージの食らいぬけ扱いですか。

ちょっと地上受身持っていそうな
キャラの記述を探してみます…

70flax:2013/10/19(土) 02:13:29
地上受け身は相手が地上受け身不可な事を前提に作ってる(相手のダウン時間に合わせて硬直を設定してるとか)技を出した時に一方的に反確を取れたりして、
ギルティギアとかの受身みたいな感じで理不尽になっちゃったりするのでご利用は計画的に

71blank:2013/11/16(土) 18:26:40
質問していい内容なのか分かりませんが、M3氏のシャルラッハロートのマント&ツインテを参考にしようとsffをSAEで開いてみたのですが、開けませんでした
原因が分かる方はいらっしゃるでしょうか
某板にて誤爆してしまったのでこちらに…

72島村鰐:2013/11/16(土) 23:43:09
ああ、それはキャラがMUGEN1.0用でSFFの形式も新型になっていて旧win版のSFFと違っているために
win版SFF用のツールであるSAEでは弄れないのですね。

新SFFはActファイルに相当する色情報も一緒に組込めるようになっていて
これを使っているキャラはキャラフォルダの中にActファイルが無いのが特徴です。

1.0対応でも旧型のSFF使ってるというキャラもいるのですがM3氏のキャラはそうではないので
1.0の新型SFFを展開できるツールを見つけてくる必要があります。

73戦車:2013/12/11(水) 18:39:00
カンフーマンのスプライト改変を作ってるんですが
カンフーニーの追加攻撃について質問です
Airに記述はあるしmugenでもコマンド入力すると動作するんですがcmdにそれらしい記述が見当たりません
入力受付時間について知りたいので参照する記述を教えていただけたら幸いです

74blank:2013/12/11(水) 21:19:21
カンフーニーのstatedefそのものや
cmdファイル(-1)でない-2などに追加コマンドを受け付けるトリガーがあるのではないでしょうか?

75blank:2013/12/12(木) 08:24:50
どうやら、ステ番1051(強カンフーニーなら1061)にそんな記述があるみたいですよ。
受付条件は上昇中なら、いつでもいいらしい

76戦車:2013/12/12(木) 19:48:53
>>74
>>75
回答&解答ありがとうございます!
cnsもコマンドに関係するんですね
無知で申し訳ありません;
一応確認ですが
trigger1 = Vel y < -1
の記述が「高さの速度が-1を下回ったとき下の記述に移行する」であってますか?

77blank:2013/12/13(金) 21:56:37
Yes、あってます

78戦車:2013/12/14(土) 16:05:41
>>76を書いた後に高さの速度が-1って下降中じゃね?あれ?
とか思いましたが調べてみたら負の数が上昇値だったでござる
つまり上昇中にコマンド入力すれば技が出るということですな
以上独り相撲でした
アドバイスありがとうございました!

79blank:2013/12/14(土) 16:38:41
失礼、補足です。
上昇中は「 Vel Y < 0 」ですので、厳密には上昇中なら 何時でもいいわけではない です
速度 1 程度なら気にしなくてもいいぐらいですが一応。

80戦車:2013/12/14(土) 18:27:49
ああ成程
「Vel y < -1」だと小数点以下の速度では反応しないですね
重ね重ねありがとうございます!

81Jaki:2013/12/14(土) 23:37:27
type = Helperで設定したpausemovetimeをそのヘルパーを消さずに変更することは可能でしょうか?
地獄兄弟のクロックアップ(時間停止的な技)を試作しているのですが、
弟も止めずに動かそうとするとpausemovetimeをあらかじめ高くする必要があり、
結果として弟が相手の停止技でも止まらず平然としてるという状態になってしまう…

82blank:2013/12/15(日) 01:40:58
直接いじるのは無理なのでは?
少なくとも、対応するステコンはないように思えます。

以下、試していないので不確定ですが、思いついたものを。

1.弟のpausemovetimeを小さく設定した上で、
クロックアップと同時にmovetimeを設定したpausetimeを“兄弟二人(本体とヘルパー)に”実行させる。
→「CNS WIKI」のpausetime(ttp://www49.atwiki.jp/mugencns/pages/248.html)の補足を見る限りはこれで大丈夫そう

2.弟のpausemovetimeを小さく設定した上で、
クロックアップと同時に“pausemovetimeを動かしたい分だけ設定した弟”を出しなおす。
→弟が攻撃し続けたままクロックアップに入れるなら使えませんが

83blank:2013/12/15(日) 01:41:11
無理だからPauseMoveTimeは高いままにして
RootのTimeが進んでるかどうかを見ながらステコンで処理しなきゃいけない
VelやPosやAnimを止めなきゃいけないしTimeを迂闊に参照できなくなるからめんどいよ

84blank:2013/12/15(日) 01:47:44
ああ、Pauseが実行されるタイミングが分かるのであれば
同一フレームでヘルパーにもPause実行させれば済む話だな確かに

85Jaki:2013/12/15(日) 23:26:00
>>82
1の方法で無事違和感なく動かせました。
5Fごとに時間停止かけてスローモーションかけるみたいなのが出来ないのが難点ですが…
2の方法は私も考えたのですが、クロックアップ終了後の移行をどうするかやヘルパー作る手間を考え最後の策にしてました
>>83
弟の全モーションにその記述入れるとなると死んでしまいます…

ご意見ありがとうございました。pauseを二人同時に行うようにする方法を取りたいと思います
元々スローモーションのつもりでしたが、完全停止の方が管理の問題もなさそうですね

86ケットシー:2014/01/24(金) 01:39:49
 うん?もしかしてヘルパーにステート奪わせてる最中に他のヘルパーで攻撃あてるとステート帰らなくなったりします?

87blank:2014/01/25(土) 11:47:25
別にそんなことはないけど
Ctrl+Dで相手が黄文字のままだったらステート返せてないから
もしそうなら何かしらの問題があるね

88ケットシー:2014/01/25(土) 22:00:41
 ええさきほど再度試したら普通にステート返せてました。寝ぼけてボタン間違えてたかな?

8980%:2014/06/28(土) 21:48:55
自作キャラをmugenに登録して、mugenを起動したんですが、こんなエラーが出ました。
defの記述は和訳kfmや既存の東方キャラを参考にしました。
エラーの内容です。(↓)
)Error message:
Error loading chars/yuyu/yuyu.def
Error while precaching
Error loading chars/yuyu/yuyu.def
Error while precaching
Error loading chars/yuyu/yuyu.def
Error loading p1

どのファイルの記述に原因があるのかお願いします。

90blank:2014/06/29(日) 00:07:19
defファイル読み込みエラー 大方参照ファイルが無い辺り

9180%:2014/06/29(日) 01:33:19
うーん、参照ファイルってどのファイルのことを言っているんだろう・・・・?
このエラーが出ない方法、どなたかわかりますか?

92blank:2014/06/29(日) 03:28:40
わからないです。 おわり

93blank:2014/06/29(日) 05:53:59
>>89,91
ファイル一覧とdefの記述の詳細が無いと他人には特定できない、と前置きして。

まずエラーメッセージには何かしらの事情があるんだから、
出なければOKなんて考え方は誤り。そんでエラーメッセージの意味を理解すること
Error while precaching.は事前読み込みの失敗を表す。その対象として上がってるのがyuyu.def
つまりyuyu.defにまつわる何かに問題があり、正常に読み込めない。
あとはdefファイルに必要なものを確認して、それがちゃんと存在して、ルールを守って記述されてるか確認すること。

例示1:cmdが未設定の場合のエラー
ttp://gyazo.com/c2a42daa38ba9da2457b3503ec6bb55f
例示2:指定したファイルが存在しない場合のエラー
ttp://gyazo.com/1d3cd24497ecc6619c7e5491f7aa8894

94blank:2014/06/29(日) 05:58:37
締めが抜けたし
>>93の続き
>>89の場合、エラーメッセージ自体は>>93の例示1と同じもの
とりあえずこのへんの必須使用ファイルの指定が足りていないのではないか、というのが>>90の示すところ。
どのファイルのことかは自分のファイルと必要ファイルを見比べて。
他にdefでprecachengエラーが出る例を知らないからあとはぼくには判断つかないわ

95戦車:2014/07/15(火) 14:42:30
ここでいいかわかりませんがちょっと質問です
和訳KFMのAIRファイル見てたら「立ちガード硬直」とか「上段食らいから体勢を立て直す」の最後の方のフレーム数が-1のやつがあったんですよ
説明では「アニメーションが止まり常にその画像が表示し続ける」とあるんですがmugen上ではそんなことないですよね?
つまるところこの「-1」って何?という質問でした

96島村鰐:2014/07/15(火) 18:25:54
そんなことありますよー。

Airのフレーム数指定で-1は「そのコマに入ったらchangeanimなどが使われない限りその絵を表示し続ける」指示ですので
アニメがそのコマに入ったところで動きが止まって硬直します。

何でこんなことになってるかというと
ガードや食らい動作の立ち直りの部分は攻撃側の当てた攻撃によってガード(食らい)硬直時間を変化させなければならないため
ガード硬直の長い攻撃を食らってもアニメが先に終わってしまって困ったことにならないように
アニメ完了までの時間を無限大に取ってあるわけです。
ガード(食らい)動作の終了自体はアニメの終了とは関係なく、CNS記述の方で攻撃側が指定した硬直時間が過ぎたところで
行われる(ニュートラルのステートに戻る)ようにできているので問題ないのです。

97戦車:2014/07/15(火) 22:27:49
なるほど、攻撃側の記述に左右されるんですね
動gifを作るときにAIRのフレーム数を参考にしていたので気になっていた次第です
回答ありがとうございました!

98livend:2014/12/10(水) 01:39:46
少し質問させて頂きますー
ヘルパーを出現させてストライカーを表示させたのですが、一緒にプレイヤーまでストライカーと同じスプライトに切り替わってしまうんですー
ちゅるやさんのところのストライカーの作り方を参考にしながらやってたんですが、どうも上手くいかなくってー
[Statedef 1201]
type = S
movetype= A
physics = S
juggle = 3
poweradd= 0
velset = 0,0
anim = 1200
ctrl = 0
sprpriority = 2

[State 1201, ヘルパーの呼び出し]
type = Helper
trigger1 = time = 30
stateno = 1205;出現するヘルパーのステートです。
ID = 1205;ヘルパーのIDです
postype = p1;ヘルパーが出現する座標軸です
pos = 27,0;ヘルパーが出現する座標です。
helpertype = normal;ヘルパーの種類を設定します。
name = "taniguchi";出現させるヘルパーの名前です。
keyctrl = 1;キーの制御を受け付けるかどうかです。
ownpal = 1;パレットが本体と同期するかどうかです。

[State 1201, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;ストライカーが出現するステート
[Statedef 1205]
type = A ;
movetype= A ;
;physics = S ;
velset = 0,0
anim = 1205 ;
sprpriority = 2



[State 1205, ヒット定義]
type = HitDef
trigger1 = time = 0
attr = S, SA
damage = 40, 0
animtype = Light
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 8, 8
sparkno = -1
sparkxy = -10, -46
hitsound = 5, 2
guardsound = 6, 0
ground.type = High
ground.slidetime = 5
ground.hittime = 10
ground.velocity = -1
airguard.velocity = -1,-1
air.type = High
air.velocity = -1,-1
air.hittime = 8
fall=1

[State 1205,攻撃を受けたときの処理]
type = HitOverride
trigger1 = Time = 0
attr = SCA, NT, ST, HT, NA, SA, HA,NP,SP,HP
stateno = 1206
time = -1

[State 1205, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
trigger2 = Movecontact
value = 1206
こんな感じなのですが、どうか解決策を教えていただけると有難いです〜

99blank:2014/12/11(木) 15:42:33
プレイヤーまで〜はよく分かりませんが、
とりあえず keyctrl=1 でhelerよんだときは、
呼び出し先の statedef に ctrl=0 を入れるのを忘れずに。

100blank:2014/12/11(木) 17:07:54
見た感じ記述に問題はなさそうですが、どのタイミングで同じアニメに変わりますか?

101livend:2014/12/11(木) 19:34:35
>>99
ご忠告有難う御座います〜
忘れないよう肝に銘じておきますー

>>100
コマンドをcで設定しているのですが、cを押したらストライカーが出るのと同時に切り替わってしまうんですよー
statedef1201がヘルパーとプレイヤーで混同しちゃってるのかなぁとか思いましたけど、ちょっと仕様変更しようと思ったのでなんとなくこの問題は解決しました〜
helpertypeをプレイヤーにして、間桐桜の巨人のようにHPがあって、ヴァンガードプリンセスのサポートみたいにずっと出てるやつを作ろうと思いますー
また躓いたら質問させて頂きますね〜
お二方様、ご相談に乗って頂き有難う御座いました〜

102livend:2014/12/13(土) 05:45:21
連投気味ですがちょっと失礼しますー
ヘルパーちゃんが攻撃されるとプレイヤーキャラになってしまうんですが、HitOverrideを使えばなんとかなるみたいなんですがー
色々試してみてもだめだったのでお知恵をお借りしたいですー
どうすればHitOverrideでヘルパーちゃんのやられ画像に画像を切り替えられますかねー?
常時HitOverrideにできればー、と思うのですがー
どうか教えて下さいませー

103blank:2014/12/14(日) 00:29:41
>>102
常時出ているヘルパーということはヘルパー用のステートが複数あるんでしょうか?
でしたらヘルパー用のステート全て、もしくは-2ステートにHitOverRideの記述を置いていますか?
(もし-2ステートに置く場合はtrigger1=IsHelperを忘れずに)

あと、ヘルパーが0番ステートに来てしまった場合の保険として、0番ステートにDestroySelfかChangeStateを置くことをオススメします
(こちらもtrigger1=IsHelperを忘れずに)

それとこれは本題とは関係ないですが、文中に「ー」や「〜」を多用するのは控えた方が良いように思います
少なくとも、質問する側の文体として適切とは感じられないかと

104livend:2014/12/14(日) 19:55:57
>>103
ご忠告有難う御座います
伸ばし棒を入れた方が文体が柔らかくなるかなぁ、といった軽い考えでしたので
そこまで考えが思い至りませんでした
誠に申し訳御座いません
全てにHitOverRideを入れるのですか?
てっきり一つでよいものかと思っていました
ヘルパーが0番ステートに来た場合は考えてませんでした
ご忠告感謝致します
すぐさまChangeStateを置かせて頂きます
それと、ヘルパーちゃんにLifeの概念を作りたいのですが
どうすれば良いでしょうか?

105blank:2014/12/15(月) 01:59:18
>>104
例えばヘルパー用のステートがAとBの2つあり、AにだけHitOverRideがありBにはないとします
その場合、Bのステートにいると当然HitOverRideが実行されることはないですよね?
なので全てのステートか-2ステート(常時監視ステート)にHitOverRideを置いておく必要があります
(※-2ステートを読み込むヘルパーはHeleprType=Playerのみ)

また、ヘルパーは本体と同じLifeを最初から持っていて0になれば死亡します

106livend:2014/12/15(月) 21:38:36
そうなんですか、知りませんでした
無知を恥じます
とてもわかりやすい解説をどうも有難う御座います
初心者にも理解できる内容でとても嬉しいです
またわからなくなったら質問させて頂きます
有難う御座いました

107blank:2014/12/22(月) 00:49:21
ヒット数をトリガーに指定したいんですが、どういった記述を使えばいいですか?

108blank:2014/12/22(月) 06:43:48
こういう所はどうかな?ttp://homotaro.s44.xrea.com/triggerref.htm がんばって

109blank:2014/12/22(月) 08:15:21
ヒット数はHitcountではなく変数を使って管理した方が確実ですね
「mugen コンボ補正」で検索すれば記述が書かれたページがいくつかヒットするので、
適当な物を拝借し必要に応じて修正するのがベターだと思います

110blank:2015/03/10(火) 17:16:35
://gyazo.com/879d0a55f53bf22bfefe404c571de9bd


突然、上のレイヤーだけ表示されて、
下のレイヤーが表示されなくなったのですが、
(上のレイヤー表示を消せば、下のレイヤーが映る。)

どのコマンドを実行してしまったのでしょうか?
edgeです。

111blank:2015/03/11(水) 00:00:38
とりあえず、変化が起きていない別edgファイルに全てレイヤーをコピペして誤魔化しました。

112blank:2015/03/15(日) 00:17:44
guard.velocityをhitdefに入れてもノックバックしないんですが、
これ以外に必要な記述があるんですか?

113blank:2015/03/15(日) 11:49:46
>>110
レイヤのプロパティにある透過色の設定が変わっているかもしれません

>>112
guard.velocityということは相手がガードした時にノックバックしない、ということですよね?
であれば値はマイナスになっているでしょうか?

114blank:2015/03/15(日) 20:46:43
>>113
マイナスの値を入れていますがノックバックしませんね…
ground.velocityのみにしてもガード時に下がらないようです。

115blank:2015/03/15(日) 22:15:35
>>114
それではguard.hittimeかguard.slidetimeが0になっていないでしょうか?

116ソルト:2015/04/10(金) 23:11:14
(こちらでは)初めまして、ソルトといいます。
多分こちらで多々使うと思いますので、すみません。
それで質問なのですが、下記の記述(カンフーマンの超必殺技をちょっといじりました)を、ディズィーの「インペリアルレイ」のような感じにしたいのですが、
うまくいかないのです。(画面端で発動したら、上手く進まなくて、敵が軽くはまってしまう等)
自分はまだ、CNSにはよくわからないので、何かアドバイスがありましたらスミマセンがお願いします。

以下記述
;ホーリー・ペネトレイト
[Statedef 3000]
type = S
movetype= A
physics = S
juggle = 4
velset = 0,0
anim = 3000
ctrl = 0
sprpriority = 2

[State 3000, 物理的なキャラの幅]
type = Width
trigger1 = AnimElem = 2, >= 0
value = 15,0

[State 3000, 超必殺技暗転時間停止]
type = SuperPause
trigger1 = AnimElem = 1
anim = 100

pos = 25, -57
sound = 20, 0

poweradd = -1000
time = 45
;movetime = 0
;darken = 1

;p2defmul = 1.0




;unhittable = 1


[State 3000, 相手の特定の攻撃属性無効]
type = NotHitBy
trigger1 = AnimElem = 2
value = , NA, SA, AT
time = 11

[State 3000, 相手の特定の攻撃属性無効]
type = NotHitBy
trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(14) < 0
value2 = C, NA
time = 1

[State 3000, 音を鳴らす]
type = PlaySnd
trigger1 = AnimElem = 4
trigger2 = AnimElem = 12
trigger3 = AnimElem = 20
value = 0, 3

[State 3000, 槍]
type = Helper
trigger1 = AnimElem = 9
helpertype = normal
name = "Holly_yari"
ID = 3001
pos = 20, 0
postype = p1
facing = 1
stateno = 3001
keyctrl = 0
ownpal = 1
supermovetime = 0
pausemovetime = 0
size.xscale = 0.5
size.yscale = 0.5
size.ground.back = 0
size.ground.front = 0
size.air.back = 0
size.air.front = 0
size.height = 0
size.proj.doscale = 0
size.head.pos = 0, 0
size.mid.pos = 0, 0
size.shadowoffset = 0

[State 3000, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

117ソルト:2015/04/10(金) 23:12:27
続き
[Statedef 3001, 槍]
type = A
movetype= A
physics = N
anim = 3001
velset = 0,0
sprpriority = 3
movehitpersist = 1


[State 3001, 移動]
type = PosAdd
trigger1 = AnimElem = 2
x = 50
y = 0

[State 3001, 1撃目ヒット定義]
type = HitDef
trigger1 = AnimElem = 9
trigger2 = AnimElem = 10
trigger3 = AnimElem = 11
attr = S, HA
animtype = hard
damage = 90, 4
priority = 5
guardflag = HA
pausetime = 4,7
sparkxy = -10,-60
hitsound = 5,4
guardsound = 6,0
ground.type = high
ground.slidetime = 12
ground.hittime = 15
ground.velocity = -4,-3.5


[State 3001]
type = changeanim
trigger1 = anim = 9999
trigger1 = animtime = 0
value = 9999



[State 3001, 1]
type = TargetState
trigger1 = movehit
trigger1 = numtarget(3001)
trigger1 = p2statetype=S||p2statetype=C
value = 15020
id = 3001
persistent = 0
ignorehitpause = 1


[State 3001, 終了]
type = destroyself
trigger1 = anim != 9999
trigger1 = frontEdgeBodyDist < 30
trigger1 = animtime = 14

です。

118blank:2015/04/11(土) 03:17:53
>>116
記述を実際にMUGEN上で確認してみましたが、
「相手が画面端を背にしている状態でヒットすると上手く前進せず複数回ヒットする」
ということで間違いないでしょうか?
もしそうであれば、HitDefの「Ground.CornerPush.Veloff」を省略しているのが原因です。
これを0に設定すれば画面端でノックバックすることがなくなり、前進するかと思います。

それと、このヘルパーが表示するアニメはループ(アニメの最後が-1ではない)と思うのですが、
[State 3001, 終了]の「trigger1 = animtime = 14」という記述はループするアニメでは機能しません。
仮にアニメの表示フレームの合計が14である場合、-13以上0以下の数値を指定するかこのトリガーを削除しなければ、
このヘルパーは画面外に存在し続けることになります。

各項目の詳細は書くと長くなるので、「MUGEN CNS WIKI CHAOS」などを参考にしてください。

119ソルト:2015/04/19(日) 00:40:07
早速ここの住人になりそうな者です。
この前のアドバイスをありがとうございます。おかげでなんとかなりそうです。
ただ次の超必殺技の記述をやろうとして、詰まっちゃったので質問をしに参りました。
下記なのですが、これをヴェノムの「ダークエンジェル」のようなものにしたいのですが
必要以上にヒットが出ちゃうんです。ググってもMUGEN CNS WIKI CHAOSを見てもわからなかったので、
スミマセンが何かアドバイス等がありましたら、お願いします。

以下記述↓
;ホーリー・エンジェラー
[Statedef 3020]
type = S
movetype= A
physics = S
juggle = 4
velset = 0,0
anim = 3020
ctrl = 0
sprpriority = 2

[State 3020, 物理的なキャラの幅]
type = Width
trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(16) < 0
value = 5,0

[State 3020, 超必殺技暗転時間停止]
type = SuperPause
trigger1 = AnimElem = 3
pos = -5, -55
anim = 100
time = 45
sound = 20, 0
poweradd = -2000


[State 3020, 相手の特定の攻撃属性無効]
type = NotHitBy
trigger1 = AnimElem = 2
value = , NA, SA, AT
time = 6

[State 3020, 音を鳴らす]
type = PlaySnd
trigger1 = AnimElem = 4
value = 0, 2




[State 3020, 弾]
type = Helper
trigger1 = AnimElem = 9
helpertype = normal
name = "Holly_ANGEL_tama"
ID = 3021
pos = 63, -50
postype = p1
facing = 1
stateno = 3021
keyctrl = 0
ownpal = 1
supermovetime = 0
pausemovetime = 0
size.xscale = 0.5
size.yscale = 0.5
size.ground.back = 0
size.ground.front = 0
size.air.back = 0
size.air.front = 0
size.height = 0
size.proj.doscale = 0
size.head.pos = 0, 0
size.mid.pos = 0, 0
size.shadowoffset = 0
IgnoreHitPause = 1


[State 3020, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

続きます

120ソルト:2015/04/19(日) 00:42:51
[Statedef 3021, 弾]
type = A
movetype= A
physics = N
anim = 3021
velset = 0,0
sprpriority = 5
movehitpersist = 1


[State 3021, ADD移動]
type = veladd
trigger1 = Animelemtime(8) >= 0
trigger1 = ABS(vel x) <= 5
x = 0.1

[State 3021, SET移動]
type = velset
trigger1 = Animelemtime(8) >= 0
trigger1 = ABS(vel x) > 5
x = 5


[State 3021, あ]
type = PlayerPush
trigger1 = 1
value = 0



[State 3021, 1撃目ヒット定義]
type = HitDef
trigger1 = AnimElemTime(10) >= 0
attr = A, HP
animtype = hard
damage = 90, 4
priority = 5
guardflag = HA
pausetime = 4,7
sparkxy = -10,-60
hitsound = 5,4
guardsound = 6,0
ground.type = high
ground.slidetime = 12
ground.hittime = 15
ground.velocity = -4
guard.velocity = -4
Ground.CornerPush.Veloff = 0
pausetime = 0,1
guard.slidetime = 18
guard.hittime = 17
airguard.velocity = -3.9,-2.8
air.fall = 1





[State 3021, 終了]
type = destroyself
trigger1 = frontedgebodydist <= -120
trigger2 = time = 300

コマンド(あとで調節する予定)
[State -1, ホーリー・エンジェラー];ゲージレベル2
type = ChangeState
value = 3020
triggerall = command = "Holly.E"
triggerall = power >= 2000
triggerall = statetype != A
trigger1 = ctrl
trigger2 = hitdefattr = SC, NA, SA, HA
trigger2 = stateno != [3010,3100)
trigger2 = movecontact
trigger3 = (StateNo = 1300) && (Time = [12,38])

以上です

121blank:2015/04/19(日) 02:30:32
はじめまして、質問です。
相手のステートを奪ってScreenBoundを実行しmovecamera = 1,0でx軸のみカメラを追うように
自分のステートでも同じようにScreenBoundを実行しmovecamera = 1,0でx軸のみカメラを追うように設定してるはずなんですが
横方向にカメラが動きません(縦にも動きません)。横だけにカメラを追わないのは何故なんでしょうか?
どなたか教えていただきたいです。よろしくお願いします。

122blank:2015/04/19(日) 11:09:37
>>119
HitDefの「trigger1 = AnimElemTime(10) >= 0」によって、
『アニメの10枚目を表示した瞬間からアニメ終了までの全フレーム』で攻撃判定が発生しているのが原因だと思います。
もし仮にアニメの10枚目から14枚目の間でのみ攻撃判定を発生させたいとして、
その場合は以下のように記述する必要があります。
trigger1 = AnimElemTime(10) >= 0
trigger1 = AnimElemTime(15) < 0

>>121
valueを省略していませんか?
もし省略しているなら1に設定してみてください。

123blank:2015/04/19(日) 22:01:16
>>122
value =1しにても変わりませんでした。
どうやらこれはmugenの仕様みたいです。ありがとうございました

124ソルト:2015/04/20(月) 00:00:32
>>122
ありがとうございます。ですが、その記述をすると、なぜか当たらなくなります(10枚目に「Loop」をつけているから?よくわからない(´・ω・`))
後、この前の、記述の質問ですが、追記として「ヴェノムのダークエンジェルのヒット数のように15〜20ヒットしたいのですが
なぜか40ヒット以上になる」です。
連投と、自分の言葉足らずのせいで、ご迷惑をおかけして申し訳ありませんでした。

125blank:2015/04/20(月) 03:44:23
>>124
ヒット数を調整したい場合は
trigger1 = AnimElemTime(10) >= 0
trigger1 = time%X = 0(ステートに入ってからの経過時間をXで割った際の余りが0の場合 この場合はXフレーム毎)
でOKだと思います

あとAnimElemTime(15)〜はアニメの15枚目が存在しない場合には成立しないトリガーとなるので
そのせいでhitdefが機能しなくなったのでしょう

126blank:2015/04/26(日) 05:59:39
補足する必要はないかもしれませんが、初心者でtime%Xが何をしてるのか判らないという方をよく見かけるので少しだけ詳しく。
算術演算子%とは、 値a % 値b の形を取るもので、[*]や[/]、[+][-]と同様、計算するためのものであり
time% という固定されたナニカがあるわけではありません。割った余りをはじき出すための算術演算子です。

例示1
150 % 5 が返す値は0 (150は5の倍数であるため、余りが出ない)
130 % 3 が返す値は1 (130/3=43と余り1)

なぜこんなあまり見たことのないような[time%X=0]の値を使うよう指示されたかですが、
mugenは基本的に60fpsです。1f(フレーム)が1/60秒を表し、60フレームで1秒となります。
timeも同様に1/60秒を1としていますから、同じ大きさと考えて差し支えありません。1t=1fです。
そして60fpsとは、現在のステートの記述を「秒間に60回実行」しているということです。

例示2
trigger1 = alive
と記述すると、ステート実行中は1秒間に60回のペースで延々と繰り返します。(aliveは生死を表すトリガー)

>>122の記述
trigger1 = AnimElemTime(10) >= 0
trigger1 = AnimElemTime(15) < 0
を要約すると、アニメ番号[10枚目、表示時間0以上]、アニメ番号[15枚目、表示時間0未満]の時となります。
つまり、10枚目の0f目から11枚目,12枚目,13枚目、14枚目の最後のフレームまで全てにおいて「HitDefを上書き発生」させています。
Hitした次のフレームには再発生し、またHitする。それがHitした場合はまたさらに次のフレームには再発生する。
そんなようなことを秒間60回も繰り返すので、とびぬけたヒット数を計上してしまいます。
これについては>>122にも触れられていますね。

等間隔で複数ヒットさせたい、けどtime = 0 time = 10 time = 20とトリガーを大量に書くのは煩雑でよろしくない。
そんなときにTime%X=0が非常に強い味方になってくれます。

例示3
Time%10=0と記述した場合、この条件(Timeを10で割った余りが0)を満たすタイミングは
time=0、time=10、time=20、time=30、time=40、time=50、time=60、time=70・・・。
1桁目が0になった瞬間のフレームで余りが0となり、条件を満たします。1桁目1〜9では全て余りが0でなくなり、満たしません。
つまり、Time%10=0 をトリガーに指定すると、秒間に0,10,20,30,40,50の計6回Hitまで、先ほどまでの1/10しか当たらなくなります。

例示4
trigger1 = Time = 0
trigger2 = time = 10
trigger3 = time = 20
trigger4 = time = 30
trigger5 = time = 40
の2つを同時に満たすものをTime % X = 0に書き換えると、
trigger1 = Time >= 0、time <=40
trigger1 = Time % 10 = 0
の2行となります。すっきりしますね。Timeは原則0から始まるので、一行目はたんに[trigger1 = time<=40]だけでも同じ結果が出ます。

以上から、>>122の記述に戻り
trigger1 = AnimElemTime(10) >= 0
trigger1 = AnimElemTime(15) < 0

trigger1 = time % 12 = 0
等と追記すると、秒間に最大でも5Hitまでの制限が加わります(0f,12f,24f,36f,48f)。
ヒット数は60/Xの形で電卓をたたけば手元で簡単に計算できますので、
あとはアニメの表示時間、あたり判定の存在する時間などと見比べながらお好みの値を入力していきましょう。

127blank:2015/04/26(日) 06:09:31
例示4
trigger1 = Time = 0
trigger2 = time = 10
trigger3 = time = 20
trigger4 = time = 30
trigger5 = time = 40
の2つを同時に満たすものをTime % X = 0に書き換えると、 ←まちがい。正しくは「5つを同時に満たすもの」。
trigger1 = Time >= 0、time <=40 ←まちがい。エラーで落とされるのは確定的に明らか。
trigger1 = Time % 10 = 0
の2行となります。 ←まちがい。&& を使わない限り、time>=0を省略しなければ3行になる。


trigger1 = Time >=0
trigger1 = Time <= 40
trigger1 = Time % 10 = 0
もしくは
trigger1 = Time >=0 && Time <= 40
trigger1 = Time % 10 = 0

寝ぼけてんのに慣れないことするもんじゃないネ

128ソルト:2015/05/02(土) 01:16:33
う〜む、もうちょっと自重したほうがいいかももとこんなにコメントしているの自分だけかな?と思う者です。
ちょっとわからないのが二つあります。
一つは、以前書いた「ディズィーのインペリアルレイのような技」なんですが、
ディズィーは、技を発動して、火柱がババババッ(説明が下手ですみません)っと出るはずなのですが
自分が書いたものだと、一回出して、引っ込め、また出てというなんかさみしい感じになります。
どういう記述をすればディズィーの「インペリアルレイ」みたいな感じになりますか?

あと、もう一つはホーミングについてですが、このホーミングをシューティングみたいな自機狙いホーミング弾
にしたいのですが、調べてもさっぱりわからないのです。
一応、下記の記述で完全追尾ホーミング弾を作ろうと思ったのですが、今度はジャンプしたら、ホーミング弾が
空中に行ったまんま、降りてこないのです。
何かアドバイス等がありましたらお願いします
後、こんなに長ったらしく書いちゃってすみません。

129ソルト:2015/05/02(土) 01:21:39
;ホーリー・ペネトレイト「ディズィーのインペリアルレイのような技」
[Statedef 3000]
type = S
movetype= A
physics = S
juggle = 4
velset = 0,0
anim = 3000
ctrl = 0
sprpriority = 2

[State 3000, 物理的なキャラの幅]
type = Width
trigger1 = AnimElem = 2, >= 0
value = 15,0

[State 3000, 超必殺技暗転時間停止]
type = SuperPause
trigger1 = AnimElem = 1
anim = 100
pos = 25, -57
sound = 20, 0
poweradd = -1000
time = 45
;movetime = 0
;darken = 1
;p2defmul = 1.0
;unhittable = 1

[State 3000, 相手の特定の攻撃属性無効]
type = NotHitBy
trigger1 = AnimElem = 2
value = , NA, SA, AT
time = 11

[State 3000, 相手の特定の攻撃属性無効]
type = NotHitBy
trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(14) < 0
value2 = C, NA
time = 1

[State 3000, 音を鳴らす]
type = PlaySnd
trigger1 = AnimElem = 4
trigger2 = AnimElem = 12
trigger3 = AnimElem = 20
value = 0, 3

[State 3000, 槍]
type = Helper
trigger1 = AnimElem = 9
helpertype = normal
name = "Holly_yari"
ID = 3001
pos = -15, 0
postype = p1
facing = 1
stateno = 3001
keyctrl = 0
ownpal = 1
supermovetime = 0
pausemovetime = 0
size.xscale = 0.5
size.yscale = 0.5
size.ground.back = 0
size.ground.front = 0
size.air.back = 0
size.air.front = 0
size.height = 0
size.proj.doscale = 0
size.head.pos = 0, 0
size.mid.pos = 0, 0
size.shadowoffset = 0

[State 3000, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

続く

130ソルト:2015/05/02(土) 01:25:57
[Statedef 3001, 槍] 続き
type = S
movetype= A
physics = S
anim = 3001
velset = 0,0
sprpriority = 3
movehitpersist = 1

[State 3001, 移動]
type = PosAdd
trigger1 = AnimElem = 2
x = 45
y = 0

[State 3001, 1撃目ヒット定義]
type = HitDef
trigger1 = AnimElem = 9
trigger2 = AnimElem = 10
trigger3 = AnimElem = 11
attr = S, HA
animtype = hard
damage = 90, 4
priority = 5
guardflag = HA
pausetime = 4,7
sparkxy = -10,-60
hitsound = 5,4
guardsound = 6,0
ground.type = high
ground.slidetime = 12
ground.hittime = 15
ground.velocity = -4,-3.5
Ground.CornerPush.Veloff = 0

[State 3001]
type = changeanim
trigger1 = anim = 9999
trigger1 = animtime = 0
value = 9999

[State 3001, 1]
type = TargetState
trigger1 = movehit
trigger1 = numtarget(3001)
trigger1 = p2statetype=S||p2statetype=C
value = 15020
id = 3001
persistent = 0
ignorehitpause = 1

[State 3001, 終了]
type = destroyself
trigger1 = anim != 9999
trigger1 = frontEdgeBodyDist < -50

131ソルト:2015/05/02(土) 01:26:47
;フォトンブレスク ホーミング弾
[Statedef 1060]
type = S
movetype= A
physics = S
juggle = 4
poweradd= 120
velset = 0,0
anim = 1060
ctrl = 0
sprpriority = 2

[State 1060, 音を鳴らす]
type = PlaySnd
trigger1 = AnimElem = 8
value = 30, 0


[State 1060, 弾放出]
type = Helper
trigger1 = AnimElem = 8
helpertype = normal
name = "Holly_tama"
ID = 1061
pos = -30, -60
postype = p1
facing = 1
stateno = 1061
keyctrl = 0
ownpal = 1
supermovetime = 0
pausemovetime = 0
size.xscale = 0.9
size.yscale = 0.9
size.ground.back = 0
size.ground.front = 0
size.air.back = 0
size.air.front = 0
size.height = 0
size.proj.doscale = 0
size.head.pos = 0, 0
size.mid.pos = 0, 0
size.shadowoffset = 0

[State 1060, 五芒星]
type = Explod
trigger1 = AnimElem = 1
anim = 1063
ID = 1063
pos = -30, -60
vel = 0, 0
scale = 0.3,0.3
postype = p1
sprpriority = -3
pausemovetime = 0
supermovetime = 0
facing = 1
bindtime = 90
vfacing = 1
ownpal = 1
removeongethit = 1

[State 1060, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
続く

132ソルト:2015/05/02(土) 01:27:33
続き
[Statedef 1061, ホーミング弾]
type = A
movetype= A
physics = N
anim = 1061
velset = 0.5,0
sprpriority = -3
movehitpersist = 1


[State 1061]
type = Velset
trigger1 =P2BodyDist X > 0
x= 1

[State 1061]
type = Velset
trigger1 =P2BodyDist X < 0
x= 1

[State 1061]
type = Velset
trigger1 =P2BodyDist Y > 0
y= 1

[State 1061]
type = Velset
trigger1 =P2BodyDist Y< 0
y= -1

[State 1061]
type = posadd
trigger1 = P2BodyDist y > -1;←ここに飛び道具にこれ以上下がって欲しくない値をいれます。
y = -1

[State 1114,影消し]
Type = AssertSpecial
Trigger1 = 1
flag = noshadow

[State 1061, 1撃目ヒット定義]
type = HitDef
trigger1 = AnimElem = 4
trigger2 = AnimElem = 5
trigger3 = AnimElem = 6
trigger4 = AnimElem = 7
trigger5 = AnimElem = 8
attr = S, SA
animtype = hard
damage = 90, 4
priority = 5
guardflag = HA
pausetime = 4,7
sparkxy = -10,-60
hitsound = 5,4
guardsound = 6,0
ground.type = high
ground.slidetime = 12
ground.hittime = 15
ground.velocity = -4,-3.5


[State 10000, 無敵];殴られたり投げられたりしないように設定
type = NotHitBy
trigger1 = Time >= 0
value = , NA, SA, HA, NT, ST, HT


[State 1061,消滅条件1]
type = hitoverride
trigger1 = 1
attr = SCA,AA,AP,AT
stateno = 1062;消滅用のステートです
time = 1


[State 1061, 消滅条件2];相殺する場合、消滅ステートに移行
type = HitOverRide
trigger1 = 1
time = 1
attr = SCA, NP, SP, HP
slot = 0
stateno = 1062

[State 1061,消滅条件3]
type = changestate
trigger1 = MoveHit = 1
trigger2 = MoveGuarded = 1;飛び道具が相手に触れた時、というトリガーです
trigger3 = frontedgebodydist < -10;正面の画面端を10ドット通り過ぎた時、というトリガーです
value = 1062
続く

133ソルト:2015/05/02(土) 01:30:11
続き
[Statedef 1062,消滅]
type = A
movetype = I
velset = 0,0;止めます
physics = N
anim = 1062

[State 1114,影消し]
Type = AssertSpecial
Trigger1 = 1
flag = noshadow

[State 1062, 1撃目ヒット定義] これらのヒットデフは当たった時の衝撃波みたいなのです。
type = HitDef
trigger1 = AnimElem = 2
attr = S, SA
animtype = hard
damage = 90, 4
priority = 5
guardflag = HA
pausetime = 4,7
sparkxy = -10,-60
hitsound = 5,4
guardsound = 6,0
ground.type = high
ground.slidetime = 12
ground.hittime = 15
ground.velocity = -4,-3.5

[State 1062, 2撃目ヒット定義]
type = HitDef
trigger1 = AnimElem = 3
attr = S, SA
animtype = hard
damage = 90, 4
priority = 5
guardflag = HA
pausetime = 4,7
sparkxy = -10,-60
hitsound = 5,4
guardsound = 6,0
ground.type = high
ground.slidetime = 12
ground.hittime = 15
ground.velocity = -4,-3.5

[State 1062, 3撃目ヒット定義]
type = HitDef
trigger1 = AnimElem = 4
attr = S, SA
animtype = hard
damage = 90, 4
priority = 5
guardflag = HA
pausetime = 4,7
sparkxy = -10,-60
hitsound = 5,4
guardsound = 6,0
ground.type = high
ground.slidetime = 12
ground.hittime = 15
ground.velocity = -4,-3.5

[State 1062]
type = destroyself
trigger1 = animtime = 0
こんなにレスしてしまって申し訳ありません

134blank:2015/05/05(火) 17:38:59
火柱の攻撃判定が出てる絵までを飛び道具本体のアニメにして火柱が消える部分はexplodで代用表示させればいい

135blank:2015/05/05(火) 23:09:51
[State 1061]
type = posadd
trigger1 = P2BodyDist y > -1;←ここに飛び道具にこれ以上下がって欲しくない値をいれます。
y = -1
↑自分が相手より上にいる時1ドット上昇し続ける これのせい

相手の中心付近をサーチさせたいならP2BodyDist Y 不等号 enemynear,Const(size.mid.pos.y)←近くの敵の腰座標を基準とする
の方がいいんじゃないの

136blank:2015/05/09(土) 01:12:00
Projectileにヒット数での補正をかけることは可能ですか?

137blank:2015/05/09(土) 11:11:37
projのダメージにかける事は可能でもあり不可能でもある
というのもprojは出した瞬間から何かを変更することが出来ない不可侵の存在になってしまうので
射出された時点でのヒット数補正分はかけられるけど
射出した後projがヒットするまでに本体等が与えたヒット分を補正に加算する事は出来ないし、相手がやられから復帰してもprojのダメージにはヒット補正がかかったままになる
当然多段ヒットするprojも全段同じダメージにしかできない

138blank:2015/05/10(日) 11:02:55
なるほど…では、ヒットするまでのヒット数を加算するにはどういった記述をすれば…
varでヒット数管理とかですかね?

139blank:2015/05/10(日) 11:38:52
もしくはenemy,gethitvar(hitcount)←(相手が)受けたヒット数のトリガーですな
ただこれはタッグだと味方が攻撃しただけで加算されてしまうし
enemy,もenemynear,もめんどくさい事しないと死体にも反応してしまって
対象が死んでると全攻撃が無補正になってしまうという罠が有ります

140ケットシー:2015/05/16(土) 00:35:51
 歩きステート必殺技問わず少しでもx軸に動くとmakedustが発生するという謎症状が発生してしまいました。
makedustが原因かと思いCNSから全部消してみたのですが症状が消えません。

 どなたか原因がわかる方はおられますでしょうか。

141ケットシー:2015/05/16(土) 00:42:30
今日追加したアーマー用ヘルパーをnullしたところ症状が出なくなりましたが、makedustなんて全然ない・・・
[State -3, HA用ヘルパー管理] ; HAヘルパーを作成
type = Helper
trigger1 = NumHelper(8800) < 1
helpertype = normal
name = "HA Helper"
ID = 8800
pos = 0, 0
postype = p1
stateno = 8800
keyctrl = 0
ownpal = 1

142ケットシー:2015/05/16(土) 00:44:18
続きです
; HA用ヘルパー
;---------------------------------------------------------------------------
[Statedef 8800]; HA用ヘルパー
type = S
movetype = H
physics = N
velset = 0, 0

[State 8800, 本体がきたら場合立ちへ移行]
type = ChangeState
trigger1 = !IsHelper
value = 0
ignorehitpause = 1

[State 8800, 親の位置に固定]
type = BindToRoot
trigger1 = 1
time = 1
facing = 1
pos = 0, 0
ignorehitpause = 1

[State 8800, 透明化]; 透明化
type = AssertSpecial
trigger1 = 1
flag = invisible
flag2 = noshadow
ignorehitpause = 1

[State 8800, ブランクアニメ設定]; HA処理用ヘルパーは基本ブランクアニメ
type = ChangeAnim
trigger1 = 1
value = 20000
ignorehitpause = 1

[State 8800, アニメ変更]; HA処理用 食らい判定アニメ
type = ChangeAnim
;************************************************
; ※ 以下にHA処理を行いたいステートの条件を羅列する。
; ここの記述内容は -3ステートの「HAモーションに打撃無敵付加」の箇所で指定した条件と
; 同じ条件を羅列することになりますが、ヘルパーから本体への参照となる為
; Root, リダイレクトを追記する必要が有ります。
;************************************************
trigger1 = Root, StateNo = 1100 ; ステート1100をHA化
trigger1 = Root, AnimElemTime(7) <= 0 ; ステート1100の7マizenn をHA化
;************************************************
value = Root, Anim
Elem = Root, AnimElemNo(0)
ignorehitpause = 1

[State 8800, 被弾判定制御]; ブランクアニメ時は無敵状態
type = NotHitBy
trigger1 = Anim = 20000
value = SCA
ignorehitpause = 1

[State 8800, 被弾判定制御]; HA状態(Helperは打撃判定を担当する為、全ての投げを無効化)
type = NotHitBy
trigger1 = Anim != 20000
value = , AT
ignorehitpause = 1

[State 8800, HitPause時間初期化]
type = VarSet
trigger1 = Var(41) != 0
trigger1 = Anim = 20000
var(41) = 0
ignorehitpause = 1

143ケットシー:2015/05/16(土) 00:44:54
[State 8800, 前回分のRoot, AnimTime【Var(1)】の初期化]
type = Null
triggerall = Var(1) = 0 || Var(1) = -1
;************************************************
; ※ 以下にHA処理の終了フレームまでのAnimTime取得条件を羅列する。
; ここの記述内容は -3ステートの「HAモーション最終フレームから1F打撃無敵付加」の箇所で指定した条件と
; ほぼ同じ条件を羅列することになりますが、ヘルパーから本体への参照となる為
; Root, リダイレクトを追記する必要が有ります。
; また、取得したAnimTimeをヘルパー変数のVar(1)へ代入する為に「 Var(1) := XXXX 」という記述を
; 行う必要が有ります。
;************************************************
trigger1 = Root, StateNo = 1100 ; ステート1100をHA化
trigger1 = Root, AnimElemTime(7) <= 0 ; ステート1100の7マ以前をHA化
;************************************************
ignorehitpause = 1

[State 8800, ダメージ処理]
type = VarSet
trigger1 = 1
var(40) = GetHitVar(damage)
ignorehitpause = 1

; HA中に攻撃被弾時、もしもHitPauseがHAの残りモーションより長く続く場合
; HA終了直後にHitStop中の相手の攻撃を食らってしまう。
; (本体の変わりに打撃を食らうヘルパーが無敵状態になると共に本体の打撃無敵が解除されるため
; ヘルパー、本体の順にHAで耐えたはずの攻撃を2重に食らってしまう)
;
; その為、ヘルパーが受けた打撃のHitPause時間からHAの残り時間を引いた値が0以上の場合
; (HA終了後にも打撃のHitPauseが続く場合)
; HA終了後も継続するHitPauseの時間分、本体に打撃無敵を付ける。
; その為、ParentのVar(41)へHA終了後も継続するHitPauseの時間を代入する。
;(10フレーム多く打撃無敵を付加。飛び道具とか設置技のような持続が長い技を2重に食らうのは妥協します。)
; (普通の打撃であれば10F以上持続が有るような技は無いと思うので10Fに設定)
; (延長する無敵時間は各々好きなように調節してください)
[State 8800, HitPauseTime取得]
type = VarSet
trigger1 = GetHitVar(damage) != 0
trigger1 = GetHitVar(hitshaketime) + Var(1) > 0
var(41) = GetHitVar(hitshaketime) + Var(1) + 10
ignorehitpause = 1

[State 8800, 前回分のRoot, AnimTime【Var(1)】の取得]
type = Null
;************************************************
; ※ 以下にHA処理の終了フレームまでのAnimTime取得条件を羅列する。
; ここの記述内容は -3ステートの「HAモーション最終フレームから1F打撃無敵付加」の箇所で指定した条件と
; ほぼ同じ条件を羅列することになりますが、ヘルパーから本体への参照となる為
; Root, リダイレクトを追記する必要が有ります。
; また、取得したAnimTimeをヘルパー変数のVar(1)へ代入する為に「 Var(1) := XXXX 」という記述を
; 行う必要が有ります。
;
; ここの条件は、[State 8800, 前回分のRoot, AnimTime【Var(1)】の初期化]の変更部分をコピペすればおkです。
;
;************************************************
; 例1) ステート全体をHAにしたい場合
trigger1 = Root, StateNo = 1100 ; ステート1100をHA化
trigger1 = Root, AnimElemTime(7) <= 0 ; ステート1100の7マ以前をHA化
;************************************************
ignorehitpause = 1

[State 8800, デバッグ]
type = DisplayToClipboard
trigger1 = 1
text = "Var(40) = %d, Var(41) = %d, Var(1) = %d, Root, AnimTime = %d, AnimTime = %d"
params = Var(40), Var(41), Var(1), Root, AnimTime, AnimTime

[State 8800, 攻撃被弾上書き]
type = HitOverRide
trigger1 = 1
attr = SCA, AA, AT, AP
stateno = 8800
ignorehitpause = 1

144ケットシー:2015/05/16(土) 10:07:42
他のアーマー記述で試したところ同様の症状は出ず無事に機能しました。
もしかして
[Statedef 8800]; HA用ヘルパー
type = S←が原因だった?

145blank:2015/05/18(月) 11:59:29
type=SかCでmovetype=Hだと漏れなく塵が出る

146ケットシー:2015/05/20(水) 20:29:21
>type=SかCでmovetype=Hだと漏れなく塵が出る
 おおそうなんですか。しかしなんでこんな仕様に・・

147ソルト:2015/05/24(日) 08:31:56
連続攻撃で浮かせて、浮かせたあと落としたいのですが、いくらやってもわかりません。
(hitdefにそんな機能がない?)
それともステートを奪わなければいけないですかね?
すみませんが、これを分かる方がいましたらお願いします。

148blank:2015/05/24(日) 12:35:16
ヘルパー式飛び道具に補正をかけることってできますか?

149blank:2015/05/24(日) 13:18:36
>>147
言わんとしてることがよくわからない
どんな感じの挙動のこと?

>>148
出来ます
enemy,gethitar(hitcount)でもヒット数変数管理でも何でもOK

150ソルト:2015/05/24(日) 23:18:54
>>149
うーむ、朝書いたのと、国語力がない自分と合わさって、わけわからないこと書いていますね自分
やはり記述も一緒に投稿したほうがいいか…
あと、具体的には、その場で昇竜拳みたいなものをし、自分がある程度の高さまで行ったら、その場で回転
回転し終わったら、刀を降ったまんま降下して、着地する。その時の着地にも攻撃判定もある
その時に衝撃波も出て、それも攻撃判定がある
どんな挙動にしたいか、まず、昇竜拳のように相手を上に行かせたいのに、行かせてもらえない。
もしそれを行った場合、回転するとき、相手は空中に停止しながら喰らい、降下するときに相手も一緒に落とします
これが、自分が考えている挙動です。(あと長ったらしくてすみません)
次に記述です
;スカイクライム ジャンプ準備
[Statedef 1110]
type = S
movetype= A
physics = N
juggle = 0
velset = 0,0
anim = 1110
ctrl = 0
sprpriority = 2

[State 1110, 物理的なキャラの幅]
type = Width
trigger1 = AnimElemTime(1) >= 0 && AnimElemTime(4) < 0
value = 5,0




[State 1110, 音を鳴らす]
type = PlaySnd
trigger1 = AnimElem = 4
value = 0, 2

[State 1110, ヒット定義]
type = HitDef
trigger1 = AnimElem = 4
attr = S, SA
animtype = Med
damage = 57, 4
priority = 5
guardflag = MA
getpower = 30,5
givepower = 16,3
pausetime = 4,8
sparkxy = 0,-48
hitsound = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 15
ground.hittime = 18
ground.velocity = -3
guard.velocity = -6
air.velocity = -2,-2
airguard.velocity = -4,-4.5
p2facing = 1
forcestand = 1


[State 1110, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 1111

151ソルト:2015/05/24(日) 23:21:05
;スカイクライム 上昇
[Statedef 1111]
type = A
movetype= A
physics = N
juggle = 0
velset = 0,-14
anim = 1111
ctrl = 0
sprpriority = 2


[State 1111, 一撃目ヒット定義]
type = HitDef
trigger1 = AnimElem = 1
attr = S, SA
animtype = B
damage = 57, 4
priority = 5
guardflag = MA
getpower = 30,5
givepower = 16,3
pausetime = 4,8
sparkxy = 0,-48
hitsound = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 15
ground.hittime = 18
ground.velocity = 0
guard.velocity = -6
air.velocity = 0
airguard.velocity = -4,-4.5

[State 1111, 二撃目ヒット定義]
type = HitDef
trigger1 = AnimElem = 2
attr = S, SA
animtype = B
damage = 57, 4
priority = 5
guardflag = MA
getpower = 30,5
givepower = 16,3
pausetime = 4,8
sparkxy = 0,-48
hitsound = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 15
ground.hittime = 18
ground.velocity = -0.1,-5
guard.velocity = -6
air.velocity = -0.1,-5
airguard.velocity = -4,-4.5
fall = 1




[State 1111, ステート変更]
type = ChangeState
trigger1 = Pos Y = -140
value = 1112

152ソルト:2015/05/24(日) 23:24:27
;スカイクライム 下降
[Statedef 1112]
type = A
movetype= A
physics = N
juggle = 2
velset = 0,0
anim = 1112
ctrl = 0
sprpriority = 2

[State 1112, 降下加速]
type = velset
trigger1 = AnimElem >= 4
x = 0
y = 14

[State 1112, 一撃目ヒット定義]
type = HitDef
trigger1 = AnimElem = 2
trigger2 = AnimElem = 3
trigger3 = AnimElem = 4
trigger4 = AnimElem = 5
attr = S, SA
animtype = Med
damage = 57, 4
priority = 5
guardflag = MA
getpower = 30,5
givepower = 16,3
pausetime = 4,8
sparkxy = 0,-48
hitsound = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 15
ground.hittime = 18
ground.velocity = 0


[State 1112, 五撃目ヒット定義]
type = HitDef
trigger1 = AnimElem = 6
attr = S, SA
animtype = Med
damage = 57, 4
priority = 5
guardflag = MA
getpower = 26,4
givepower = 14,3
pausetime = 4,8
sparkxy = 0,-48
hitsound = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 15
ground.hittime = 18
ground.velocity = -3
air.velocity = 0,4
airguard.velocity = -4,3

[State 1112, 六撃目ヒット定義]
type = HitDef
trigger1 = AnimElem = 7
attr = S, SA
animtype = Med
damage = 57, 4
priority = 5
guardflag = MA
getpower = 26,4
givepower = 14,3
pausetime = 4,8
sparkxy = 0,-48
hitsound = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 15
ground.hittime = 18
ground.velocity = -3
air.velocity = -2,-2
airguard.velocity = -4,-4.5

153ソルト:2015/05/24(日) 23:26:24
続き
[State 1112, 七撃目ヒット定義]
type = HitDef
trigger1 = AnimElem = 8
attr = S, SA
animtype = Med
damage = 57, 4
priority = 5
guardflag = MA
getpower = 30,5
givepower = 16,3
pausetime = 4,8
sparkxy = 0,-48
hitsound = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 15
ground.hittime = 18
ground.velocity = -3
air.velocity = -2,-2
airguard.velocity = -4,-4.5


[State 1112, ステート変更]
type = ChangeState
trigger1 = Pos Y = 0 && Vel Y >= 0
value = 1113

;---------------------------------------------------------------------------------
;着地

[Statedef 1113]
type = S
movetype= A
physics = S
anim = 1113
sprpriority = 1
velset = 0,0 ;ここで速度をリセットしている


[State 1113, 音を鳴らす];着地音
type = PlaySnd
trigger1 = Time = 0
value = 40, 0

[State 1113, 衝撃波]
type = Helper
trigger1 = AnimElem = 1
helpertype = normal
name = "syougeki"
ID = 1114
pos = 30, 0
postype = p1
facing = 1
stateno = 1114
keyctrl = 0
ownpal = 1
SuperMoveTime = 999999999 ;★時間停止中も動かすか1
PauseMoveTime = 999999999 ;★時間停止中も動かすか2
size.xscale = 0.5
size.yscale = 0.5
size.ground.back = 0
size.ground.front = 0
size.air.back = 0
size.air.front = 0
size.height = 0
size.proj.doscale = 0
size.head.pos = 0, 0
size.mid.pos = 0, 0
size.shadowoffset = 0


[State 1113, 移動速度] ;Y方向の速度を0に
type = VelSet
trigger1 = time = 0
y = 0

[State 1113, 軸位置] ;地上に戻す
type = PosSet
trigger1 = time = 0
y = 0

[State 1113, 軸位置移動]
type = PosAdd
trigger1 = AnimElem = 4
x = 15

[State 1113, 軸位置移動]
type = PosAdd
trigger1 = AnimElem = 5
x = 10

[State 1113, 軸位置移動]
type = PosAdd
trigger1 = AnimElem = 6
x = 20

154ソルト:2015/05/24(日) 23:27:41
続き
[State 1113, 1撃目ヒット定義]
type = HitDef
trigger1 = AnimElem = 1
attr = S, SA
animtype = hard
damage = 90, 4
priority = 5
guardflag = HA
pausetime = 4,7
sparkxy = -10,-60
hitsound = 5,4
guardsound = 6,0
ground.type = high
ground.slidetime = 12
ground.hittime = 15
ground.velocity = -4,-3.5

[State 1113, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

[Statedef 1114];衝撃波
type = S
movetype= A
physics = N
anim = 1114
sprpriority = 1
velset = 5,0

[State 1114,影消し]
Type = AssertSpecial
Trigger1 = 1
flag = noshadow


[State 1114, 1撃目ヒット定義]
type = HitDef
trigger1 = AnimElem = 4
trigger2 = AnimElem = 5
attr = S, SA
animtype = hard
damage = 90, 4
priority = 5
guardflag = HA
pausetime = 4,7
sparkxy = -10,-60
hitsound = 5,4
guardsound = 6,0
ground.type = high
ground.slidetime = 12
ground.hittime = 15
ground.velocity = -4,-3.5


[State 1114,消滅条件]
type = destroyself
trigger1 = animtime = 0
終わり

155blank:2015/05/25(月) 00:41:49
一つ目のHitDefの
ground.velocity = -3 を
ground.velocity = -3,-XX XXは吹っ飛びの強さ
にすりゃ飛ぶんでないの。
あとはFall=1入れるなりで吹っ飛ばしたアニメにするとか

156blank:2015/05/25(月) 03:34:57
>>150
よく分からない内はHitDefの各オプションを省略しない方がいいと思う
仮に省略した場合に参照する数値で問題ない場合も、その数値を実際に入れておく
理由は色々あるけど大きいのは大体こんな感じ

・省略した時に、別のオプションの数値を参照する物、0になる物、1になる物、などが混在している
特に速度(〜Velocity、〜Veloff)や時間(〜Time)は省略時に参照する数値が数珠繋がりだったりするので、
予想外の挙動をした時にどこの数値が原因か分かりにくい
>>118で指摘されてるのもこれ

・GetPowerとGivePowerは省略すると相手に与えるダメージ量を基準に算出されるからバランスが極端になりがち
あとヘルパーのHitDefはGetPowerを0にしておかないと、特定の状況で相手側のゲージが増える可能性がある

それと、いくつものレスを使って記述を書かれても非常に見づらい
1つ2つのレスで収まらない場合はその記述だけを書いたテキストファイルをどこかのアップローダーにアップしてurlを貼ったりはできない?

157ソルト:2015/05/25(月) 15:31:37
>>156
確かに、オプションは設定したほうがいいみたいですね(よっぽどいらない限り)
後、そのおかげで、なんとか浮かすことができました。
ありがとうございます! 

>>非常に見ずらい記述
すみません、実は過去レスを見たらこのような形式ばっかりだったので
それにならって、真似してみたのです。
今後からアップローダーにテキストファイルをアップしてから投稿します。
ご迷惑かけてすみませんでした。

158blank:2015/05/25(月) 23:15:49
>>157
改めて見返すと投げやりな書き方になっててこちらも申し訳ない
あと、解決したのは>>155さんのおかげだと思う

159blank:2015/06/05(金) 00:31:48
以前こちらでヘルパーにも適応されるコンボ補正に関して質問したものですが、
まだ使えるレベルの記述が作成できません。どういった記述にすればいいか教えていただけませんか?

160ケットシー:2015/06/05(金) 23:43:09
>159
まず本体のコンボ補正が-2に

[State -2, damage_reset];攻撃が途切れたら値をリセット
type = VarSet
trigger1 = p2movetype!= H
fvar(0) = 1



[State -2, VarSet]
type = VarSet
trigger1 = stateno = 810
trigger1 = time = 1
fvar(0) = FVar(0) * 0.50
Persistent = 0

[State -2, VarSet];当たったら
type = VarSet
triggerall = MoveHit = 1
trigger1 = stateno = 1010
fvar(0) = FVar(0) * 0.60
Persistent = 0
 で本体の技のhitdefに
damage = Floor(72*fvar(0)), 0;たとえばstate1010の攻撃が当たるとダメージが72*0.6の小数点以下切捨てになる
helperのほうは
damage = Floor(20*root,fvar(0)), 3;「root,〜〜」で本体の〜〜を参照するようになる。この場合は本体のコンボ補正を参照する。

161blank:2015/06/19(金) 13:21:42
>>160
返信が遅れてしまい申し訳ありません。

ヘルパーが1ヒット目の場合補正が適用されないのですが、
適用される方法はありますでしょうか?

162blank:2015/06/22(月) 21:16:23
[helperの攻撃が当たったとき]にダメージの補正値が変わらないってことです?
もしそうなら
helper(123),movehit=1
が[id123のhelperの攻撃が当たったとき]っていう条件なので
補正値更新のステコンに入れるといいよ。
使う場合は事前にnumhelperで存在を調べないと
警告がすごい勢いで流れるので注意してください

163名無しさん:2015/08/08(土) 21:18:11
これがMUGEN関連ツールですが、使えそうですか?
■Fighter Factory 3
ttp://yurusanae.blog98.fc2.com/blog-category-38.html
■SffAirEditor
ttp://www.geocities.jp/sffeditor/

164豆大福:2015/10/13(火) 14:24:11
cnsについて困ったことがあるのでここで質問をさせていただきます。とま氏の魔理沙を
ベースに霊撃ゲージを搭載してみましたがどうやらゲージが床にあり、かつプレイヤーキャラ
の足と接触している状態になってしまっています。
おそらく、魔理沙の記述をコピペしたときのゲージの座標設置の記述が関係していると思うのですが・・・
どなたか知恵をお貸しいただけるとうれしいです。Axfcにアップしたんで、mugenで動作確認していただけたら、ゲージの位置が把握できると思います。

(DLPass = hijirinで,ファイルの番号は3548989番、ファイル名は3548989.zipです。
ファイルのサイズは2〜4MBです。行き方はAxfcのトップ→左メニューのファイル一覧→旧システム版一覧の「Helium」クリック→ファイルの一覧に私のアップしたファイルがあるので
3548989.zipをクリックすると、DL画面へいけます。)

165blank:2015/10/18(日) 17:18:36
一度写す前のとま氏のcnsを見直してみてはいかがでしょうか
そのまま写すと噛み合わないから一度分析したほうがいいです

だめなら総合チャットで相談するのも手かもしれません

166ソルト:2015/10/23(金) 23:53:47
お久しぶりです。
さっそく本題に入りますがscreenboundについてなのですが、画面を固定するために某ページ
にある、記述を使っているのですが、何故か機能しません。
(そのページはGoogleで「mugen screenbound ヘルパー」を検索して4番目のQ.ステージの端ってどう認識したら良いんだぜ?のところ)
あと、そのページの下あたりの
facing*(helper(30000+(facing=-1)*10),pos x-pos x);前方端
-facing*(helper(30000+(facing=1)*10),pos x-pos x);後方端
がよくわからないのですが、何処に入れたらいいのでしょうか?

167blank:2015/10/28(水) 08:00:19
距離検出のトリガーだし、BackEdgeDistみたいな感じで使えば良いんじゃない
trigger1 = 【前方端】 < 30;正面ステージ端までの距離が30未満のとき
みたいに。

168:2016/01/14(木) 16:55:25
gimp2で素材を作っているんですが、
背景色が滲んでいるせいか、
SFFファイルに登録するときに背景色に近い別の色が残ってしまうんですが、どうしたいいでしょうか?

169豆大福:2016/02/11(木) 07:39:33
EDGEを使っている方に質問です。
アニメーションフレームの設定から「毎回位置とサイズを指定」を選んで、編集範囲で設定したサイズと位置に合わせて選択すると
体の位置がところどころ違った位置にあってしまいます。

毎回、位置とサイズを手動で指定するとそのコマだけ、フレームの共通固定位置とは違った位置になり、右もしくは左、上もしくは下に行ったりします。
なので画像自体動かしてもまた違う位置に行ってしまい、時間がかかってしまうので非常に面倒です。
フレームの共通固定位置に合わせてもバラバラになってしまいます。どうすればいいですか?

170blank:2016/02/12(金) 12:59:52
>>169
「毎回〜」のやつで位置が変わるのは選択が若干ずれてるからでない?
「あらかじめ〜」でサイズ指定する方がいいよ。

171blank:2016/02/14(日) 18:34:55
>>169
いまいち、どういう状態になってて困ってるのか上手く読み取れてないのですが、
とりあえず、指定する範囲の大きさは統一したほうがいいです。
ひょっとして画像のサイズに合わせて取り込み範囲を指定しているのでは・・・?
取り込んだ範囲を左上に詰めて表示されるので、それではズレてしまいます。
「取り込み範囲を合わせる」のではなく、「決まった取り込み範囲にドットを合わせる」ほうが楽です。

オオバコさんのサイト→ ttp://www.geocities.jp/zassoh2/index.htm
その悩みを解決できるかどうかは置いといて、とりあえずEDGEを使っているならばこのサイトのアニメ作成講座は非常に参考になると思われます。
(オオバコさん勝手に乗っけてゴメンなさい)

あと、問題が解決した、しないに関わらず報告はしたほうがよいかと(前にも質問をしっぱなしな書き込みがあったので)
解決済みなのかまだ回答が必要なのか判断がつき辛いとレスもつきにくいでしょうし。前者ならよくても後者なら答えが得られませんからね。

172豆大福:2016/02/18(木) 16:55:06
>170さん,171さん
返信遅れてしまい、申し訳ないです。
画像のサイズに合わせて指定した後、プロパティで画像を移動させて調整したにしても中途半端な解決になってしまったなぁと思い、
報告しにくかったんですね。

とりあえずドットのサイズが大きいので、「決まった取り込み範囲にドットを合わせる」というのはありがたいですが
ドットのサイズに合わせて取り込み範囲を大きくしたいと思います。
オオバコさんのサイトはこれから難しいモーション作るときに参考になりそうなのでちょくちょく拝見させていただきます。

以前の質問しっぱなしな件に関しては、自分に至らなかった点があったので、以後気をつけようと思います。
アドバイスありがとうございました。

173スマッチュウ:2016/03/29(火) 10:29:25
今、高頭身早苗さんのことで悩んでいます。
これまで描いたドット絵のほとんどのモーションが黄昏ドットのモーションの流用なのですが、だったら高頭身にする意味などないんじゃないかと(はじめから黄昏ドットを使えばいいんじゃないかと)思っています。
でも、黄昏ドットにないモーションは僕の今の技術では描くのは難しそうです。 どうすれば黄昏ドットにない個性をつけられるでしょうか?

174blank:2016/04/01(金) 19:33:02
>> 173
別に黄昏さんに拘らなくても良いんではない?
kofやsfみたいな所から動作を持ってくるとか。

175スマッチュウ:2016/04/04(月) 15:59:37
>>174
いえ、KOFやSFには早苗さんのようなロングスカートをはいたキャラがいないので、現状黄昏ドットを使わないとスカートの影の付け方がわからないのです。
でも、今のドット絵もうまく影付けできていない気がするのですが・・・
やっぱりスカートの影のつけ方もわからない僕がMUGEN用のドット絵を描くのは無謀だったのでしょうか・・・?

176blank:2016/04/05(火) 01:33:57
逆に考えるんだ
「影なんて付けなくてもいいさ」と考えるんだ

177スマッチュウ:2016/04/05(火) 10:07:47
>>176
影なんて付けなくてもいい・・・?
どういうことでしょうか・・・?

178blank:2016/04/05(火) 23:53:02
メルブラ、わく7、ヴァンパイア辺りにロンスカキャラがいるかな。
電撃にも居たような気がするけど、気のせいかもしれない。
探せばもっと居ると思うよ。

影の付け方〜の話だけど、無謀ではないよ。
分からないなりにやってると、そのうちにぼんやり出来てくるので。

上達に対して明確な方法は無いけど、方法の1つとして他人のあら探しをするってのがあります。
(イメージは悪いですが自分の中で思う分には自由ですし。)
「分からんけど、たぶんこの辺が悪い」から「ここがこうだから悪い」になった辺りで
自分の絵に対しても間違い探しがある程度出来るようになります。

うまい人の絵をしっかり見れると、こんなことしなくてもいいですが、
上手な絵をどんなシワが入って、どこが影でっていう見方するのは結構難しいです。
全てが正しく見えるし、いろんな部分に目移りしますからねえ。

179null:null
null

180null:null
null

181null:null
null

182livend:2016/12/13(火) 14:28:58
1ヶ月近く色々勉強して試行錯誤しても思うようにいかないのでここで質問させて下さい
社咲氏のサイトに載ってる伸縮型の特殊ゲージを搭載しようとしているのですが、どうにも上手くいきません・・・orz
画像表示までは出来ているのですが、変数の増減にゲージが一切反応してくれません
試しに丸々コピペしてみても反応無しなのでお手上げです・・・どなたかご助力の程お願い致します
以下記述ですがおかしい箇所等ご指摘お願い致します
[Statedef 10000]
anim = 9999

[State 10000];ゲージ
type = Explod
trigger1 = numexplod(10000) = 0
anim = 10000
id = 10
pos = ifelse(teamside=1,15,220),220
postype = left
facing = ifelse(teamside=1,1,-1)
bindtime = -1
removetime = -1
scale = 0.6,0.3
ontop = 1

[State 10000];ゲージの外枠
type = Explod
trigger1 = numexplod(10001) = 0
anim = 10001
id = 11
pos = ifelse(teamside=1,15,220),220
postype = left
facing = ifelse(teamside=1,1,-1)
bindtime = -1
removetime = -1
scale = 0.6,0.3

[State 10000]
type = ModifyExplod
trigger1 = numexplod(10000) = 1
Trigger2 = Time >= 0
scale = var(1)/300.0,1
id = 10
anim = 10000

[State -2]
type = helper
trigger1 = Numhelper(10000) = 0
stateno = 10000
ID = 10
pos = 0,0
postype = left
helpertype = normal
name = "gauge"
keyctrl = 0
ownpal = 1

[state -2]
type = VarSet
trigger1 = var(1) < 1
var(1) = 0

[state -2]
type = VarSet
trigger1 = var(1) > 300
var(1) = 300

183blank:2016/12/14(水) 05:24:06
>>182
scale = var(1)/300.0,1

scale = root,var(1)/300.0,1
にしてみてください

184livend:2016/12/14(水) 19:47:23
>>183
それでも上手く画像が伸縮されませんでした
cmdファイルみたいな記述の順番とか関係してくるのでしょうか?
一応explodの画像が2枚以上表示されてるとかはないのは確認済みなのでどこか別のところが悪さしているのでしょうか?
var(1)の変数が他と被ってたりとかもないですし、伸縮はしないですが変数自体は想定通りに動作してくれています
一応helper式に変えてみてparentに変えてみたりとか自分がわかる範囲でやってはみたんですがそれでもだめで・・・orz
でもontopがhelper式は出来ないみたいなのでどうにかしてexplod式でやりたいです、どうかお知恵をお貸し下さい

185183:2016/12/15(木) 04:44:32
>>184
見落としてましたが、
[State -2]
type = helper
trigger1 = Numhelper(10000) = 0
stateno = 10000
ID = 10
以上の記述だとこのヘルパーは Numhelper(10) なので、
他に Numhelper(10000) を射出する記述がなければ永遠にトリガーを満たしたままです。
これを「ID = 10000」にしても解決しない場合は、もう一度 var(1) を疑ってみてください。
こちらで>>182のゲージ表示と伸縮部分の記述を自キャラに搭載してみたところ問題なく伸縮しましたので。

186183:2016/12/15(木) 04:53:12
すいません、>>185の追記です。
helper だけじゃなく Explod も ID と numexplod() が一致してないので一致させてください。

187livend:2016/12/15(木) 11:04:46
>>183 >>184
ご指摘頂いた通りにしてみたところやはり駄目でした
ファイターファクトリーを使用しているのですが、その機能の変数管理で見てみましたがvar(1)は使用していませんでした
IDをnumexplodと同じにしてみましたがゲージの最大状態の画像が表示され続けるだけでした
どこが悪さをしてるか色々試行錯誤してみたところ、どうやらnumexplod(10000)が存在する時をトリガーにしたvar(1)を300にするという命令が実行されてない事に気付いたんですが
ゲージの最大状態の画像は表示されているのでnumexplod(10000)は実行されているような気もしています
でもnumexplod(10000) = 1をmodifyexplodもトリガーにしているので、伸縮しないのもnumexplod(10000)が存在していないからという事なのでしょうか?
一応var(1)の使用に不安を覚えてvar(1)をvar(30)に変えています
以下現状の記述ですが、どうにも私にはお手上げです
[Statedef 10000]
anim = 9999

[State 10000];ゲージ
type = Explod
trigger1 = numexplod(10000) = 0
anim = 10000
id = 10000
pos = ifelse(teamside=1,15,220),220
postype = left
facing = ifelse(teamside=1,1,-1)
bindtime = -1
removetime = -1
scale = 0.6,0.3
ontop = 1

[statedef -2]
[State 10000]
type = ModifyExplod
trigger1 = numexplod(10000) = 1
scale = root,var(30)/300.0,1
id = 10000
anim = 10000

[State -2]
type = helper
trigger1 = Numhelper(10000) = 0
stateno = 10000
ID = 10000
pos = 0,0
postype = left
helpertype = normal
name = "gauge"
keyctrl = 0
ownpal = 1

[state -2]
type = VarSet
trigger1 = var(30) < 1
var(30) = 0

[state -2]
type = VarSet
trigger1 = var(30) > 300
var(30) = 300

188183:2016/12/15(木) 15:54:05
>>187
>>182と違って
[statedef -2]
[State 10000]
type = ModifyExplod
となっていますが、これはファイルの記述そのままでしょうか?
もしそうであれば、
[State 10000]
type = ModifyExplod
(省略)

[statedef -2]
として、 [Statedef 10000] に含めるようにしてください。
「helpertype = normal」であるヘルパーは -2 と -3 のステートを読み込みません。
(余談ですが、「keyctrl = 0」の場合は -1 のステートを読み込みません)

189livend:2016/12/15(木) 18:57:49
>>188
おぉぉぉぉー!
出来ましたー!イメージ通りの完璧な動きです、本当に有難う御座いました!
helpertype = normalは-2-3ステートを読み込めないのですね、これで他に躓いていた部分も進むかもしれません・・・
本当に助かりました!また独力ではこれ以上進めないと判断した場合此方で質問させて頂きます、本当に有難う御座いました!

190yakan2:2017/08/18(金) 22:26:42
windows10になってwindows_photo_viewerでgifアニメーションをコマ送りできなくなりました。
何か代用できそうな良いソフトはありますか?

191名前が決まらないフレンズ:2017/08/23(水) 22:14:12
>>190 yakan2さんへ
遅レスですが自分は7GIFというフリーソフトを使ってますよ。
ドット絵が多少にじんで見えるので細部を観察するのには不向きですが、コマ送り・再生・拡大などの基本的な機能はあります。
後はMUGENツールのSAEでもAirファイルを矢印キーでコマ送りすることも出来ますね。(登録の手間が掛かりますが)

参考になれば幸いです

192とある作者:2017/08/26(土) 00:35:04
初めまして、作成で色々調べてたらここにたどり着きました
一つ悩んでいることがあるのですが
飛び道具(波動拳の様なオーソドックスな)を2フレームごとにHITDEFを出し連続ヒットさせます
そして3HITor3回ガードされると消滅というようにしています

3ヒットした時に消滅させるということはできたのですが
3回「ガード」された場合にも消滅ということができないかと悩んでおります
現状、1回ガードされた時点で消滅させ妥協しています
Varも使おうとしましたが連続HITでVaraddが機能しませんでした
以下、ステート(HITDEFは必要な部分のみ記述)
[Statedef 2013]
type = A
movetype = A
ctrl = 0
physics = N
Anim = 3070

[State 2010]
type = HitDef
trigger1 = time%2 = 0
attr = S, SP
damage = 15, 10

[State 2300]
Type = Velset
Trigger1 = time = 0
x = 5

[State 2110]
Type = DestroySelf
Trigger1 = HitCount = 3
Trigger2 = FrontEdgeBodyDist < -20
Trigger3 = MoveGuarded

193島村鰐:2017/09/06(水) 12:08:03
これはhelperにhitdefを着けて飛ばすタイプの飛び道具ですかね

それであればhitdefの発生triggerを普通にtime > 0とかにしておき
2ヒットめ、3ヒットめを別ステートにしてmovehitとmoveguardedを条件に順次ステートを移動していくことで多段ヒットさせるのでどうでしょう
3ヒットめにあたるステートのみ同条件でdestroyself用のステートに飛ばすようにすれば3ヒットで消えますし
ステートをたくさん追加すればもっとたくさんヒットさせることも可能です

194とある作者:2017/09/14(木) 22:27:56
>島村鰐様
確認と返信が遅れましたが、やってみたところ良い感じに動いてくれました
この発想は色々応用が効きそうですね
ありがとうございます

195yakan2:2018/02/07(水) 20:43:06
>>名前が決まらないフレンズさん
レス遅くなってしまい申し訳ありません、ありがとうございます。7GIF知らなかったので早速おとしてみます!

196豆大福:2018/11/04(日) 21:12:46
すみません。
ここに書き込むのは久しぶりです。
一つ直らないバグがあって、試行錯誤しても起きるのでここに来ました。どうか知恵をお貸しください。
試合中にヘルパーが消えずにそのまま残る現象が稀に起きます。
しかも、アニメは進まずに止まっています。
airを確認しましたが、ヘルパーの全フレームの速度は1以上にしています。以下、バグの該当のヘルパー記述です。


[Statedef 1200]
type = A
movetype= A
physics = N
velset = 0,0
anim = 1200
sprpriority = 2

[State 1030, 1]
type = NotHitBy
trigger1 = Time = 0
value = , AT;全ての投げに対し無効化
time = -1

[State 920, NoHitBy]
type = NotHitBy
trigger1 = Time = 0
value = SAC, NT, ST, HT ,NA, SA, HA ,NP, SP, HP
time = -1

[State 200 , 2]
type = HitDef
trigger1 = Time >= 5
trigger1 = Time%3 = 0
attr = A, SP
damage = 7,2
animtype = medium
getpower = 50,20
givepower = 15,2
guardflag = LHA
hitflag = MAF
priority = 4, Hit
pausetime = 1,6
numhits = 1
pos = -10, -20
hitsound = s1,5
guardsound = s1,11
sparkno = s3000
sparkxy = -10, 2
ground.type = low
ground.slidetime = 15
ground.hittime = 20
ground.velocity = -4
airguard.velocity = -2.5,-0.5
air.velocity = -3.5,-1.5
ignorehitpause = 1


[State 1200, 3]
type = Destroyself
trigger1 = AnimTime = 0

197Yes@バーチャルMUGENキャラ制作者:2018/11/08(木) 23:38:25
ヘルパーが消えずにそのまま残ったときの
ヘルパーのStatedef が何番か分かりますか?

198miyassa:2018/12/16(日) 17:15:39
>>196

デバッグを知らない前提で言うと、1対1の状態で
デバッグキー ctrlを押しながらdボタンを推せば、左下に小さい文字群が出てくると思います
1p側の名前があって、stateno やtimeなどそのプレイヤーのデータが出てくるはず
それをもう一回押せば2p側の、その後に押せば誰もヘルパーを出してなければ無表示に戻る
ヘルパーが固まった時にそれをやれば固まってるヘルパーの名前Razer1が出てくるはず
yes氏の言っているステートの番号も分かると思います

sffファイルでレーザーヘルパーのアニメ見たんですけど、どれも当たり判定ないので無敵は要らないはず
誰と対戦して、どの状況の時か分からないので、ヘルパーが何かに当身されたくらいしか思いつかない
とりあえず再度固まった状態で、デバッグして確認でしょうか

199miyassa:2018/12/16(日) 22:33:26
さっき気づいたけど、1250から1251のヘルパーが消えてない
無敵にしたカンフーマンと適当に遊んでて分かった
ステート1200のヘルパーじゃなくこれのことじゃないんですか

Destroyselfの条件がmovecontactだけはまずいですよ
無敵や移動でよけられる等、当たらなかった場合どうするかの記述がないので消えずに残ります
2つ目の条件を作って、 !movecontactの時に、時間経過で消すか、
FrontEdgeDist <= -30 (画面の向こう側30以上進んだ時)という条件を入れるなどしないと

もう直してる最中かもしれませんが

200豆大福:2019/02/02(土) 18:57:00
>197
1200番です。

>198〜199
11フレーム目で止まります。NotHitByの記述はコメントアウトしました。(1250から1251のヘルパーの記述も!movecontactの条件を追加しました。)
今のところ、原因はわかりません。ただ、Timeが11になった時、止まることがあるのは確かです。
対戦相手は1pと同じにしています。(2p側が立ち状態の時、1p側がしゃがみ状態で1200番のヘルパーを出した時です。)

201豆大福:2019/02/02(土) 19:14:49
>200の続きです。
レーザーの攻撃判定を修正したら、直りました。
大変お騒がせして申し訳ありませんでした。

202blank:2019/02/07(木) 19:13:23
相手のヘルパーのステートを奪ってしまったときの処理はどうするのが良いのでしょうか
今はすぐにdestroyselfを読ませていますがこれもあまり良くないとも聞きました

皆さんの意見を聞かせて下さい
お願いします

203blank:2019/02/08(金) 00:36:26
ground.type = None の攻撃の感知が実装できず困っています
助けてください

以下、試したことと分かったこと
・gethitvar(ground.type)
- ヒット時点で反応し、 0 を返す
-> 開始後の最初の攻撃がGround.type=Noneの場合、対応できない
- 任意のタイミングでリセットできないので不便
-> Ground.type = None の攻撃が連続する場合、対応できない
・gethitvar(hitshaketime)
- ヒット後1F遅れて反応する
-> p2stateno付きの場合は既にステート移動済み
・gethitvar(damage)
- そもそもdamageは発生しないため反応しない
・movetype = I && stateno != var(X)
- var(X)は保存してある自分のStateNo (常に個別ステートの最後で代入)
- MUGENの内部処理によるステート移動(キー入力による前進など)との区別が困難

204blank:2019/02/17(日) 15:38:29
ステ抜け組み込みたいんだけどMoveType=H式のテンプレってどこかにない?
もしくは分かりやすい記述のキャラを教えてほしいです

205blank:2019/02/18(月) 11:33:00
>>204
MoveType=H式抜けは本当にMoveType=Hになったらステ抜けを実行するだけだから
テンプレなんてないんじゃないかな
一応テンプレ
----------------------------------------------------
[Statedef -2]に以下の記述を入れておけば動く

[State -2]
Type = SelfState
Trigger1 = !ishelper
Trigger1 = MoveType = H
Value = 0 + 11 * (StateType=C) + 50 * (StateType=A)
Ctrl = 1
IgnoreHitPause = 1

206blank:2019/03/10(日) 17:37:55
記述について質問させてください

改変前
type = varset
trigger1 = Enemy(0),movetype != A
var(0) = enemy,power

1.相手のパワーゲージが同じ数値で一定時間経過するたびにvar(1)に1を足す
type = varadd
trigger1 = (var(0) - Enemy,power) = 0
var(1) = 1

2.相手がゲージ技を使用したステートをvar(2)(3)(4)に記憶する
type = varset
trigger1 = var(2) = 0
trigger1 = (var(0) > Enemy,power) && enemy,movetype = A
var(2) = enemy,stateno

3.
triggerall = var(2)!= 0
trigger1 = (var(0) > Enemy,power) && enemy,movetype = A
var(3) = enemy,stateno

1に一定時間経過するたびに を追加したい

2が攻撃中にステートを移動されると違うステートを記憶してしまうのを修正したい

3の記述だとvar(2)が記憶された後すぐにvar(3)が記憶されてしまうのを修正したい


うまく説明できていなければ申し訳ありません
改善案や意見をよろしくお願いします

207blank:2019/03/10(日) 22:37:12
<<206
察するに相手のゲージ技を記憶して、AIにそのステート警戒させたりしたいのかな?

①一定時間経過するたびに を追加したい
 →例えば60Fに1回なら、単純にtriggerX = (Gametime%60=0)入れてみるとか?

②2が攻撃中にステートを移動されると違うステートを記憶してしまうのを修正したい
 →「ステートを移動されると」じゃなくて「movetype!=Aになると」が正しい希ガス
   trigger1 = var(2) = 0 があるなら大丈夫でない?

③var(2)が記憶された後すぐにvar(3)が記憶されてしまうのを修正したい
 → triggerall = var(2)!= 0じゃなくて、triggerall = enemy,stateno != var(2) にしてみては
   これでvar(2)と同じ数値は入らないはず

試したわけじゃないけど参考になれば
細かいとこ言うとenemyリダイレクトそのままだとタッグで誤爆するかも

208blank:2019/03/10(日) 23:24:59
<<207
返信ありがとうございます

1.gametimeやtimeを使ってみましたが思うような挙動になりませんでした
敵ゲージが増えていてもvar(0)に加算されたり、時間を超えたら加算されっぱなしになったりと

[敵パワーゲージが1000の状態]が5秒経過したらvar(0) + 1で時間リセット
また[敵パワーゲージが1000の状態]が5秒経過したらvar(0) + 1で時間リセット
[敵パワーゲージが1000の状態]から「敵パワーゲージが1005の状態」になったら時間リセット
…みたいなのが理想なのですが

2.stateno = 2000でゲージ消費して開始。その後 stateno = 2001で攻撃判定を出すタイプの技だと
記録されるのは2001になってしまうのでこれを2000にしたいのです

3.例えば相手が「1回目のstateno = 2000」でゲージを使用した時
var(2)にはstateno = 2000が記録されてvar(2) != 0になります
その後var(3)を書き込むステコンのtriggerall = var(2) != 0 が達成して
var(3)に「1回目のstetano = 2000」が記録されてしまうので
var(3)には「2回目のstaetno = ????」を記録するようにしたいのです

var(2)に記録した後var(3)var(4)にはしばらく記録しないようにするにはどうしたらいいでしょうか

enemyリダイレクト。ご指摘ありがとうございます 変えてみます

209blank:2019/03/11(月) 00:05:25
>>208
207です。ちょっと弄ってみたけどこんな感じでどうでしょ
時間リセットどうこうはともかく、とりあえずアフロン氏アッシュのゲージ技を4つ覚えることはできた
var(2)〜var(5)に順に相手がゲージ払ったステートを格納する仕組み

[Statedef -2]

;1.相手のパワーゲージが同じ数値で一定時間経過するたびにvar(1)に1を足す
[State -2]
type = varadd
trigger1 = gametime%60 = 0
trigger1 = var(0) = Enemy,power
var(1) = 1

;相手のゲージが増えたらvar(1)をリセット
[State -2]
type = varset
trigger1 = Enemy,power != var(0)
var(1) = 0

;2.相手がゲージ技を使用したステートをvar(2)(3)(4)に記憶する
[State -2]
type = varset
trigger1 = var(2) = 0
trigger1 = (var(0) > Enemy,power) && enemy,movetype = A
var(2) = enemy,stateno

;3に入れるよ
[State -2]
type = varset
triggerall = var(2) > 0
triggerall = enemy,stateno != var(2);どれとも合致しない
triggerall = var(3) = 0
trigger1 = (var(0) > Enemy,power) && enemy,movetype = A
var(3) = enemy,stateno

;4に入れるよ
[State -2]
type = varset
triggerall = var(3) > 0
triggerall = enemy,stateno != var(2)
triggerall = enemy,stateno != var(3);どれとも合致しない
triggerall = var(4) = 0
trigger1 = (var(0) > Enemy,power) && enemy,movetype = A
var(4) = enemy,stateno

;5に入れるよ
[State -2]
type = varset
triggerall = var(4) > 0
triggerall = enemy,stateno != var(2)
triggerall = enemy,stateno != var(3)
triggerall = enemy,stateno != var(4);どれとも合致しない
triggerall = var(5) = 0
trigger1 = (var(0) > Enemy,power) && enemy,movetype = A
var(5) = enemy,stateno

;改変前
[State -2]
type = varset
trigger1 = Enemy,movetype != A
var(0) = enemy,power

↓上記のを搭載したkfm。デバッグ表示で見てね
ttp://firestorage.jp/download/33dbeb6c2ee645dd050fff7c909274764686e3e5

世の中にはmovetype=Aじゃないゲージ技やらいろいろあるから、その辺はまたカバーするとか諦めるとかになるけどね!

210blank:2019/03/11(月) 00:12:02
訂正
×相手のゲージが増えたらvar(1)をリセット
〇相手のゲージが増減したらvar(1)をリセット

×;2.相手がゲージ技を使用したステートをvar(2)(3)(4)に記憶する
〇;2.相手がゲージ技を使用したステートをvar(2)(3)(4)(5)に記憶していく

あと";改変前"て文章は関係ないです

211blank:2019/03/12(火) 15:41:41
<< 209
色々親切にしてくださりありがとうございます
AIに組み込む為のものではないので同じステートも記憶できるようにしたかったのです
いくつか改善してみました。少し変ですが一応想定通りな動きしています

[State -2];ゲージ監視
type = varset
trigger1 = Enemy,movetype != A
V = 0
value = Enemy,power

1.
[State -2];ゲージ変動無し
type = varset
trigger1 = var(0) = enemy,power
trigger1 = enemy,time = 10 ←これが必要でした
var(10) = 1
[State -2];変動した
type = varset
trigger1 = var(0) != enemy,power
var(10) = 0
[State -2];変動せずに一定時間経過で追加
type = varadd
trigger1 = var(10) = 1 ;上をそのまま入れても機能しませんでした
trigger1 = gametime%60 = 0
var(1) = 1

2.
[State -2];敵がゲージ技を記憶
type = varset
trigger1 = var(2) = 0
trigger1 = var(0) > enemy,power
trigger1 = enemy,movetype = A
var(2) = enemy,stateno

[State -2];ゲージ技が終わったらこちらに移す
type = varadd
trigger1 = var(2) != 0
trigger1 = enemy,movetype != A
trigger1 = time = 0
var(3) = var(2)

[State -2];移し終わったらリセット
type = varset
trigger1 = var(2) != 0 && time = 0
trigger1 = enemy,movetype != A
var(2) = 0

[State -2];敵がゲージ技を2回以上使用した
type = varset
trigger1 = var(2) != 0 && var(3) != 0 ←1回目では達成しない
var(4) = ifelse(enemy,movetype = A,1,2)

[State -2]
type = varadd
trigger1 = var(2) != 0
trigger1 = var(3) != 0
trigger1 = var(4) = 1
var(5) = ifelse((var(3)/var(2)) = 2,1,0) ←3回同じ技を使ったら2になるので1増やす


問題は同じ技を3回使わなくても2になる場合があることなんですが少し諦めてます

212blank:2019/03/12(火) 17:00:41
記入漏れ

[State -2];頃合いを見てリセット
type = varrangeset
trigger1 = var(3) > 14000
trigger2 = gametime%1200 = 0
value = 0
first = 2
last = 4

213blank:2019/03/13(水) 12:44:16
>>211
横からですがこれでどうでしょうか

[state -2]
type = Null
trigger1 = var(0) = enemy,power
trigger1 = var(X) := var(X) + 1
ignorehitpause = 1

[state -2]
type = VarSet
trigger1 = var(X) = 300
trigger1 = var(1) := var(1) + 1 || 1
trigger2 = var(0) != enemy,power
trigger2 = var(1) := 0 || 1
var(X) = 0
ignorehitpause = 1

[state -2]
type = Null
trigger1 = var(2) = 0
trigger1 = var(0) - enemy,power >= 1000
trigger1 = var(2) := enemy,stateno
ignorehitpause = 1

[state -2]
type = Null
trigger1 = var(3) = 0
trigger1 = var(2) != 0
trigger1 = var(0) - enemy,power >= 1000
trigger1 = var(3) := enemy,stateno
ignorehitpause = 1

[state -2]
type = Null
trigger1 = var(4) = 0
trigger1 = var(2) != 0 && var(3) != 0
trigger1 = var(0) - enemy,power >= 1000
trigger1 = var(4) := enemy,stateno
ignorehitpause = 1

[state -2]
type = Null
trigger1 = var(5) = 0
trigger1 = var(2) != 0 && var(3) != 0 && var(4) != 0
trigger1 = var(0) - enemy,power >= 1000
trigger1 = var(5) := enemy,stateno
ignorehitpause = 1

[state -2]
type = Null
trigger1 = var(0) := enemy,power
ignorehitpause = 1

214blank:2019/03/13(水) 12:47:13
すみません訂正です
var(2)からvar(5)への代入の箇所を下記のように訂正

[state -2]
type = Null
trigger1 = var(5) = 0
trigger1 = var(2) != 0 && var(3) != 0 && var(4) != 0
trigger1 = var(0) - enemy,power >= 1000
trigger1 = var(5) := enemy,stateno
ignorehitpause = 1

[state -2]
type = Null
trigger1 = var(4) = 0
trigger1 = var(2) != 0 && var(3) != 0
trigger1 = var(0) - enemy,power >= 1000
trigger1 = var(4) := enemy,stateno
ignorehitpause = 1

[state -2]
type = Null
trigger1 = var(3) = 0
trigger1 = var(2) != 0
trigger1 = var(0) - enemy,power >= 1000
trigger1 = var(3) := enemy,stateno
ignorehitpause = 1

[state -2]
type = Null
trigger1 = var(2) = 0
trigger1 = var(0) - enemy,power >= 1000
trigger1 = var(2) := enemy,stateno
ignorehitpause = 1

215blank:2019/03/15(金) 00:10:03
>>213 214 返答ありがとうございます
「:=」を使用した記述、大変参考になりました

返答の中でtrigger1 = var(1) := var(1) + 1 || 1 というのがあるのですが
いまいちどういう動き方をしてるのかイメージが掴めません

参照した時 var(1) に var(1)+1 または 1 を代入するという認識で大丈夫でしょうか?

216213:2019/03/15(金) 01:08:54
>>215
var(1)にはvar(1)+1のみ代入されます

代入式を使用した場合は代入した値がそのままトリガーの真偽の値となります
trigger1 = var(1) := var(1) + 1
とのみ記述していた場合にこの記述を読む前にvar(1)に-1が設定されていると
var(1) + 1 = 0 となるため
trigger1 = 0 扱いになりそこから先のトリガーを読まなくなってしまったり
ステコンが実行されなかったりといった不具合の原因となってしまいます

そこで"|| 1"の記述を付け加えて代入する値に関係なくトリガーの値を真にすることで不具合を減らすことができます
同じようなもので代入結果によらず負にしたいときに "&& 0" をつけることもあります
見易さから"1 ||"や"0 &&"といった書き方をしている製作者の方もいますが意味は同じです

とはいえキャラのランクにもよりますが今回の例ではvar(1)が-1になることは
おそらくないので無くても別に問題はありません

217blank:2019/03/16(土) 23:49:33
>>216
返答解説ありがとうございます。
代入式に関して知見を広めることができました

沢山意見を頂き、大変感謝しております。

218blank:2019/05/16(木) 19:59:17
オリキャラを作って公開寸前なんですが
カットインを自分から依頼した経験がある人いますか

有名な製作者のキャラは誰かが支援してくれることが多いけど
自分はキャラを多く作った実績がないので待ってもこないと思うし
ドット絵と製作に精一杯だったので絵は自作できない

なくてもいい前提でキャラや紹介動画は作ってあるが、
動画作ってから募集じゃなくて、サムネ用の画像やポトレが
あったほうがみんな見る気になると思うので

同じようなこと考えてるような人いますかね

219烏丸スバル:2019/05/23(木) 00:08:34
>>218
オリキャラではないですが、カットインを依頼して公開した者です。

日常会話する位に仲良くなった絵描きさんに依頼しました(有償)
待つのも悪くはないですが、自分から依頼しにいく方のが昨今は多い気がしますねー

220blank:2019/05/25(土) 21:51:05
>>219

お返事ありがとうございます
日常会話って現実で会って話したり、とかですか
まずそこから違いますね そういう親しい方はいませんでした

メールのやり取りはしたことありますが

221blank:2019/08/26(月) 16:54:28
すみませんキャラ作成を始めてみようと思ったんですが、FighterFactoryUltimateがうまく画像を読み込んでくれません。
ちゃんと読み込める画像もあるのですが、画像サイズが表示される部分に「他の画像にリンクされている画像 0,0 他と横幅0x0px」とでで表示されない画像がいくつかあります。
この文章にはどのような意味ですか?
画像はIrfanViewで減色してedgeでパレットを編集したものを元にunifybmpでパレットを揃えました。

222blank:2019/08/26(月) 21:37:14
まずFighter Factory Ultimateは古いバージョンなので
より新しいFighter Factory 3か最新版のFighter Factory Studioを使ってください

223blank:2019/08/27(火) 06:04:05
ありがとうございます
新しいの落としてみます

224blank:2019/09/04(水) 16:37:52
制作中のキャラでShift + F4での再読込で「winmugen.exeは動作を終了しました」と表示されMUGENが落ちてしまう現象が発生して困っております
HitDef項目の一つであるSnapを記述していると発生するとありましたが該当キャラには使用しておらず原因不明です

どなたかご協力をお願いします

225blank:2019/09/04(水) 17:39:17
すみません自己解決しました
air.velocityにリダイレクト利用の式を使っておいてdown.velocityを記入していない箇所があったのが原因でした

226Yes:2020/01/18(土) 08:14:43
すみません
ちょっと詰まったので助けてください

 3㌶氏の毘沙門について
 statedef 3170 の
time 120 あたりで
 p2のstatedefが5050に移行 するのですが

 ①どういう仕組みで5050に飛ぶのでしょうか?

 ②IKEMEN_GOだと飛ばないのですが、どんな仕様の差が原因なんでしょうか?

よろしくお願いします

227blank:2020/01/18(土) 16:01:39
①推測ですが
ヘルパーのHitDefのP2StateNoで相手を移動している。
この時自動でFallフラグが立つ。
P2は本体ではなくヘルパーのStateDef 3170を参照している。

5050に移動してしまうのはヘルパーが消えてStateDef 3170を参照できなくなるから。

②推測ですが
推測の推論だがP2は本体ではなくヘルパーのStateDef 3170を参照しているが、本体を参照している可能性。
TargetBindの仕様に命令者のVelとPosをコピーさせる仕様があるが、そこが違う可能性。
HitDefのFall.Yvelocityのデフォ値は-4.5だが、そこが違う可能性(これは違うと思う)。
HitDefのP2StateNoで自動でFallフラグが立つが、そこが違う可能性(これは違うと思う)。

1番上の可能性が高いです。
解決法は、本体でTargetStateをして、StateDef 3170で動きを制御すれば問題ないはずです。

228227:2020/01/18(土) 16:35:16
すみません、本体のTargetStateは攻撃当てていないので使えませんでした。
代用案ですが、TargetBindを1Fにし、StateDef 3170で動きを再現し、その間ヘルパーが消えないようにすれば間違いないです。
具体的には↓
StateDef 3130
TagetBindの条件を"Time <= 154"に変更
DestroySelfの条件を"Time > 300"に変更
以下を追記
[State ]
type=StateTypeSet
trigger1=Time=155
movetype=I

statedef 3170
以下を追記
[State ]
type=selfstate
trigger1=vel X&&vel Y
value=5050

229227:2020/01/18(土) 16:53:15
またすみません、TargetBindの仕様違いの場合を考慮していませんでした。
どちらにも対応できるのは↓

StateDef 3130
TagetBindの条件を"Time < 154"に変更
DestroySelfの条件を"Time > 200"に変更
VelSetを削除

以下を追記
[State ]
type=TargetVelSet
trigger1=Time=154
x=-4
y=-5
[State ]
type=StateTypeSet
trigger1=Time=155
movetype=I

statedef 3170
以下を追記
[State ]
type=selfstate
trigger1=vel X&&vel Y
value=5050

230Yes:2020/01/19(日) 03:21:37
>227
アドバイスありがとうございます

 ①については、挙動と辻褄が合うのでそれで間違いなさそうですね。

 ②については、TargetBindでp2がヘルパーについて回るので、p2のStateを奪っているのはヘルパー。
 ただヘルパーが消えた後もp2は StateDef 3170 に沿って動作するので
 参照するStateDefは本体のものって感じですかね。
 (本体のとか、ヘルパーのとかではなくザックリp1側の記述ってだけかもしれないですね。)

ありがとうございます。
書いていただいた修正コードも参考になりました。

なにより、まだ凄腕blankさんが常駐していてくれたことに
若干感動してしまいました。

今後ともよろしくお願いします。

231blank:2020/06/11(木) 15:02:03
ご教授ください。

小ポートレート(9000,0)の色を本体(0.0)のpalと同期させたいのですが
本体はpalnoが適用されてるのですが小ポートレートだけpalno1の色で固定されてしまいます。

キャラクターセレクト → def

palno1で選択 →キャラも小ポートレートもpalno1

palno2で選択 →キャラはpalno2だが小ポートレートはpalno1

小ポートレートを本体のpalnoと同期させるにはどうしたらいいですか?

232blank:2020/06/11(木) 17:40:34
本体が1.1だったか以後は小ポートレートの色がpal1固定になる仕様に変わっているので新MUGEN使ってるならそれじゃないですかねー

代わりにどのボタンで選択した場合をpal1にするかとかを設定できるようになってるみたいですが

233blank:2020/06/11(木) 17:55:13
>>232
試してみたら他のキャラも同様だったので仕様でした。
大変勉強になりました。ありがとうございます。

234サクラカ:2020/06/12(金) 12:56:04
製作関連スレを今気付いたので改めてここで質問させてください

自分のキャラ作成動画に
新mugen(1.1環境)だと変身キャラは試合中に小ポートレートも変更できる(anim指定も変わる)ってコメントあったけどそれ本当ですか?
前にも変身キャラの投げやられは指定できるようなコメントがあった…

未だにWINMUGEN時代の知識でキャラ作ってますが、
小ポートレートの変更と、投げやられは相手のanim2指定によるはずだと思ってるんで不思議に思います
ググってもそのような方法は見つからないのでもしそういう機能があれば教えてください

235blank:2020/06/13(土) 18:45:54
サクラカ氏はセラムンキャラでも顔ポトレ自前でかさねて表情変化やってたもんねたしか

236Yes:2020/06/13(土) 23:46:33
>>サクラカ氏

ぼくもちょっと探してみましたけど
見つけられませんでした
「やれるようになったらいいな〜」的な書き込みとか見かけるので
やれないんじゃないでしょうか

ガセネタ説に一票です

237blank:2020/06/14(日) 19:43:24
ikemenでは小ポトレ変更ができるっぽい

238サクラカ:2020/06/14(日) 22:18:22
>>235
言われるまでそういう試みやってたこと思い出しました
ただそれはMUGEN自体のシステムとは別で特殊ゲージのような処理ですが今度そういうやり方でまたオプション追加してみます
(覚えていれば

>>236
管理人さんありがとうございます
疑問に思ったので自分以外の製作経験者が教えてくれると心強いです

>>237
ikemenは気になるけどwiki関連を確認してみてもシステム的にそういう追加機能は見つからなかったです

239blank:2020/08/18(火) 09:57:51
mugen1.1向けに制作する場合の注意点ってなんでしょうか? win向けに作ったことはあったんですが、キャラ製作の際の違いとか注意点を詳しく解説してるところ、見つからなかったんですよね・・・

240blank:2020/08/19(水) 21:51:04
試合中の小ポトレにカラー差が反映されない(間違っていたらスミマセン)、
文字コードをUTF-8にすると日本語勝利メッセージが文字化けしない
とかでいいでしょうか?

1.1専用で作る場合はあてはまりませんが、どちらでも使いたい場合
いろいろwin版と違う仕様があるので、win版に合わせて記述を作る必要があります。
両方でテストするのがいいと思います。

並キャラなら、基本的にはwin版より出来ることが増えていると思います。
私はそれ以上のクラスのことはよくわからないので、後は親切な方助言お願いします。

241blank:2020/08/22(土) 23:46:00
>>240
ありがとうございます。

242blank:2020/09/04(金) 21:08:21
色々遅いかもしれませんが、
winでの画面サイズ指定は320か240を直接使ってましたが、1,1ではそのサイズに限らないため、それ用のトリガー(gamewidth、gamehight)があります。
トリガーでhitdefattrの指定が省略不可になってます。hitdefattr=sc → hitdefattr=sc,na,sa,ha
ほかにも無敵処理(nothitby)も省略不可だったような。
playsndのvolume指定方法変更とかz軸完全撤廃とかもありますが、
そのあたりはwinのころからあまり使われてない?と思うので特に気にしなくてもいいと思います

243blank:2020/11/25(水) 20:37:53
239の話題で止まっているようなので追加します。

win版はコマンドラベルのフラグ(command=~)が解除されるまで1Fかかったと思います。1.1版は0Fです。

win版は食らい状態から復帰する瞬間にガードが出来ず、赤ゲージを維持したままコンボ継続します。
同じことを1.1版でやろうとするとガードできるしコンボも切れます。ただし暗転中攻撃の場合はwin版と同様の結果になります。

244blank:2020/11/26(木) 05:39:54
つまりwinだと想定した値よりも実質ののけぞり時間が、のけぞり終了後の+1f分増えてしまうということなのです・・?

商業ゲームだとmowに近しいシステムが確かありましたっけ

245243:2020/11/26(木) 23:54:49
具体例を出すと
カンフーマンの立ち弱パンチをmovecontactの条件のみで連打できるように改変し、hittime設定を1つずつ減らしていきます。
win版では2でも繋がりますが、1.1版では3までしか繋がりません。

win版でコンボ補正を切るテクニックがあるのですが、1.1版で繋がらなくなる違いがあります。

246blank:2020/11/27(金) 00:25:51
なるほど・・
補正も切れるとなると結構大きい差ですね

ただ大半の原作版権ゲームでは付いてない仕様なことを考えると、
(のけぞり終了後1f目はガードしか出来ない~の場合は多いですが)

1.1で繋がらなくなる~というよりは win版のバグの一つとして思っておいたほうが良さそうですね。

247blank:2020/12/30(水) 11:44:07
現在のコンボ中のヒット数を参照する方法が知りたいのですが、解りやすい手段が見当たらず……

StatedefのHitcountPersistを1にしておいて各ステートのHitcountを引き継いでいき、
相手がやられ状態では無くなった時にリセット~という方法も考えましたが不安定性そうで;

良い方法がありましたらご教示のほど、よろしくお願いします。

248blank:2021/01/23(土) 22:21:13
大分時間がたっていますが私は今発見したので…
私はHitcountPersistは技ごとに書いていると記述量が増えるので使っていないですね。
良い方法かはわかりませんがどうぞ。

movehitしたらhitcountの最大値を適当な変数に記録→常時監視ステートにてmovehit=0でコンボヒット記録変数に加算し適当な変数初期化
ヘルパーはヘルパーで記録→適当なタイミングでparentvaradd
projはステート内でProjHitID=1の度に適当な変数に加算→ステート終了時にコンボヒット数記録変数に加算し適当な変数初期化

リアルタイムではなく、statedefが切り替わった時に加算される方式ですが、
現在のヒット数はコンボヒット数記録と適当の変数の和で出せます。

249blank:2021/01/23(土) 23:46:34
なるほど確かにそのほうがスムーズそうですね!
使わせていただきます。

250blank:2021/03/03(水) 20:12:23
ほぼ上記の仕様でぶじにクードス(原作アクションゲームでのコンボ値)
を火力へ変換する技、グロリアスストライザーも疑似再現し完成できました
https://www.nicovideo.jp/watch/sm38338402
ありがとうございました!

251blank:2021/05/01(土) 02:56:03
[Statedef 10240]
type = S
movetype= A
physics = N
velset = 0,0
anim = 10240
ctrl = 0
sprpriority = 3

[State 10240,01]
type = PosSet
trigger1 = Time = 0
y = 0

[State 10240,02]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1

[State 10240,03]
Type = ScreenBound
Trigger1 = 1
value = 0
MoveCamera = 0,0
IgnoreHitPause = 1
;Persistent = 1

[State 10240,04]
type = PlayerPush
trigger1 = 1
value = 0
ignorehitpause = 1
;persistent = 0

[State 10240,05]
type = AssertSpecial
trigger1 = 1
flag = noshadow
supermovetime = 99999
pausemovetime = 99999
ignorehitpause = 1
;persistent = 0

252blank:2021/05/13(木) 20:10:03
䑛瑡嵡楬敦ㄽ〰ര瀊睯牥ㄽ〰〰瑡慴正ㄽ〰敤敦据㵥〱ര昊污
敤敦据彥灵ㄽ〰ര氊敩潤湷琮浩㵥ര愊物番杧敬〽灳牡湫㵯ㄭ畧牡
灳牡湫㵯ㄭ佋攮档㵯ര瘊汯浵㵥㔲വ䤊瑮敐獲獩䥴摮硥㘽ര䘊潬瑡敐獲獩䥴摮硥㐽ര嬊楓敺
砊捳污㵥റ礊捳污㵥റ朊潲湵慢正〽牧畯摮昮潲瑮〽楡慢正〽楡
牦湯㵴ര栊楥桧㵴ര愊瑴捡楤瑳ⴽㄲ㜴㠴㘳〴牰橯愮瑴捡楤瑳ⴽㄲ㜴㠴㘳〴

253blank:2021/05/14(金) 07:36:49
殆ど稼働して無いのに時々荒らしモドキが湧くのね

254サクラカ:2021/05/15(土) 12:40:22
mugenwikiのニコニコMUGEN総合質問スレに投下した内容ですが、
こちらのほうで活動してる人が多そうなのでこちらにも質問させていただきます

お久しぶりです
システム製作に関する技術上の質問をしたいです
mugenwikiに書いてあった1.1環境ではバイナリエディタを弄って
3vs3や4vs4タッグにすることは可能らしいですが、
その状態を前提に昔みた画面上は操作キャラを一人に絞って残りは画面から退去して待機させ、
KOされたら交代や、コマンド入力でキャラを交代するようなシステムは
3vs3や4vs4の状態でも可能でしょうか?
コンプゲーの構想があるんですが、システム改造の知識は乏しいので、
キャラ本体ではなく共通システムのcommon1.cns自体に記述を加える方法で
教えていただければありがたいです

255Yes:2021/05/21(金) 00:23:56
これは難しそうな質問ですね
私にはさっぱりだ

256blank:2021/05/21(金) 18:29:34
初めまして
最近MUGENを製作し始めたもので、CNSに関することで質問がありこちらの方に訪れました

よく他の製作者様のCNSを参考にするとVar(〇)という記述があり
これがどのような役割を持つのか、また利点などがよく分かっていない状態です…
もしお分かりの方がいらっしゃいましたら、ご教授いただければ幸いです…

257blank:2021/05/21(金) 20:50:22
>>256
それはvarietyの略(多分)で、「変数」というやつですね
意味的には数学で言うところの変数と同じで、初期値は0、varsetとかvaraddとかのステートコントローラーを使うことで、いろいろな数値を当てはめることができます
MUGENではvar( )とfvar( )の2種類あって、var( )は整数の数値を、fvar( )は小数値も取ることができます
varの後の( )の部分は変数自体の通し番号(ナンバリング)で、var(0)から始まってvar(59)まで、1キャラに60個まで使うことができます
fvar( )はちょっと少ないです

利用方法は色々とありますが、わかりやすいのは技の派生などの条件分岐のためのスイッチなどです

例えば何か強化技を使用した後のみ必殺技が強化版になるなどの仕様を作りたいとき、
1)強化技を出す:動作中にvarsetを使い var(1) = 1 にする
2)必殺技の発生条件で trigger1 = var(1) = 0(強化技未使用) の時は通常版のステートに、trigger1 = var(1) = 1(強化技使用後) で強化版に移動する
みたいに作ることができます

fvar( )の方は、小数値が使えるので例えばhitdefのdamage値に乗算する補正値なんかに使いますね

258blank:2021/05/22(土) 10:42:01
>>257
分かりやすく返信いただきありがとうございます

つまりvarの使い方の一つとしては、例えば
var(1)はコンボの補正用のスイッチにする
var(2)は受け身用のスイッチにする
var(3)…etc.
みたいな感じで、fvarは細かく数値を入力できる凄いヤツみたいな認識で大丈夫でしょうか


cnsの記述を理解できる人は本当に凄いっす…

259blank:2021/05/25(火) 16:06:13
度々の質問になり申し訳ありません
MUGENでガードやジャンプをレバー入力ではなく、ボタンでの入力に置き換えることは可能なのでしょうか

260blank:2021/05/25(火) 22:43:43
>>259
暗黒な伊藤氏がそういう操作のキャラを作ってるから参考になるよ

261blank:2021/05/25(火) 23:21:07
なんならすぐ上の>250 ガンヴォルトさんもグラブルVS同様らしくレバー+ボタンガード両立型やね
それともレバーガードは無くしてボタンのみにしたいのかな

262sage:2021/05/26(水) 21:14:20
アドバイスいただきありがとうございます
なんとかボタン式で作ることが出来ました!本当にありがとうございます!!

263blank:2021/06/08(火) 10:15:36
初めまして。
違う掲示板でも書いたのですが
ライフバーのライフを数値化(デジタル表示)する方法を説明してくれてるサイトか動画を教えてほしいです。

ニコニコmugenWIKIみるとpornさんが、公開してくれてるみたいですが、見つけられなくて。

どうぞよろしくおねがいします。

264263:2021/06/08(火) 15:30:23
読み返したら、名前を間違えてましたすみません
pprnさんです。

265はどまん:2021/06/08(火) 19:34:07
>>263
○ttps://drive.google.com/file/d/1F2ud6cGkySvfUE3dOxyPK4dETDb2Z-j7/view?usp=sharing
↑自キャラでデジタル化のサンプルを作ったのでどうぞ。
data内のfightfx.cnsとfightfx.airを、バックアップをとってから上書きして確認してください

!BART_BF/BART_BF_-2.st内にデジタルライフバー表示の記述があります
その記述を他のキャラの-2ステートに貼り付ければ、デジタルライフバー持ちのキャラが量産出来ます
ただし、キャラによってはexplodIDが重複してるかもしれないので注意

266はどまん:2021/06/08(火) 19:45:50
すいません2P側のときの処理忘れてました。

https://drive.google.com/file/d/1JFYUM-KbHq9b8uS-p107wzjEtfTFCrxV/view?usp=sharing
こっちのリンクから拾ってください

267263:2021/06/08(火) 21:58:58
>>265
はまどんさん、ここまでして頂きありがとうございます
そして申し訳ないです。
私自身、mugenを触り始めたばっかりで、こういうプログラム?の事は全くわからない素人ですが
ここまでして頂いたので、ネットで勉強してモノにしてみます!
改めましてありがとうございます!!!

268blank:2021/06/08(火) 22:19:13
本人からは指摘し辛いだろうから外野から失礼だが
とりあえず君は相手の名前をもう少しよく確認する癖付けたほうがいい。

269263:2021/06/08(火) 23:19:47
はどまんさん、ほんとごめんなさい。
268さん教えてくださり、ありがとうございます。

270はどまん:2021/06/09(水) 00:20:11
>>269
ふぉい

271はどまん:2021/06/09(水) 00:31:17
>>268
指摘したいことをわざわざ僕を通して言わんでください 全く思ってないので困ります。

272blank:2021/06/09(水) 13:42:36
外野は黙ってろ

273ケットシー:2022/02/04(金) 23:54:33
ええ5年ぶりにキャラ制作再開しました。作りかけで放置してたキャラを最低限形にしてAIも作ったのですが。

立ち中中キャンセル以外で使えないはずの技を、他の技をキャンセルして使うAI限定バグが

[State -3, 5中]
type = ChangeState
value = 212
triggerall = var(59) = 1 && RoundState = 2
triggerall = alive = 1
triggerall = p2statetype != L
triggerall = statetype != A
triggerall = p2stateno!= var(52) && var(52) > 0||var(52) = 0
triggerall = p2stateno!= var(51) && var(51) > 0||var(51) = 0
trigrerall = stateno = 211
triggerall = (AnimElemTime (3) >= 0) && (AnimElemTime (5) < 0)
trigger1 = movehit

state211でhitした時以外は使わないはずなんですが????

274blank:2022/02/05(土) 00:00:29
trigrerall = stateno = 211

trigrerallのgが足りない

275274:2022/02/05(土) 00:04:21
訂正
綴りが違う
gがrになってる

276ケットシー:2022/02/05(土) 10:12:00
>>274
 治りました。ご指摘ありがとうございます。綴りミスでもエラー出ないとか初めてでした。

277blank:2023/02/16(木) 18:53:19
数年ぶりに作成始めたのですが
自分の飛び道具のスピードを相手のX方向を参照したいのですが
良い方法はありますでしょうか?

ヘルパーを常時相手に張り付かせてその速度で返すのか
歩きと走りのみに限定してP2stateで判断するか

278blank:2023/04/25(火) 15:00:54
久しぶりに拝見

>>277
数年ぶりいらっしゃいです。
回答無いようなので、1年程 mugen に触れていない身ですがお答えします。

自分の飛び道具のスピードを相手のX方向を参照したいのですが

どうしたいかが伝わりません

ヘルパーを常時相手に張り付かせる

主観全開で言うと、止めよう、深く考えて
それは最終手段

歩きと走りのみに限定

そもそも相手のスピードと位置の変化は連動してない
possetされてたり、ステージ端や画面端で移動不可の方向に正のスピードがあったり

まず落ち着いて、飛び道具をイメージを目指して組んでみましょう。
そしたらどう動かしたいか整理して、相手に伝わる説明をできる状態にして下さい。
組んでみて動きに妥協もしくは満足するなら、質問せずに済む場合もあるはずです。

相手は質問の回答があなたに伝わるよう力を注ぎたいので、どう動かしたいかの説明の手を抜くのは読んでて疲れます。
いつでもここにいるわけではありません。内容に手抜きがある為に何回もやり取りが必要そうな質問はスルーされます。

どんな回答が欲しいのですか?
個人の熱意でどこまでも作れる遊べる、この界隈で。
2か月経っても、誰も答えられないような質問して。
仮に返っても、役には立たなかったと断言しますよ。

せっかく数年ぶりに作成始めた。
なのに質問内容が相手に伝わらない。
もったいないです。

最後に、自己解決したのならその旨は述べてください。
やり取りが止まっていて、他の方が質問し難い可能性があります。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板