したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

製作お助け掲示板

1Yes:2010/06/25(金) 01:34:11
製作で困ったことがあれば
質問をどうぞ
どんな初歩的な質問でも
キャラ製作の先人達がやさしくお答えいたします。
ただし教えてくれた内容が間違っていても怒らないように。
だれにでも間違いはあります。
ココで得た知識を吸収し、教える側に回れるように精進しましょう。
また
先人達も知識がさび付かないように、理解をより深めるために
お互いに知識を出し合い、高め合いましょう。

838blank:2011/11/14(月) 15:58:43
続きです

[Statedef 20030]
type = S
movetype= A
physics = N
velset = 0,0
ctrl = 0
anim = 20030
sprpriority = 1

[State 20030]
type = VelSet
trigger1 = Anim = 20030
y = 15

[State 20030, 落下中の攻撃判定]
type = HitDef
trigger1 = Anim = 20030
attr = A,SA
hitflag = MAF
guardflag =
affectteam = B
animtype = hard
priority = 7, Hit
damage = 0, 0
pausetime = 0,0
sparkno = -1
sparkxy = 0, 0
hitsound = -1
guardsound = 0,0
ground.slidetime = 0
ground.hittime = 20
guard.hittime = 10
guard.slidetime = 10
air.hittime = 20
guard.ctrltime = 10
ground.velocity = 0,15
air.velocity = 0,15
fall = 1
fall.recover = 0
givepower = 10
persistent = 0

[State 20030]
type = ChangeState
trigger1 = Pos Y >= 0 && Vel Y > 0
value = 20031
ctrl = 0

[Statedef 20031]
type = S
movetype = A
physics = S
anim = 20031
ctrl = 0
movehitpersist = 1

[State 20031, 着地時の攻撃判定]
type = HitDef
trigger1 = time = 0
attr = S,SA
hitflag = MAFD
guardflag =
affectteam = B
animtype = hard
priority = 7, Hit
damage = 100
pausetime = 0,0
sparkno = 0
sparkxy = 0, 0
hitsound = 0,0
guardsound = 0,0
ground.slidetime = 0
ground.hittime = 20
guard.hittime = 10
guard.slidetime = 10
air.hittime = 20
guard.ctrltime = 10
ground.velocity = 0,15
air.velocity = 0,15
fall = 1
fall.recover = 0
givepower = 10
persistent = 0

[State 20031 ヘルパー消滅]
type = DestroySelf
trigger1 = Animtime =0

[State 20031]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

839mugen大好きっ子:2011/11/14(月) 16:28:35
カンフーマンにドット絵を入れてみました。
そしたら、エフェクトは色化けしないのに、
キャラ本体のドットは色化けします。
どうすれば、ちゃんと色化けしないで表示できますか?
教えてください。

840mugen大好きっ子:2011/11/14(月) 18:08:08
>>839
自分で解決しました。

841mugen大好きっ子:2011/11/14(月) 22:23:30
sffはだいたいできたので、sndを作り始めました。
ニコニコ動画や、youtubeの動画の音声をWVAで保存して、音声編集ファイルで
声を取ったのですが、BGMなどが入ってしまいます。
BGMなどを取って、綺麗にする方法はありますか?

SoundEngine Freeという音声編集ソフトで編集しています。

842Yes:2011/11/14(月) 22:29:19
下を参照してください。
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1416627019

843blank:2011/11/15(火) 00:08:45
>>837
Animは確か4万強(具体的な値は忘れた)よりも大きい値を指定できない
99999を別の番号に振り直してみるといいよ

あとDestroySelfの下にChangeStateあるけど要らない筈だし
下手したらMUGENが強制終了する原因になるから消した方が良い
DestroySelf実行後に同一FでExplodやHelperを実行しちゃうと強制終了だから
0番ステートに最速でExplodやHelperを生成する記述が入っていないのであれば落ちはしないけど

844blank:2011/11/15(火) 21:32:32
>>843
ありがとうございます!
指摘してくださった部分とは違うところでしたが無事?不具合は直りました

しかし不具合があった部分ですがヘルパーを呼び出すステコンのtrigger1 = time = 0のところのtimeの値を1以上に変えるとヘルパーがでてこないようです
ヘルパーを時間差で呼び出したいのですがどうすればいいでしょうか?

845blank:2011/11/15(火) 23:15:06
普通ならTime = 5でも呼び出せるからTime=5を待たずして19003を抜けてるんだと思う
1以上にすると出ないなら19003を読み込んだ同一F(若しくは次のFの常時監視)で即座に抜けてるってことになる
ChangeStateの条件がAnimTime=0だからAnim関係の誤作動だろうってことで>>843のレスしたんだけど、Animは振り直したの?

あとは常時監視のChangeStateやSelfStateが19003を抜ける原因になっていないかもチェックかな

846blank:2011/11/16(水) 13:14:57
>>845
レスありがとうございます
おかげで原因が分かりました
animのフレーム数を0にしていたので条件を満たす前にステートが移動していたのだと思います

指摘されたところはすべて直しましたのでanimの番号も40000未満に振り直しました

847ケットシー:2011/11/23(水) 01:50:38
タッグで相手チーム二人に挟まれたときの行動をAIに指定したいのですがトリガーはどうすればよいのでしょうか?
試しに
trigger1 = enemy(0),facing != facing &&enemy(numenemy=2),facing = facing
trigger1 = enemy(numenemy=2),bodydist < 0

と入力したところ2行目がエラーを吐きました。

848blank:2011/11/23(水) 04:16:33
BodyDist Xだね、XかYを付けないと駄目

あと、NumEnemyは相手本体に加えてHelperType = Playerのヘルパーもカウントするから
=2で指定しちゃうとタッグ相手でも0を返すことがあるし、逆にシングル相手で1を返すこともあるから注意

849ケットシー:2011/11/23(水) 15:01:06
>BodyDist X
 Xを付けてみましたがだめでした。BodyDistはp2専用?
結局
triggerall = enemy(0),movetype != H || enemy(numenemy=2),movetype != H
triggerall = enemy(0),alive=1 && enemy(numenemy=2),alive=1
trigger1 = enemy(0),facing != facing &&enemy(numenemy=2),facing = facing
trigger2 = enemy(0),facing = facing &&enemy(numenemy=2),facing != facing
 で概ね行動してくれたました。

850ケットシー:2011/11/23(水) 15:13:24
AIに学習機能をつけようとしているのですが上手く立ってくれません。
[State -2];学習スイッチonoff
type = varset
trigger1 = 1
var(57) = 1;0 off 1 on

[State -2];地上中段記憶
type = varset
trigger1 = stateno != 131&&(stateno != [152,153]);しゃがみガード以外のくらいステート
trigger1 = var(57) = 1
trigger1 = var(40) = 0
trigger1 = prevstateno = 131||(prevstateno = [152,153]);直前はしゃがみガード
trigger1 = movetype = H
trigger1 = P2Statetype != A
trigger1 = P2Movetype = A
var(40) = p2stateno
ignorehitpause = 1
で変数に代入して

[State -3,しゃがみ解除(ガード切替も兼ねてる)]
Type = ChangeState
value = 0
Ctrl = 1
TriggerAll=RoundState=2
TriggerAll=var(59) = 1
TriggerAll=StateType != A
TriggerAll=StateNo = 11
trigger1 = p2statetype = A
Trigger1 = Random <= var(58)*30
trigger2 = var(59) = 1
trigger2 = var(40) = p2stateno
trigger2 = var(40) > 0
trigger2 = var(59) = 1
trigger2 = var(41) = p2stateno
trigger2 = var(41) > 0
しゃがみ解除ステートと
[State -3,立ちガード]
Type = ChangeState
Value = 120
TriggerAll=var(59) = 1
TriggerAll=StateNo!=[120,155]
TriggerAll=Ctrl||StateNo=11
TriggerAll=inguarddist
TriggerAll=RoundState=2
Trigger1 = Random<=var(58)*60
Trigger2 = P2BodyDist X>90||EnemyNear(var(50)),Time>50
Trigger2 = Random<=var(58)*150
trigger3 = var(40) = p2stateno
trigger3 = var(40) > 0
trigger4 = var(41) = p2stateno
trigger4 = var(41) > 0
たちガードステートにさっきの変数がp2stastenoのときはトリガー入るようにします。
あとはCNSのガードステートを
[State 131, Lo to Hi]
type = ChangeState
Trigger1 = var(59) = 0
Trigger1 = command != "holddown"
Trigger2 = var(59) = 1
Trigger2 = EnemyNear,StateType=A
Trigger2 = Random <= var(58)*30
trigger3 = var(59) = 1
trigger3 = var(40) = p2stateno
trigger3 = var(40) > 0
trigger4 = var(59) = 1
trigger4 = var(41) = p2stateno
trigger4 = var(41) > 0
value = 130
しゃがみから立ちへの変更部分にも手を加えたんんですが立ってくれません?

851blank:2011/11/23(水) 18:09:16
ごめん、寝ぼけてたw
P2じゃないBodyDistなんて無かったな

Var(41)は2種類目の地上中段ステート記憶ってことでいいのかな?
一つ目のChangeStateのTrigger2下3つはTrigger3の間違いかと
あとは立ちから屈みへのChangeStateも弄っとかないと
高速屈伸や2500loopになるからそっちも手を加えた方がいい

852ケットシー:2011/11/23(水) 22:50:15
原因はvar(40) = 0の記述がないのが原因だったようです。
[State -2];学習スイッチリセット
type = VarRangeSet
trigger1 = stateno = 191;イントロでリセット
trigger2 = RoundsExisted = 0
trigger2 = TeamMode = Turns
trigger2 = RoundNo > 0
trigger3 = Enemy,RoundsExisted = 0
trigger3 = TeamMode = Turns
value = 0
first = 30
last = 49

の記述追加で立ち中段が滅多に通らなくなりました。

で、次は攻撃失敗の記憶に入ったのですが、もしかしてMoveReversed って当身取られた攻撃の記録に使えなかったりします?
trigger1= MoveReversed=1
trigger1 = stateno = 210
でも
trigger1= MoveReversed=1
trigger1 = prevstateno = 210
でもvaraddが機能していません。-2だから相手にステート奪われても記憶されるはずなんですが?

853blank:2011/11/23(水) 23:30:13
ReversaldefのP2StateNoでステート移動させられた場合は
移動先のステートにMoveHitPersist=1がついてない限り
MoveReversedを感知する間もなくステート移動とともにリセットされる
MBのシールドみたいにステート奪わないReversaldefなら感知できるんじゃないかな

-2でMoveReversedを感知するためにはReversaldef側がステート奪うタイミングを遅らせるか
奪った先のステートにMoveHitPersist=1をつけるかのどっちかになると思う

854ふりかけ( ´_ゝ`):2011/11/23(水) 23:51:04
突然失礼します。こちらの過去ログを参考にヘルパー式アーマーを作っているのですが、
うまくいきませんでした。どなたか、記述を見て頂けないでしょうか?
[Statedef 1400]
〜中略〜
[state 1400,アーマーヘルパー]
type=helper
triggerall = !ishelper
triggerall = !numhelper(1400)
trigger1 = time = 0
stateno = 1405
name = "komanage_armor"
id = 1405
pos = 0,0
postype = p1
ownpal = 1
keyctrl = 0
ignorehitpause = 1
pausemovetime = 999999
supermovetime = 999999

;ヘルパーアーマー時無敵
[state 1400, 無敵]
type = nothitby
triggerall = !ishelper
triggerall = numhelper(1405)
trigger1= time = 0
value = ,NA,SA,NP,NT
time = 2
ignorehitpause=1


[state 1400, 10分の1食らう]
type = lifeadd
triggerall = !ishelper
triggerall = numhelper(1405)
trigger1 = helper(1405),gethitvar(damage)
value = -ceil(Helper(1405),GetHitVar(damage)*0.1)
absolute = 1
ignorehitpause = 1

[State 1400, 画像の色]
type = PalFX
triggerall = numhelper(1405)
trigger1 = helper(1405),gethitvar(damage)
time = 14
add = 20,150,70
sinadd = 64,32,5,3 ;振幅赤,振幅緑,振幅青,周期

[State 1400, 2]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

855ふりかけ( ´_ゝ`):2011/11/23(水) 23:52:12
;続きです
;アーマー---------------------------------------------------
[statedef 1405]
type=S
movetype=I

[state 1405, push]
type=playerpush
trigger1=ishelper(1405)
value=1
ignorehitpause=1

[state 1405, no shadow]
type=assertspecial
trigger1=ishelper(1405)
flag=invisible
flag2=noshadow
ignorehitpause=1

[state 1405, 本体に追従]
type=bindtoroot
trigger1=ishelper(1405)
ignorehitpause=1

[state 1405, 向きを追従]
type=turn
trigger1=ishelper(1405)
trigger1=facing!=root,facing
ignorehitpause=1

[State 1405, 判定を揃える]
type = ChangeAnim
trigger1 = SelfAnimExist(Parent,Anim)
value = Parent,Anim
elem = Parent,AnimElemNo(0)

[state 1405, 無敵]
type = nothitby
triggerall = numhelper(1405)
triggerall = ishelper(1405)
trigger1 = roundstate!=2
value = ,NA,SA,NP,NT
time = 1
ignorehitpause=1

[state 1405, 攻撃の上書き]
type=hitoverride
trigger1=ishelper(1405)
time=-1
attr=sca,NA,SA,NP,NT
slot=0
stateno=1405
ignorehitpause=1

[state 1405, 親の行動が終わったら消える]
type=destroyself
triggerall=ishelper(1405)
trigger1 = parent,stateno != 1400

どうぞ、宜しくお願いします。

856blank:2011/11/24(木) 01:22:12
どう上手くいかないのかを(ry

たぶんダメージ処理が正常に行われないってことだと思うけど
GetHitVar系列の大部分はMoveType=Hのときにしか取得できないから
[Statedef 1405]のところをMoveType=Hにしといて、ダメージ処理が済んだら
Trigger1=!GetHitVar(Damage)あたりでStateTypeSetのMoveType=Iにすればいけるかと

アーマー殺しで痛手を負わないようにするならもう一工夫必要だけど

857ふりかけ( ´_ゝ`):2011/11/24(木) 07:27:34
>856
>どううまくいかないのか

すみません、言葉足らずでした。ダメージも入らないんですが、その前にアーマーとして機能していないんです。
普通に食らいモーションを取って、動作が中断してしまいます。デバッグ画面を見たら1405ステートに行かずに5000番台に飛んでいました。
ヘルパーの使い方をよくわかっていないんですが、ヘルパー用のairや食らい判定も必要なのでしょうか?

858:2011/11/24(木) 21:12:20
掲示板を使わせてもらいます。
今、Pinko氏製作の服部半蔵を練習で改変しているのですが、半蔵の勝利ポーズの時間を長くする方法は何かありませんか?

859blank:2011/11/25(金) 00:18:14
>>857
見落としてた

;ヘルパーアーマー時無敵
[state 1400, 無敵]
type = nothitby
triggerall = !ishelper
triggerall = numhelper(1405)
trigger1= time = 0
value = ,NA,SA,NP,NT
time = 2
ignorehitpause=1

↑これをTime=0でのみ実行してるから3F目以降に無敵が切れてそのまま本体が被弾しちゃう
Trigger1=Time=0をTrigger1=1にするか、1行丸ごと削ってTriggerAllをTrigger1に変更するか
どちらかで無敵を維持すれば大丈夫

860blank:2011/11/25(金) 00:26:01
>>858
勝利ポーズのステート(大抵のキャラは180番付近)に

[State ]
Type = AssertSpecial
Trigger1 = Time <= ○○
Flag = RoundNotOver

みたいなのがあれば○○の部分の値を増やせばいい
Time = [0,○○]でも同義
なければ自分で追加する

861ふりかけ( ´_ゝ`):2011/11/25(金) 18:07:17
>859を参考に、本体は無敵関係をいじったらできました! アドバイスありがとうございます!

862blank:2011/11/27(日) 23:07:40
孫ヘルパーで大元(本体)の変数を書き換えるためにはどうすればいいのですか?

863blank:2011/11/28(月) 00:21:33
ParentVarSetを2回使って子ヘルパーに中継させればいい
孫のParentVarSetで子のVarを書き換えて
そのVarをTriggerに子がParentVarSetで親(本体)のVarを書き換える

孫のMoveTypeがAで子のMoveTypeがHかIであれば問題ないけど、
それ以外の場合は各ヘルパー出現時のメモリ状況によっては書き換えが1F遅れちゃうのがネックだけどね
1Fの誤差も許されないならバグでも持って来ないと不可能

864blank:2011/11/28(月) 00:31:52
>>863
レスありがとうございます

孫ヘルパーで本体の変数を書き換えたいときには子ヘルパーはもう消した後なんですよね…

孫ヘルパーで本体の変数を書き換える以外の方法を考えてみます

865blank:2011/11/28(月) 20:39:48
>>862
①条件がそろったときに適当なID(ここではX)でhelperかexplodを孫に実行させる。持続は2Fぐらいで良い。
②-2か-3ステートで、numhelper(X)かnumexplod(X)をトリガーにして親がvarsetを実行する。
変則的ではありますが、これでもいけると思います。

注意としては、
①のとき、numhelper(X)=0かnumexplod(X)=0を必ずtriggerallに入れること
②が常時監視なので、triggerで条件付けをしっかり行うこと
helperやexplodが最大表示数に達していると機能しない
などがあります。

866blank:2011/11/29(火) 08:45:24
>>865
レスありがとうございます

その方法を試してみます!

867D:2011/11/30(水) 23:59:35
自分だけだと思うのですが、何かヒントを下さい
トレーニングモードではCボタン攻撃可能、
アーケードとかVSモードだとCボタン攻撃が出来なくなります
こういった場合、どこを見直せばいいんでしょうか?
ダッシュ攻撃は出せます

;立ち強
[State -1]
type = ChangeState
value = 220
triggerall = command = "c"
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = stateno = [200,210]
trigger2 = movecontact

;立ち強2
[State -1]
type = ChangeState
value = 225
triggerall = command = "c"
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = stateno = [200,220]
trigger2 = movecontact

;ダッシュ攻撃
[State -1]
type = ChangeState
value = 260
triggerall = command = "c"
triggerall = command != "holddown"
triggerall = statetype != A
trigger1 = stateno = 100 && time > 4
trigger2 = stateno = 101 && time <= 3

868D:2011/12/01(木) 19:51:19
>>867
デバッグモードで見直してたら何故か700番代に飛んでました
もうちょっとやってみる事にします。すみませんでした

869blank:2011/12/01(木) 22:10:42
Explodのトリガーをtime%5=0にして5フレームごとに出そうと思ったのですがExplodが最初の一個しかでません

どうすればいいのでしょうか?

870blank:2011/12/01(木) 23:40:52
Trigger1 = Time%5 = 0だけでExplod実行してるなら
そのステートにいてPause等がかかっていない限り5F毎に出る筈だよ

・Time%5=0以外にトリガー設定してるかどうか
・Persistentを設定してるかどうか
・Time=5になる前にChangeState等でそのステートを離れてないか
この辺を確認されたし

871blank:2011/12/02(金) 22:56:51
>>870

もう一度確認したらPersistentが紛れ込んでいましたorz

なぜこんな初歩的なミスを…

ありがとうございました!

872blank:2011/12/08(木) 21:36:42
特定の技で相手キャラを倒したときに、相手キャラの位置にエフェクトを出したいのですがどういうトリガーにすればいいでしょうか?

「勝った時に」ではなく「倒したときに」という条件と、タッグ戦でエフェクトが出る位置で悩んでます。(postypeがp2だとp4には影響しないため)

873blank:2011/12/08(木) 23:51:55
特定の技だったらHitDefにID設定して
その技のステート内に
[State ]
Type = Explod
Trigger1 = Enemy(0),GetHitVar(ChainID) = ○○
Trigger1 = Enemy(0),Alive = 0
Anim = △△
PosType = Left
Pos = (Enemy(0),ScreenPos x),(Enemy(0),ScreenPos y)
IgnoreHitPause = 1
Persistent = 0
[State ]
Type = Explod
Trigger1 = Enemy(0),NumPartner
Trigger1 = Enemy(1),GetHitVar(ChainID) = ○○
Trigger1 = Enemy(1),Alive = 0
Anim = △△
PosType = Left
Pos = (Enemy(1),ScreenPos x),(Enemy(1),ScreenPos y)
IgnoreHitPause = 1
Persistent = 0
でできるんじゃない?

ChainID設定すると都合が悪い場合はFall.EnvShake.Phaseあたりでも代用可

874blank:2011/12/09(金) 21:39:37
>>873
慣れない記述が多くて解読するのに結構時間かかりましたが、その記述を入れたらできました。
自分のキャラはコンボがメインなのでFall.EnvShake.Phaseを使ったらできました。
今まではターゲットIDを使ってたのでステート奪った相手にしかできませんでした。
本当にありがとうございます。

875blank:2011/12/10(土) 18:15:46
すみません、初歩的な質問かもしれません。
相手がくらい中にヘルパーの攻撃を当てると普通に当てた時より威力が下がってしまいます。
コンボ補正はいっさいつけてないのになぜでしょう?
それともどこかCNSで見落としてる可能性があるんでしょうか

876blank:2011/12/10(土) 20:01:52
SuperPauseを使っているかどうか
相手がDefenceMulSetを使っているかどうか
Trip属性の技を当てた後の話かどうか

喰らい中か否かでダメージが変わるとしたらこの辺りが怪しい

877blank:2011/12/10(土) 20:18:13
SuperPauseつかってました。
調べたら超必殺補正というのがでてきました。こんなのしらなかったです。
ありがとうございました。

878blank:2011/12/25(日) 20:48:23
ReversalDefってHitOverRideみたいに複数使い分けることってできませんか?
相手のステートを奪いつつ、相手の攻撃の種類によって自分のアニメを変えたいのですが上手くいきません。

879blank:2011/12/25(日) 21:13:36
Helper重ねてReversalDef分担させるか、EnemyNear,HitDefAttrを使って条件分岐させるか
前者はヘルパー最大数に達していなければ確実、後者は相手がタッグ等でなければ大体おk
HitDefAttrを数値に変換してEnemy(0)とEnemy(1)を個別にVar格納すればタッグでも滅多に不都合はないと思う

880blank:2011/12/25(日) 21:57:45
続けてすみません、ヘルパーがReversalDef成功したときに本体のステート変更ってできるんですか?

881blank:2011/12/25(日) 22:11:25
ヘルパーがReversalDef成功したかどうかはHelper(***),NumTargetで本体側から判別可能だから
それを条件にChangeStateすればおk

そのヘルパーにHitDef実行させている場合はタゲの有無だけじゃ判別できないけど
特定の当身技の補佐として一時的に召喚するヘルパーであれば大丈夫な筈

882blank:2011/12/25(日) 22:43:52
Targetって自分が攻撃当てた時につけるばんごうでしたよね
要するに当て身成功したときにターゲット番号振って、その番号で判別するんですか?
ちょっと記述の書き方悩んでます。すいません・・・

883blank:2011/12/25(日) 23:28:45
NumTargetってターゲット奪った相手のこともいうんですね!解決しました
丁寧にありがとうございました。

884ふりかけ( ´_ゝ`):2011/12/27(火) 18:54:08
ガンマレイのように画面端まで届く攻撃判定を持った、
複数回攻撃が当たる技について質問なんですが・・・。

判定は出ていても攻撃が5ヒットを超えた段階で、相手はダウンする
(攻撃が当たらなくなる)ように設定していたんですが、ごく稀に
ヒット制限や想定している攻撃力・補正を逸脱してダメージを与えることが
あります。どなたか、原因に見当がつく方がいらっしゃいましたら、教えて
頂けないでしょうか?
問題の技のhitdef記述は以下の通りです。

[State 3000,判定1]
type = HitDef
triggerall = HitCount < 5
trigger1 = animelem = 4
trigger2 = animelem = 5
trigger3 = animelem = 6
trigger4 = animelem = 7
trigger5 = animelem = 8
trigger6 = animelem = 9
trigger7 = animelem = 10
trigger8 = animelem = 11
trigger9 = animelem = 12
trigger10 = animelem = 13
trigger11 = animelem = 14
trigger12 = animelem = 15
trigger13 = animelem = 16
trigger14 = animelem = 17
attr = S, HP
hitflag = MAFDP
guardflag = MA
damage = ceil(70*fvar(0)*fvar(1)), ceil(10*fvar(0)*fvar(1))
animtype = Hard
air.animtype = Back
ground.type = High
priority = 6, Hit
pausetime = 0, 2
getpower = 0, 0
ground.slidetime = 20
ground.hittime = 20
guard.hittime = 20
ground.velocity = -1,-1
guard.velocity = -6
air.velocity = -0.5,0
airguard.velocity = -0.5,0
ground.cornerpush.veloff= 0
air.cornerpush.veloff = 0
down.cornerpush.veloff = 0
guard.cornerpush.veloff = 0
airguard.cornerpush.veloff = 0
palfx.time = 200
palfx.mul = 80, 200, 80
palfx.sinadd = 5,80,5,40
sparkno = -1
guard.sparkno = -1
sparkxy = 150,-60
hitsound = S3000, 2
guardsound = S120, 0
fall = 1 ;1だと自動立ち直りなし
fall.recover = 0 ;0だと受身不可能
fall.recovertime= 999999
air.fall = 1 ;1だと自動立ち直りなし

885blank:2011/12/27(火) 22:29:08
それ見る限りだと問題無いけど、
可能性としてはHitCountがリセットされてる(=タゲが外れてる)んじゃないかな
作者によってはCanRecoverフラグ無視して復帰ステートに飛ばしてたりするからそこで外れてるとか
特定の相手キャラでのみ発生するの?

それが原因ならステート奪うかHitDefの上にTrigger1=1で常時ReversalDefかけて永タゲ使うかで解決できると思う
もし違ったらそのステート内の他のステコンや常時監視を見ないと分からない

886ふりかけ( ´_ゝ`):2011/12/27(火) 22:42:40
>885
回答ありがとうございます。
私のキャラが動画でやらかしてたのを見て、慌ててチェックをしているので、まだ特定の相手かどうかはわかりませんが・・・。
ご指摘の復帰ステートの件、該当の動画を見返して気がついたのですが、地面近くで変な食らい方しているんですよね。
fallフラグを無視した復帰の他に、クイックスタンディング等でダウン拒否してまだ残っている判定に引っかかるという可能性は
ありますでしょうか?
↓該当動画、9:10くらいから、ビオレンテの放射樹液が間桐桜に不自然な大ダメージを与えてます。ヒットカウントも8行ってます。
ttp://www.nicovideo.jp/watch/sm16535862

887blank:2011/12/27(火) 23:52:32
動画見てもよく分からんけど、ヒットカウントが継続してるからタゲ外れてる訳ではなさそうかな
初弾で2ヒット入ってるように見えるから相手側の不可視ヘルパーと本体で1度に2回当たってるんじゃない?
不可視ヘルパー重ねるのはアーマー処理でも使う手法だから本体の無敵設定し忘れてそうなってるのかも

HitCountは同一HitDefでの同時ヒットを1回とカウントするから4回×2ヒットした後にTriggerAll満たさなくなるから計8ヒットで理に適ってる
UniqHitCountなら同時ヒットも個別にカウントするから2回×2ヒットで満たさなくなる
5ヒットを超えた段階で当たらなくするなら等号を付けて「<=5」にするか「<6」にしないといけない

888ふりかけ( ´_ゝ`):2011/12/28(水) 00:28:46
わかりました。では、ヒットカウントは気にしなくても良いということですね。

ダメージがおかしなことになる方法の修正は・・・すみません、「HitDefの上にTrigger1=1で常時ReversalDefかけて永タゲ」が
ちょっとよくわからないです・・・。「ステート奪う」の方はわかりますが、できれば他のビーム系超必殺技を持っているキャラ
と同じく、通常の処理でなんとかしたいと考えております。
この現象が回避できるなら、この際ヒット制限は撤廃して、ダメージ×14ヒットで現在と同等の火力に調整し直してもいいと思っているんですが・・・。
triggerall = HitCount < 5を抜いて、ヒット時は全てのhitdefが当たるようにしておけば、よっぽど変な食らいぬけをされない限りは、
普通の攻撃と同じようにヒットします・・・よね?

889blank:2011/12/28(水) 01:09:09
間桐桜のcns見ないと分からないけど、ヘルパーによるアーマー処理のダメージと無敵設定ミスにより本体が直接受けたダメージが重複して大ダメージになってるのでは?って話ね。
もしそうならビオレンテ側のcnsどうこうの問題じゃないから>>885は気にしなくていいし、寧ろ間桐桜の作者に不具合報告した方がいい

本来HitDefによるターゲットは相手のMoveTypeがHじゃなくなったときに解除されるんだけど、ReversalDefを実行し続けることによってターゲットが解除されずに残るのが「永タゲ」
相手がCanRecover無視で復帰してMoveType!=HになってもReversalDefを途切らせなければターゲット解除されずにHitCount継続するからTriggerAllでのヒット数制限が効く
Var使ってもいいならTime=0で0にセットしておいてヒット毎に1加算、そのVarでTriggerAll設定した方が確実

890ふりかけ( ´_ゝ`):2011/12/28(水) 07:15:40
昨日は途中で寝落ちしてしまいました。すみません。
今日帰ってきたらvar追加したりして色々やってみます。また、他のキャラ相手にもこの現象が
起きるか試してみるまで、間桐桜の製作者の方への報告は保留します。桜以外にも起きたら
やはりこっちの問題ですし・・・。結果は後でまた報告に来ます。アドバイスありがとうございました!

891ふりかけ( ´_ゝ`):2011/12/28(水) 23:14:38
>>884の件ですが、タッグ時で、かつ相手が地面と判定に挟まれるような食らい方をしたときに発生するようです。
(地面の上でビタンビタンと小刻みに跳ねる食らい方をしてました)
ジェダ・cvsベガでも確認できたため、間桐桜の問題ではないようです。
>>889のvarを使ったやり方も試してみましたが、どうもうまく行きませんでした。

現在、ヒットカウントが途中でリセットされて過剰に食らっている可能性を考慮して、ヒット制限を解除して全判定が普通に命中するように設定し、
ダメージ量をいじって調整しています。
また、保険としてヒット時に地面に近づかないように、各velocityのy値を-1にしています。
これで例の現象が起きなければいいのですが、原因が確定できたわけではないのでいささか不安です。

もし、原因に心当たりがある方がいらっしゃいましたら、教えて頂ければ幸いです。宜しくお願いします。

892blank:2011/12/29(木) 00:23:41
何とも言えんね…
ダウン追い討ちで問題が出てくるような記述ではないと思うんだけど
Var使って上手くいかないなら>>884のHitDef以外のところが悪さしてる気がしないでもない
制限解除しても妙な現象が起きるなら常時監視やHitDef以外も見直す必要があるかも

ヒット数制限付きの多段飛び道具ならProjectileでProjHitsとProjMissTime設定すればできるけど
DamageにかけてるFVar(0)やFVar(1)がリアルタイムで反映されないのが難点

893名無っしん:2011/12/29(木) 16:24:16
イントロでヘルパーをポヨンポヨンさせてparentに近づいたら999193にアニメ変更したいのですが、アニメが999193になると何故か最初の1枚目で止まってしまいます。
[Statedef 999191]
type = A
ctrl = 0
anim = 999191
velset = 1.1,-3

[State 191, 重力]
type = Gravity
trigger1 = time >= 10

[State 191, 地面に着く]
type = velset
trigger1 = pos y >= 0
x = 1
y = -8

[State 191, アニメ変更]
type = changeanim
trigger1 = pos y >= 0
trigger1 = pos x <= 40
value = 999192

[State 191, アニメ変更]
type = changeanim
trigger1 = pos x >= (parent,Pos x)-30
value = 999193

[State 191, 移動終わり]
type = velset
trigger1 = pos x >= (parent,Pos x)
x = 0
y = 0

894blank:2011/12/29(木) 18:09:59
二つ目のアニメ変更のステコンが原因かも
たぶん条件を満たしたら、自分がどのanimにいようと999193の最初に飛ぶようになってる

triggerall = anim != 999193

って入れてみたら何とかならないかしら?
違ってたらスマヌ

895名無っしん:2011/12/29(木) 20:50:08
>>894
できました!しかし今度はdestroyselfでヘルパーを消し本体のchangestateでイントロを終了させようとすると
destroyself>一瞬消える>ニュートラル、のような感じになってしまいます
どうすればいいのでしょうか

[Statedef 191];本体ステート
type = A
ctrl = 0
anim = 191

[State 191, 特殊効果];試合が開始するまではこのコントローラを使おう(※2)
type = AssertSpecial
trigger1 = 1
flag = Intro ;イントロの状態

[State 191, カメラ固定]
type = ScreenBound
trigger1 = 1
value = 1

[State 191, ヘルパーを出す]
type = Helper
trigger1 = Time = 0
name = "intro" ;ヘルパーの名前。省略すれば勝手に「(ヘルパーを出した親)'s Helper」という名前になる。
stateno = 999191 ;ヘルパーの最初に向かうステートナンバー。
pos = -123,-45
postype = p1
facing = 1 ;ヘルパーの左右の向き(1=そのまま・-1=左右反転)
ownpal = 0 ;ヘルパーの色を独立させるか否か(0=させない,1=させる)
ID = 999191


[State 191, ステート変更];アニメーションが終われば「通常立ち」のステートに変更する
type = ChangeState
trigger1 = NumHelper = 0
value = 0

[Statedef 999191];ヘルパーステート
type = A
ctrl = 0
anim = 999191
velset = ceil((parent,BackEdgeDist)-73.9),-3;1.1,-3

[State 191, 重力]
type = Gravity
trigger1 = time >= 10

[State 191, 地面に着く]
type = velset
trigger1 = pos y >= 0
x = 1.15
y = -8

[State 191, アニメ変更]
type = changeanim
trigger1 = pos y >= 0
trigger1 = pos x <= (parent,pos x) -40
value = 999192

[State 191, アニメ変更]
type = changeanim
triggerall = anim != 999193
trigger1 = pos x >= (parent,Pos x)-30
value = 999193

[State 191, 移動速度リセット]
type = velset
trigger1 = pos x >= (parent,Pos x)
x = 0
y = 0

[State 191, ステート変更]
type = changestate
trigger1 = pos y >= 0
trigger1 = vel y >= 0
value = 999193

[Statedef 999193]
type = A
ctrl = 0
anim = 999194

[State 191, 位置戻す]
type = posset
trigger1 = time = 0
value = 0,0

[State 193, ヘルパー消す]
type = destroyself
trigger1 = time = 10

896名無っしん:2011/12/30(金) 17:33:49
自己解決しました
すみません

897Azaum:2012/01/03(火) 23:00:45
マガキ(KOF)みたいな相手に対して鳥篭喰らってるときに、ある技をリバサ発動する記述を作りたいのですが
いまひとつグッと来る記述が思い当たりません。

下記3つか、それ以外を組み合わせる形式が良いのではないかとまでは考えたのですが……



◆画面上に飛び道具が一定数以上存在する。
⇒ProjectileではなくHelperに直接Hitdefを与えるタイプの飛び道具だと認識できない。
Helperの絶対数を数えればと思ったのですが、エフェクトや各種処理のために出しているヘルパーと見分けをつけようがない
ラウンド開始時のHelper数を記憶させればゲージとかの常時展開型Helperは除外して数えさせることは出来ると思うのだけれども、どうにも不確実性が高いのでゲージ技の記述には向かないのでは?


◆常時監視で「飛び道具を喰らった回数」を見張らせる
⇒記述自体は可能と思われるものの、単体では適用範囲が広すぎるので条件としてゆるいかも


◆飛び道具でダウンする(もしくは、それがn回連続する)
⇒Commonのダウンステートへ送られる時の喰らった攻撃or最初に喰らった攻撃を常時監視ステートで記憶させるようにすれば、一応は可能なはず。
が、コンボの〆に飛び道具を使うキャラとかの場合、誤認する恐れが高い?逆に弾幕張って接近してくるor起点にしてくるキャラを認識できない可能性も?




;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; 初期相手ヘルパー数確認
;━━━━━━━━━━━━━━━━
[State -2, VarSet]
type = VarSet
triggerAll = !var(57)
trigger1= RoundState = [0,1]
var(57) = Enemy,NumHelper


[State -2, VarSet]
type = VarSet
triggerAll = var(57) > Enemy,NumHelper
trigger1= RoundState = 2
var(57) = Enemy,NumHelper

[State -2, VarSet]
type = VarSet
triggerAll = var(57) < Enemy,NumHelper
trigger1= RoundState = 2
trigger1= StateNo = 0 && !Ctrl
trigger1= EnemyNear,StateNo = 0 && !EnemyNear,Ctrl
var(57) = Enemy,NumHelper


[State -2, VarSet]
type = VarSet
triggerAll = var(57) > 0
trigger1= RoundState = 4
var(57) = 0




;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; 飛び道具を喰らった回数
;━━━━━━━━━━━━━━━━
[State -3, VarAdd]
type = VarAdd
triggerAll = EnemyNear,HitDefAttr = SCA,NP,SP,HP
triggerAll = Time = 1 && Alive
trigger1= StateNo = 5000 || StateNo = 5010 || StateNo = 5020 || StateNo = 5070
var(x) = 1

これに変数リセット記述を加える




;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; 飛び道具でダウンする(もしくは、それがn回連続する)
;━━━━━━━━━━━━━━━━
記述思いつかずorz

898Azaum:2012/01/03(火) 23:05:00
投稿してから気付きました
triggerAll = EnemyNear,HitDefAttr = SCA,NP,SP,HP
これだとProjectile喰らったことを認識できないですね、本体かヘルパーがP属性のHitdef出してないと反応しないです。

ヘルパーアーマー記述みたいな飛び道具しか喰らわないヘルパーを出そうかって思いましたが、その場合ヒットスパークが2重に出てしまう;

899blank:2012/01/04(水) 00:45:18
飛び道具ヘルパーであればMoveType=Aになってる筈だから
PlayerIDリダイレクトでヘルパーのMoveTypeとTeamSideを監視すれば識別できると思う
PlayerIDは通し番号だから新しく出したヘルパーからPlayerID(ID-1)とかで参照可能


飛び道具喰らった回数のカウントなら

[State ]
Type = HitOverride
Trigger1 = 1
Attr = SCA, NP, SP, HP
StateNo = 5090
Time = -1

で飛び道具被弾時に適当なステート飛ばして

[Statedef 5090]
Type = U
MoveType = H
Physics = U
[State ]
Type = VarAdd
Trigger1 = 1
V = ***;適当なVar番号
Value = 1
[State ]
Type = ChangeState
Trigger1 = StateType = S
Trigger1 = GetHitVar(yVel) = 0
Value = 5000
[State ]
Type = ChangeState
Trigger1 = StateType = C
Trigger1 = GetHitVar(yVel) = 0
Value = 5010
[State ]
Type = ChangeState
Trigger1 = StateType = L
Trigger1 = GetHitVar(yVel) = 0
Value = 5080
[State ]
Type = ChangeState
Trigger1 = (StateType!=A)*(StateType!=L)
Trigger1 = GetHitVar(Type) = 3;Trip属性
Value = 5070
[State ]
Type = ChangeState
Trigger1 = 1
Value = 5020

で即座に本来の喰らいステートに戻せばいいんじゃない?
HitOverrideの副作用で「P2StateNo付きのP属性の攻撃」を喰らわなくなっちゃうけど
A属性やT属性は通常通りMUGENの内部処理に従って喰らい処理ができる

900ンタロウ:2012/01/16(月) 01:42:32
製作中のキャラに固有ゲージというか固有アイコンを作ろうとしたのですが、
どうしても移動するとそれが画面外へ置いてけぼりになってしまいます
ヘルパーを使っているのですが、どなたか解決方法を知っている方がいらっしゃるなら、
是非教えてください
よろしくお願いします

901blank:2012/01/16(月) 02:40:16
基本的にそういうのはExplodで作った方が楽だけど
HelperでやるならxはPosSetで「適当な数字」(FacingかTeamSideを考慮して)、yはPosAddで「適当な値-ScreenPos y」を常に実行させる
PauseMoveTimeやSuperMoveTimeを適当に大きく設定するのは当然だけど、どうしても多少のズレはでてきちゃう
あとはHelperType=Playerで出した場合(インジケーター用のヘルパーなら普通はやらないけど)はScreenBoundを0にしとくことも忘れずに

902ンタロウ:2012/01/16(月) 03:02:30
>>901
アドバイスありがとうございます!
やはりExplodの方にすべきですかね…
Explodの場合ならどのように記述すると画面内に固定になるのでしょうか?

903blank:2012/01/16(月) 23:19:10
PosTypeをLeftかRightにしてBindTimeを-1にすればいい
PauseMoveTimeとSuperMoveTimeをちゃんと設定すれば暗転中に画面が移動しても置き去りにされることもない
状況に応じて変化するインジケーターはRemoveExplodで古いのを消して新たにExplod実行する感じ

904ンタロウ:2012/01/19(木) 21:54:05
ありがとうございます!
無事ゲージを搭載できました

905blank:2012/01/19(木) 23:14:11
どうも、投げ技を作り始めて早速躓きました、鰐です。

記述は以下のような感じで、相手を後方に投げて叩きつけるのですが、
その後selfstateでstate5100に入りバウンド中の相手が、投げた側が投げ動作終了して立ち状態に戻ると同時に
投げた側の足元まで瞬間移動?して戻って(接近して)来てしまうのです
statedef716で設定しているvelXは一応活きてるようで跳ね上がるときには離れるように弾んでいくのですが
バウンドの途中で叩きつけた位置よりもやや近い間合いまでワープしてきます

どのあたりが原因でこのようなことが起こるのかわからず難儀しており
ご教授いただければ幸いです

;背負い投げ
[statedef 710]
(略)
[state 710, 攻撃判定]
type = hitdef
triggerall = (P2stateno != [150,155]) || P2stateno != 40
trigger1 = animelem = 2
attr = S,NT
hitflag = HL
priority = 1, miss
sparkno = -1
P2facing = 1
P1stateno = 711
P2stateno = 715
fall = 1
fall.recover = 0

(略)

;背負い投げ、投げ動作
[statedef 711]
type = S
movetype = A
physics = N
anim = 711
poweradd = 0

[state 711, 投げられ側座標1]
type = targetbind
trigger1 = animelemno(0) = 1
pos = 50, 0

(略)

[state 711, 投げられ側座標7]
type = targetbind
trigger1 = animelemno(0) = 7
pos = -75, -34

[state 711, 投げられ側座標8]
type = targetbind
trigger1 = animelem = 8
pos = -70, 0

[state 711, 投げダメージ]
(略)

[state 711, 投げられ側を投げられ終了ステートに送る]
type = targetstate
trigger1 = animelem = 8
value = 716

[state 711, 叩きつけエフェクト]
(略)

[state 711, ターン]
type = turn
trigger1 = animelem = 11

[state 711, 動作終了]
type = changestate
trigger1 = animtime = 0
value = 0
ctrl = 1

;背負い投げ、投げられ動作
[statedef 715]
type = A
movetype = H
physics = N
velset = 0, 0

[state 715, 投げられ動作アニメ]
type = changeanim2
trigger1 = time = 0
value = 715

;背負い投げ、投げられ終了
[statedef 716]
type = A
movetype = H
physics = N
velset = 2.2, 0

[state 716, 投げられ終了〜ダウン]
type = selfstate
trigger1 = time = 0
value = 5100

906blank:2012/01/19(木) 23:42:56
ワープならこっちのTargetBindか相手のPosSet/PosAddだろうから
TargetBindのどれかが誤作動してるんじゃない?
Trigger1 = Anim = 711を全TargetBindに付け加えても起こるかどうか確認かな

907島村鰐:2012/01/20(金) 03:02:06
早速の書き込みどうもです。
試してみましたがその方法では挙動変りませなんだ…
common1の記述との兼ね合いで変になってんのかとも思い
バウンド部分までstate716内で作って完全に倒れてからダウン状態に直接移行みたいにもしてみたんですが
それでも動作中に(投げた側が通常立ちに戻ると)posずれるんですよねー。
見た目的には(投げた側の投げモーションの)animtime = 0 をトリガーにposset(X)かtargetbindが働いてるようなんだけど…

908島村鰐:2012/01/20(金) 23:20:32
解決しました!

最初のtargetbindのトリガーを
animelemno(0) = 1(0フレーム後のアニメコマ数が1である)から
animelemtime(2) < 0(アニメが2コマ目に変わった瞬間からの経過時間が0未満である、つまりまだアニメ2コマ目に変っていない)
に変更することで解決しました。

仕様上、各アニメーションはchangestateしなければ最初にループする都合上、
animtime = 0 (アニメーションが一週終わった瞬間)にも animelemno(0) = 1 (次の瞬間にアニメが1コマ目)を満たしていると判断されるようです。
カンフーマンに倣いanimelemtime(2) < 0にするとこちらはアニメ終了時のタイミングは含まないのでtargetbindが暴発しないのでした。

奥が深い(何

909blank:2012/01/21(土) 02:30:35
今更ですけど、ステコンに
persistent=0
を付けるっていう方法でも良いんじゃないかなと思います。
これを付けたら一度しか実行されなくなりますし。

910島村鰐:2012/01/22(日) 03:22:53
調べてみました。なるほど…こんな記述追加要素もあったのですな。
ご教授有難うございます、憶えておこうと思います。

…奥が深い(また

911blank:2012/02/04(土) 12:29:32
重複する内容が非常に多いので、算数的なトリガー記述を使用して圧縮したいのですが、まるでわかりません。
理科系の人、助けてください。。。

[State 191, Helper_分身出現]
type = Helper
trigger1= time = 280
trigger2= time = 284
stateno = 10193
ID = 10193
pos = IfElse(Numhelper(10193)%2,1,-1)*88,IfElse(Numhelper(10193)%2,1,-1)*14
postype = p1
name = "Shadow"
size.xscale = 1-IfElse(Numhelper(10193)%2,1,-1)*0.025
size.yscale = 1-IfElse(Numhelper(10193)%2,1,-1)*0.025

[State 191, Helper_分身出現]
type = Helper
trigger1= time = 288
trigger2= time = 292
stateno = 10193
ID = 10193
pos = IfElse(Numhelper(10193)%2,1,-1)*33,IfElse(Numhelper(10193)%2,1,-1)*28
postype = p1
name = "Shadow"
size.xscale = 1-IfElse(Numhelper(10193)%2,1,-1)*0.025
size.yscale = 1-IfElse(Numhelper(10193)%2,1,-1)*0.025


[State 191, Helper_分身出現]
type = Helper
trigger1= time = 296
trigger2= time = 300
stateno = 10193
ID = 10193
pos = IfElse(Numhelper(10193)%2,1,-1)*33,IfElse(Numhelper(10193)%2,-1,1)*28
postype = p1
name = "Shadow"
size.xscale = 1-IfElse(Numhelper(10193)%2,-1,1)*0.025
size.yscale = 1-IfElse(Numhelper(10193)%2,-1,1)*0.025


[State 191, Helper_分身出現]
type = Helper
trigger1= time = 304
trigger2= time = 308
stateno = 10193
ID = 10193
pos = IfElse(Numhelper(10193)%2,1,-1)*88,IfElse(Numhelper(10193)%2,-1,1)*14
postype = p1
name = "Shadow"
size.xscale = 1-IfElse(Numhelper(10193)%2,-1,1)*0.025
size.yscale = 1-IfElse(Numhelper(10193)%2,-1,1)*0.025

912blank:2012/02/04(土) 14:56:04
[State 191, Helper_分身出現]
type = Helper
trigger1= time = [280,308]
trigger1= time%4 = 0
stateno = 10193
ID = 10193
pos = (Numhelper(10193)%2*2-1)*(88-55*(time=[288,300])),(Numhelper(10193)%2*2-1)*14*(1+(time=[288,300]))*(1-2*(time>292))
postype = p1
name = "Shadow"
size.xscale = 1-(Numhelper(10193)%2-.5)*0.05
size.yscale = 1-(Numhelper(10193)%2-.5)*0.05

でどうかな?
記述だけ見て纏めただけだからMUGEN上でどうなるか見てない
255文字制限は問題無い筈

913blank:2012/02/05(日) 09:18:54
上手く機能しました! ありがとうございますー

914blank:2012/02/05(日) 22:55:11
と、思ったらよく見るとtime=296で表示されるヘルパーのスケールが妙に大きい……なぜだorz

915blank:2012/02/06(月) 21:39:59
helperのdestroy条件が分からないから何とも言えんけど
8F周期で大きいヘルパーと小さいヘルパーを4F毎に交互に出すなら
Numhelper(10193)%2じゃなくてtime%8/4でやった方がいいかもね

916blank:2012/02/26(日) 10:57:28
trigger1= Asin((P2Dist Y+69+Vel Y*3+(EnemyNear,Vel Y*3)+(EnemyNear,Const(movement.yaccel)*3*3/2))/(P2BodyDist X-25+Vel X*3+EnemyNear,Vel X*3))*180/Pi = [35,45]

こちらの記述が「asin argument out of range」というエラメを吐いてしまいます。
エラメの意味は「asin()内の数値が設定範囲外です」ということだと思いますが、何がマズイのでしょうか?
ひょっとして、そもそもこのトリガーは現在の記述内容のままではエラメを吐くのみで機能していないのでしょうか?

917blank:2012/02/26(日) 14:06:32
Asinが-1〜1の間の値から角度を返す関数だから
括弧内に-1未満か1より大きい値が入ってたらエラー吐く

内容的に3F後の相手と自分の角度を返したいんだと思うけど
それならAtan(y距離/x距離)にしないと

918blank:2012/02/28(火) 21:00:14
現在位置から決まった距離を瞬時に移動させたいのですが、possetは画面を基準としているようでうまくいきません。
何のステートを使えばいいのでしょうか?

919blank:2012/02/29(水) 00:02:49
PosAdd

920blank:2012/02/29(水) 21:06:14
あっ、それの存在すっかり忘れてました
ありがとうございます

921blank:2012/03/01(木) 21:18:09
「いっしょにトレーニング」が自動ガードしてくれません・・・
Hitdefに問題があると思うのですが、どこがいけないのでしょうか。
ご教授願います。

[State 3101, ヒット定義]
type = HitDef
trigger1 = Time = 0
attr = A, HA
animtype = Back
damage = floor(182/(hitcount+1)), 12
getpower = 0
priority = 5
guardflag = MA
pausetime = 30,30
sparkno = 3
sparkxy = 0,-110
hitsound = 5,4
guardsound = 6,0
ground.type = Low
ground.slidetime = 26
ground.hittime = 26
ground.velocity = -1.3,25
guard.velocity = -13
air.velocity = 0,25
airguard.velocity = -4.5,-5
envshake.time = 8 ;攻撃を当てた場合の画面振動の処理
envshake.ampl = -40
envshake.freq = 60
p2facing = 1
fall = 1
fall.recover = 0 ;相手は空中受け身が出来なくなる
fall.envshake.freq = 178
fall.envshake.time = 15

922blank:2012/03/01(木) 23:45:18
AttackDistがいくつに設定されているかと距離に関わらずガードされないのか辺りを確認
MoveTypeはチェンステの段階([Statedef 3101]の直下)でAにしてるよね?

あと、ステ番的に超必だと思うから
PauseやSuperPasue使って止めてる間に2ヒット以上させていないかもチェック
時止め状態だと1発目の被弾で150、152、154に飛ぶけど2発目以降は
150、152、154のTime=0で受ける羽目になるからガード判定出ない

923921:2012/03/02(金) 10:56:06
すみません説明が抜けていました
自動ガードしてくれないのは空中のみです

924921:2012/03/02(金) 12:42:05
自己解決しました
SuperPanseのmovetimeの値をtimeより小さくしたら相手が自動ガードしてくれました
・・・なぜ?

>>922
次にガードしてくれなくなったときはそこを確認してみます、ありがとうございました

925blank:2012/03/03(土) 18:34:06
たびたび質問すみません・・・
相手がダウンしている時間を固定したいのですが、(AIだと何故か早く起き上がる)どうすればいいかわかりません。
(fall = 1、fall.recover = 0にはしています)
hitdefでステートを奪えばいいんじゃないかと奪ってみましたが、
相手側で指定しているダウンしたときの音が鳴らないのでムリでした。
どうにかしてダウンしているときにステートを奪えないでしょうか。
よろしくお願いします。

926blank:2012/03/03(土) 23:49:10
初めまして、よろしくお願いします。
自分もドットに興味を持ち始めたのですが…
ドット絵のアドバイスなどはドット絵板に投稿したほうが良いのでしょうか?
あそこはキャラ製作専門といった感じでアドバイスだけを貰うってのはすこし気が引けるのです。

927blank:2012/03/04(日) 21:17:04
>>925
MUGENのダウンはボタン入力で起き上がりに移行するから
それを無効化するには自前でダウンステート用意しなきゃならない
だからダウン追い討ちが重要なキャラなんかは大抵ステート奪ってる

相手の処理を優先するなら相手のステート5100を感知してからTargetStateで奪う感じになる
タッグでの巻き込みが気になるならヘルパーReversalDefで個別にTarget取得する方法もある

>>926
ドット絵に関しては実際に見て貰いながらの方が的確なアドバイスが出るかと
(製作)付けてない投稿も結構あるから右に倣えでGo

928nzunazu:2012/03/05(月) 19:14:44
とあるキャラのAIを⑨氏の講座、平成㌢氏の説明書を手本にしながら作っているのですが、
-3ファイルの[Statedef -3]って付けるとエラーが出るのですが何故でしょうか?
教えてください。お願いします。
あと、移動、ガード、必殺技はちゃんとするようになったのですが、
コンボがなかなか繋げられません。
AIにコンボするように記述するにはどうしたらいいですか?
自分はそのキャラの人操作はうまくなく、必殺技もろくに出せないぐらいヘタです。
やっぱり人操作がうまくないとAIは作れないのでしょうか…

929nzunazu:2012/03/05(月) 19:16:55
>>928
[Statedef -3]を付ける場所は-3ファイルの一番上です。

930blank:2012/03/05(月) 21:34:48
>>927
がんばってみたけど難しいです
参考にできるキャラっていますか?

931blank:2012/03/06(火) 00:11:34
>>928
各ステートには最低1個のステコンが必要だから
[Statedef -3]
[Statedef -2]
みたいになってるとエラー
それ以外が原因だったらその情報だけじゃ分からん

コンボに関してはどの技からどの技に繋げられるかを理解すれば
人操作の腕関係なく作れるよ
北斗みたく喰らい挙動にヒット数補正がかかるやつだとちょっと大変だけど

>>930
930=925でいいんだよね?
タゲステに関しては
[State -1]
Type = TargetState
TriggerAll = NumTarget
Trigger1 = Target,StateNo = [5100,5101]
Trigger2 = Target,StateNo = 5110
Value = 5111
って感じで床バウンドした時点で奪うか、Trigger1無しで5110の完全ダウンだけ奪うか
巻き込み防止は色々やることあって面倒だからあまりお勧めしない

参考キャラは分からない
基本的に自分で思いつく記述を紹介してるだけだから

932blank:2012/03/06(火) 17:10:50
皆さまレイヤ―ってどれくらい分けていますか?
アニメーションさせやすいレイヤ―を教えてください。
自分は最初一枚絵はレイヤ―ひとつで描いていたのですが、アニメーションさせるときは面倒な気がするのです。

933925:2012/03/08(木) 12:52:46
>>931
ありがとうございます。
教えてもらったステートを組み込んでみたところ、
「WARNING : PLAYER TRANING(33) IN STATE 3200 : CHANGED TO INVALID ACTION 2300」と出ました。
これは
しかしAIRファイルにはちゃんと[Begin Action 3200]があります
どこがおかしいのでしょうか?

↓CNS
[State 3101, 相手ダウンステート移行]
Type = TargetState
TriggerAll = NumTarget
Trigger1 = Target,StateNo = 5110
Value = 3200

[Statedef 3200]
type = L
movetype = U
anim = 3200
ctrl = 0
sprpriority = 2

[State 3200, ステート変更]
type = SelfState
trigger1 = Time = 200
value = 5120

↓AIRファイル
[Begin Action 3200]
5040,10, 0,0, -1

934925:2012/03/08(木) 13:13:36
これは←読み飛ばしてください

935blank:2012/03/08(木) 19:01:36
>>933
多分、TRANINGが参照してるのは、TRANING自身のanim3200なんじゃない?
[Statedef 3200]の中に

[state 3200,]
type = changeanim2
trigger1 = time = 0
value = 3200

って入れてみたら上手くいかないかな

936925:2012/03/08(木) 21:49:56
>>935
うまくできました!しかしタッグだと2人同時に当てた場合に変な挙動になる時が・・・
これは仕方ないのかな・・・

937島村鰐:2012/03/09(金) 04:18:57
どうも、鰐です。
今回地上通常投げを3キャラに搭載終了しまして、とりあえず動作できたのですが、
どういうわけか3人のうち1キャラだけ、遊戯用に使用してるMUGENが落ちるようになってしまいました。

私普段の(作業しながらの)テストプレイ用と別に、集めた大量のキャラを登録したMUGENを別にわけているのですが、
3人作ってるうちの1キャラのみ、その登録数の多いほうのMUGENで使用キャラに選んで始めると本体が落ちます。
エラーメッセージなどは無く、windowsからのメッセージ?で「winmugen.exeは動作を停止しました」となります。

簡易テスト用のもう一方のMUGENだと普通にプレイできるようなのでキャラの問題だけでもなさそうなのですが
落ちるキャラは決まっているのでキャラが無関係というわけでもなく。
何か動くことは動くが落ち易くなってしまうような記述があったりするのでしょうか。




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