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

製作お助け掲示板

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

261愛茶:2010/08/15(日) 11:38:48
とりあえず、問題の1〜6p用の記述を。

[State -2,防御補正1];防御補正1
type = DefenceMulSet
TriggerAll = RoundState = 2
triggerall = !IsHelper
trigger1 = Life < 750
trigger1 = Palno = [1,6]
trigger2 = helper(9000),gethitvar(damage)
value = 0.5

ついでに12pのも発動していないっぽい;

[State -2,防御補正2]
type = DefenceMulSet
TriggerAll = RoundState = 2
triggerall = !IsHelper
trigger1 = palno = 12
trigger2 = helper(9000),gethitvar(damage)
value = 0.1

262Azuma:2010/08/15(日) 12:18:40
trigger2 = helper(9000),gethitvar(damage)

これいらないんじゃない?

263blank:2010/08/15(日) 13:23:14
>>254で書いてる仕様にしたいならTrigger2は要らんね
あと、>>253にも書いたけどLife<750だと人数補正とかコンフィグの影響受けるし
各ユーザーが[Data]のLife変えて使う場合も影響受けるから
Life<0.75*LifeMax使った方が無難

>>254の仕様を記述化するなら
DefenceMulSetを3つ使わなくても
Type = DefenceMulSet
TriggerAll = RoundState = 2
Trigger1 = FVar(x) := 1
Trigger1 = (PalNo=[1,6])*(Life<.75*LifeMax)+(PalNo=[7,12])
Value = FVar(x) := .5-.4*(PalNo=12)-.05*(PalNo=12)*(Life<.75*LifeMax)
で防御補正3つとFVarへの格納を一纏めにできる
あとはアーマーのダメージ処理を
Type = LifeAdd
Trigger1 = NumHelper(9000)
Trigger1 = Helper(9000),GetHitVar(Damage)
Value = -Ceil(Helper(9000),GetHitVar(Damage)*FVar(x))
Absolute = 1
IgnoreHitPause = 1
で実行するだけ

264UNA-10:2010/08/15(日) 21:50:02
試しに
カットインが出る技を作成しようとしているのですが…
どうにも画像が表示されません
やはり何か間違えているのでしょうか?
;-------------------------------
[Statedef 21008,カットイン]
Type = A
Physics = N
SprPriority = 8
Anim = 21008

[State -1, NotHitBy]
Type = NotHitBy
Trigger1 = 1
Value = SAC, NT, ST, HT ,NA, SA, HA ,NP, SP, HP
Time = 1

[State -1, Explod]
Type = Explod
Trigger1 = Time = [0,20]
Anim = 21008
ID = 21008
Postype = back
Pos = 0 ,0
scale = .54,.54
Ownpal = 1
SprPriority = -1
IgnoreHitPause = 1
SuperMoveTime = 9999999
PauseMoveTime = 9999999

[State -1, Explod]
Type = Explod
Trigger1 = Time = [21,50]
Anim = 21008
ID = 21008
Postype = back
Pos = 0,0
scale = .54,.54
Ownpal = 1
SprPriority = -1
IgnoreHitPause = 1
SuperMoveTime = 9999999
PauseMoveTime = 9999999

[State -1, Explod]
Type = Explod
Trigger1 = Time = 51
Anim = 21008
ID = 21008
Postype = back
Pos = 0,0
scale = 0.54,0.54
Ownpal = 1
SprPriority = -1
IgnoreHitPause = 1
SuperMoveTime = 9999999
PauseMoveTime = 9999999
[State -1, Explod]
Type = ModifyExplod
Trigger1 = Time >= 51
ID = 21008
Pos = 0,0
scale = 0.54+(statetime-50)*0.054*.7,.54+(statetime-50)*0.054*.7
SuperMoveTime = 9999999
PauseMoveTime = 9999999

[State -1, AssertSpacial]
Type = AssertSpecial
Trigger1 = 1
Flag = Noshadow
Flag1 = invisible
IgnoreHitPause = 1
SuperMoveTime = 9999999
PauseMoveTime = 9999999

[State -1, DestroySelf]
Type = DestroySelf
Trigger1 = Time = 55
IgnoreHitPause = 1
SuperMoveTime = 9999999
PauseMoveTime = 9999999
;---------------------------------------------------------------------------

265UNA-10:2010/08/15(日) 21:58:16
続き↓技
;---------------------------------------------------------------------------
;電刃波動拳
[Statedef 3000]
type = S
movetype = A
physics = N
ctrl = 0
anim = 2000
velset = 0,0
[State 3000, 強弱]
type = VarSet
trigger1 = Time = 0
v = 53
value = 0
IgnoreHitPause = 1
Persistent = 1
[State 3000, ボタン溜め];ボタンが押しっぱなしになっている事を判断
type = VarSet
triggerall = (Anim = 2000)
trigger1 = (Time > 3)
v = 25
value = (command="denjin_hold")
supermovetime = 99999999
pausemovetime = 99999999
IgnoreHitPause = 1
Persistent = 1
[State 3000, 溜め時間];ボタンが押しっぱなしなら変数の値を増やしていく
type = VarAdd
triggerall = (Time > 3)
trigger1 = (var(25) = 1)
v = 26
value = 1
supermovetime = 99999999
pausemovetime = 99999999
IgnoreHitPause = 1
Persistent = 1
[State 3000, 超必殺技暗転時間停止]
type = SuperPause
trigger1 = Time = 1
anim = -1
pos = 0,0
sound = s0,24
time = 50
;movetime = 0
darken = 1
poweradd = -1000
;p2defmul = 1.0
;unhittable = 1
[State 3000, アニメ変更];ボタンを離すとこのアニメになる
type = ChangeAnim
triggerall = (Time > 6) && (var(26) >= 0)
trigger1 = (var(25) = 0)
trigger2 = (var(26) > 150)
value = 2001
Persistent = 0
[State 3000, 無敵]
type = NotHitBy
trigger1 = Time = 0
value = SCA
time = 9
[State 3000, 物理的なキャラの幅]
type = Width
triggerall = (Anim = 2001)
trigger1 = (AnimElemTime(4) >= 0) && (AnimElemTime(16) < 0)
player = 40,0
edge = 55,0
[State 3000, 残像]
type = AfterImage
trigger1 = Time = 0
Time = 204
PalBright = 90,90,150
PalContrast = 180,180,256
Trans = Add1
[State 3000, 残像表示時間]
type = AfterImageTime
triggerall = (Anim = 2001)
trigger1 = AnimElemTime(1) = 1
Time = 49
Persistent = 0
[State 3000, 画像の色]
type = PalFX
triggerall = (Anim = 2000)
trigger1 = (Time > 3)
time = 2
add = 10,10,255
sinadd = 10,150,250,3 ;振幅赤,振幅緑,振幅青,周期
invertall = 1 ;色を反転させる
IgnoreHitPause = 1
Persistent = 4
[State 3000, パワーゲージ増減]
type = PowerAdd
triggerall = (var(25) = 1) && (Anim = 2000) && (Time > 3)
trigger1 = (Time % 2 = 0)
value = -5
[State 3000, 軸位置]
type = PosSet
trigger1 = 1
y = 0

266UNA-10:2010/08/15(日) 21:59:56
続き2[State 3000, エフェクト];電流
type = Explod
triggerall = (Anim = 2000) && (Time > 3)
trigger1 = (Time % 6 = 0)
anim = 3007
postype = p1
facing = ifelse(Random<500,-1,1)
vfacing = ifelse(Random<500,-1,1)
pos = 0,-60
scale = const(size.xscale)*0.5,const(size.yscale)*0.5
sprpriority = 4
supermovetime = 99999999
pausemovetime = 99999999
ownpal = 1
random = 40,60
ID = 3007
IgnoreHitPause = 1
[State 3000, 音を鳴らす]
type = PlaySnd
triggerall = (Anim = 2000)
trigger1 = (Time > 3) && (var(25) = 1)
value = 0,13
channel = 1
Persistent = 8
[State 3000, 音を鳴らす]
type = PlaySnd
triggerall = (Anim = 2001)
trigger1 = AnimElemTime(4) = 0
value = 0,11
channel = 1
[State 3000,カットイン]
type = Helper
triggerall = Numhelper(21008) = 0
trigger1 = time = 0
name = "21008"
ID = 21008
stateno = 21008
postype = p1
facing = 1
supermovetime = 99999
pausemovetime = 99999
[State 3000, ヘルパーを出す];気弾の発射
type = Helper
triggerall = (Anim = 2001) && (NumHelper(2000) = 0)
trigger1 = AnimElemTime(4) = 0
name = "Denjin-Hadouken"
stateno = 2000
ID = 2000
pos = 45,-65
keyctrl = 0
postype = p1
ownpal = 1
size.xscale = const(size.xscale)*0.5
size.yscale = const(size.yscale)*0.5
IgnoreHitPause = 1
Persistent = 0
[State 3000, ステート変更]
type = ChangeState
triggerall = (Anim = 2001)
trigger1 = AnimTime = 0
value = 0
ctrl = 1
;===========================================================================
ググッたり人のを参考にした結果ココまでは、わかったけれど
何故表示されないのかがわからないので何か指摘していただければ助かります。
完成予定としてはコレで表示できれば選択色で色の変わるカットインが出来ると思うのですが…

267Azuma:2010/08/15(日) 22:32:12
どーでもいいことを一個
[State -1, NotHitBy]
Type = NotHitBy
Trigger1 = 1
Value = SAC, NT, ST, HT ,NA, SA, HA ,NP, SP, HP ;←これ[value = SCA]だけで完全無敵になる
Time = 1 ;←保険の意味で[2]にしとくと吉

268UNA-10:2010/08/15(日) 22:49:01
>>267
なるほど
カットインの
[State -1, NotHitBy]
Type = NotHitBy
Trigger1 = 1
value = SCA
Time = 2
へ変更しました。
ありがとうございます。

269blank:2010/08/16(月) 01:09:02
Begin Action 21008とそこで読ませてるスプライトの確認かな
HelperやExplodが表示限界に達していなければ
その記述で問題なく表示されるだろうし

カットイン用ヘルパーのNotHiyByはTime = -1(永続)にしてもいい
まあ21008にClsn2付けてないだろうからNotHitBy自体要らんけどね
あと、AssertSpecialはInvisibleフラグ付けてるならNoShadowフラグは不要

270UNA-10:2010/08/16(月) 02:39:48
>>269
まず
Time = 2にした所を-1に?
NoShadowは無くても良い…

Begin Action
確認?ですね〜
ありがとうございます。

271愛茶:2010/08/16(月) 11:51:37
>>263

その方法でやると異常に防御力が向上するのよ。
1pでも酷いレベルの狂レベルの;;;(エルクゥが3割減らせないレベル)
12pならまだしも、マイルド性能(といっても周りのレベル上、凶が必要だが)には
程遠いのよ;
うーん、困ったなぁ・・・・。

272blank:2010/08/16(月) 17:35:48
>>271
別のとこで同じFVar使ってたり別のDefenceMulSet用意してたりしてない?
>>263の記述だけならFVar(x)もDefenceMulSetのValueも1か0.5か0.1か0.05しか取らない筈だし
0.1と0.05も12Pの時しか取らない筈だからDisplayToClipboardで確認してみては?
あとはアーマーヘルパーの個別ステートでの処理も気になるところ

273UNA-10:2010/08/16(月) 18:18:39
>>269、267
確認してみたら
思いっきりケアレスミスでした。(ノ△・。)
協力してくれたのに、本当にすみません

私はなんと愚かな…
うっかり画像のフレームを0にしていたとは…
そりゃ出ないよねぇ…orz

274愛茶:2010/08/16(月) 19:14:09
>>272

う〜ん、fvar使うのはこれが初めてだし、他に使用してる物はないね。
DefnceMulSetも余分な物は削除してますし・・・・。

アーマーの処理?

いちよう、某所のマルパクであるが、一様。

[State -2, アーマーヘルパー呼び出し]
type = Helper
triggerall = !NumHelper(9000)
trigger1 = StateNo = 0
HelperType = Player
name = "Armor"
stateno = 9000
ID = 9000
size.xscale = 1.7
size.yscale = 1.7
postype = p1
pos = 0,0
ownpal = 1
supermovetime = 99999
pausemovetime = 99999

[State -2, アーマー中の無敵]
type = NotHitBy
triggerall = !IsHelper
trigger1 = NumHelper(9000)
value2 = SCA
time = 2

[State -2, アーマー受けした時のライフ減少]
type = LifeAdd
triggerall = !IsHelper
trigger1 = NumHelper(9000)
trigger1 = Helper(9000),GetHitVar(damage)
value = -ceil(Helper(9000),GetHitVar(damage)*fvar(1));*-1←これは関係ないの。スルーして
absolute = 1
ignorehitpause = 1

275愛茶:2010/08/16(月) 19:14:45
続き。

;アーマー

[Statedef 9000]; アーマー判定ヘルパー
type = A
movetype = I
physics = N

[State 9000, 0]; 不具合対策
type = ChangeState
trigger1 = !IsHelper
value = 0
ctrl = 1

[State 9000, 0]; 無敵
type = NotHitBy
trigger1 = Time = 0
value = SCA
time = 1

[State 9000, 0]; 投げ無敵
type = NotHitBy
trigger1 = Time >= 1
value = ,AT
time = 5

[State 9000, 0]; 透明+影消し
type = AssertSpecial
trigger1 = 1
flag = Invisible
flag2 = NoShadow

[State 9000, 0]; 本体に追従
type = BindToParent
trigger1 = 1
time = 1
facing = 1
pos = 0,0

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

[State 9000, 0]; 打撃/飛び道具を受けたらステートを繰り返す
type = HitOverRide
trigger1 = IsHelper(9000)
attr = SCA,AA,AP
stateno = 9000


いちよう、アーマー関連記述はこれで全部。

276blank:2010/08/16(月) 23:53:05
ああ、アドバイス受ける前の記述に戻したって話だから
HelperType = Player消したんだと勝手に思いこんでた

アーマーヘルパーをHelperType = Playerで呼ぶなら
>>263のDefenceMulSetを-2に置くときにTriggerAll = !IsHelper付けてね
でないとアーマーヘルパーもDefenceMulSet実行しちゃって
Helper(9000),GetHitVar(Damage)の時点で補正掛かってるのに
更にFVar(x)掛けてるから二重の補正が掛かった値をLifeAddすることになる

277blank:2010/08/19(木) 19:01:59
質問なんですが

超必にコンボ補正がかからないようにってできないのでしょうか?

コンボの〆に超必入れた場合、
コンボよりもぶっぱのほうがダメがでかくなるんです・・・

278Yes:2010/08/19(木) 19:42:19
できますよ。
たぶん
[statedef-1]にAttackMulSetを置いてコンボ補正にしていますよね。
AttackMulSetに
"その超必の最中でないときに発動"
ってトリガーを足すだけです。
stateno あたりのトリガーがいいんじゃないですか。

279はいよるこっとん:2010/08/19(木) 19:54:42
いわゆる割合ダメージ(体力の○%のダメージ)というのは可能なのでしょうか?

280Azuma:2010/08/19(木) 20:55:36
可能です。

一番簡単なのは、相手のステート奪ってLifeAddステコンを用いる方式。

281Azuma:2010/08/21(土) 17:47:19
アーマー処理の関係で
特定条件での「怯み」が発生するように専用ステートを作ろうと弄ってるのですが
現在は喰らった攻撃のヒットバック速度を

[State 3810, VelSet]
type = VelSet
trigger1= Time = 0
x =(-EnemyNear,Facing)*(Helper(15000),GetHitVar(xvel))

という形式で、認識させています…が
めくり攻撃の一部とかだと敵Facingやヒットバック速度の正負が入れ替わったりで逆方向に動くこと
タッグモードだと挟まれた状況で攻撃を喰らった場合に、やっぱり正負が狂うこと

以上2点が、バグとして発生してしまいます。
改善案等ありましたら、お願い致します。

282ケットシー:2010/08/21(土) 22:59:48
搭載予定の技が挑発以外一式揃ったのでCNSの調整に入ろうと思うのですが、永久防止の為にどのへんに気をつけるできでしょうか?

283blank:2010/08/21(土) 23:03:03
めくり判定にEnemyNear,P2Dist xあたりを使えばいいんじゃない?
タッグに関してはEnemyNear,MoveContactやEnemyNear,NumTargetを使って認識
ただ、EnemyNear,MoveContactは常時MoveHitReset使ってる相手だと読めないのが難点

どういう条件か知らないけど、怯む条件のときにヘルパーをNotHitByして
本体が直接攻撃喰らうようにできないの?
本体はHitOverrideで怯みステートに送っちゃえばいいわけだし、その方が楽なのでは?

284Azuma:2010/08/21(土) 23:18:13
>永久防止
地上空中共に最速技の発生Fを把握して有利Fを組むことと空中CできるキャラならJuggle値の可さんに気を使うこと。
&チェーンCできるなら、それも含めたキャンセルタイミングからの有利F&発生Fを考慮して。


---------------------------------------------------------------------

ジャガノのアーマーみたいにアーマー性能は継続するけど、一旦怯む的なイメージっす。
んで、更にアーマー状態では「変身」してるキャラなんですが
一定量以上のダメージで「変身したまま」怯んでアーマー状態に復帰するように作りたいんです。


>EnemyNear,NumTargetを使用
相手がP1&P3に同時に攻撃を当てた場合って混乱しませんか?
相手(p2)が自分(p1)に当てた攻撃で取得した(p1の)TargetID認識をすればいいのかな…って、できましたっけ?


>本体はHitOverrideで怯みステートに送っちゃえばいいわけだし
この設定で移行させた場合&移行先のステートで、TargetState組んでる技と干渉した場合って、どちらが優先されますか?

投げ以外で崩れない&怯み状態だけどでもアーマー維持で攻撃を喰らう設定にしたいんですが…
えっと、ここで仰っている「怯みステート」はCommonではないですよね?

285blank:2010/08/21(土) 23:57:10
相手がちゃんとHitDefにID設定していれば
EnemyNear,NumTarget(Helper(15000),GetHitVar(ChainID))でできると思う
つか必ずしもEnemyNearとは限らん(遠い方の攻撃を受けることもある)から
NumEnemy見ながらEnemy(0)とEnemy(1)両方チェックした方が良いと思う

HitOverrideで送った先がMoveType=Hでなければ相手はTarget取れないからTargetState無効
送った先がMoveType=Hなら送った先のステートを経由してTargetStateでステート奪われる
HitVel読ませたいってことはMoveType=Hにしなきゃいけないけどステート奪われちゃマズイわけね
それならヘルパーに身代わりさせといた方がいいね

286fool:2010/08/22(日) 00:46:13
mugenのカンフーマンベースに超必殺技にカットインをつけたいんですけど表示されません。何が問題なのでしょうか?


;三烈カンフー突き手
[Statedef 3000]
type = S
movetype= A
physics = S
juggle = 4
velset = 0,0
anim = 3000
ctrl = 0
sprpriority = 2
[State 3000 , face] 
type=Explod
trigger1=time = 0  
anim=4000      
pos=-100, 0    
postype=back    
sprpriority=-1
supermove=1
bindtime=10     
vel=3,0      
removetime=80   

[State 3000 , Super A] 
type=SuperPause
trigger1=Time = 0  
pos=0, -30
anim=30
time=10   

[State 3000, ステート変更]
type = Chang
nimTime = 0
value = 0
ctrl = 1

287愛茶:2010/08/22(日) 01:52:20
>>286

Explodのpos = -100,0ってところが気になった。
一旦,-100を0にして映んなかったら・・・・・わからん;(すまん・・・自分もニワカだからなOTL)

あと
type = ChangはChangeStateを書いてる途中で投稿しちゃった☆ってやつ?

288fool:2010/08/22(日) 02:25:15
>287
返信ありがとうございます。すみません最後が切れてしまっていました正しくは、
[State 3000, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
です。
ttp://ice.prohosting.com/kira004/sakusei/sakusei12.html
を参考に、そのままCNSの三烈カンフー突き手の下に
コピーして数字をいじっているのですが、表示されません。何か理解が足りないのでしょうか。

289Yes:2010/08/22(日) 03:07:31
SuperPauseを取り除いたとき
カットインが出るかどうか確認してみてください。
でないときは

SuperPauseを取り除つつ
pos=100, 100 で出るかどうか確認してみてください。

290fool:2010/08/22(日) 13:21:20
>>289
やってみましたが表示されません。airも確認してみたのですが、アニメ指定もあっていると思うのですが。
一応キャラデータを上げておきます。
ttp://ux.getuploader.com/sibu55/download/2/accelerator.zip

291blank:2010/08/22(日) 21:51:34
ヘルパーアーマーを研究しているのですが
身代わり用のヘルパーがMovetype=Iであっても常時監視でGethitvar(damage)が機能するのはなぜなのでしょうか?

292Yes:2010/08/23(月) 01:08:53
>>290
[State 3000 , face]
type=Explod
trigger1=time = 0
anim=4000
pos=100, 100
postype=back
sprpriority=-1
supermove=1
bindtime=10
vel=3,0
removetime=80
に所々に全角の空白があるので、それを取り除いてください。
各行の最後の文字の先にあります。

293fool:2010/08/23(月) 10:45:25
>>292
細かいアドバイスありがとうございます。出来ました。製作頑張ります。

294ケットシー:2010/08/26(木) 13:39:29
質問二つよろしいでしょうか?
 一つは技毎にコンボ補正率を設定したいのですが、作り方がよくわかりません。(技毎に補正率のあるキャラのCNSを開いたら変数まみれで自力で試行錯誤してたら半月は確実に飛びそう・・・・)
 もう一つは突進技に壁バウンド機能を持たせたいのですがこちらも作り方がさっぱりです・・・・。

295blank:2010/08/26(木) 16:10:19
>>294
壁バウンドならkfmに記述が有るんだぜ。って言ったら何のアドバイスにもなってませんね。
簡単に言うと、ヒット後に相手を自分のステートに引き込む必要が有ります。
HitDef のオプション設定で引き込むもいいし、 TargetState で引き込んでもいいです。
HitDef で引き込むなら P2State = ?? を付ければOKです
また、相手を引き込んだとき用にステートを新しく作る必要があるよ。
そのステートの流れ的には(kfm参考)
「ヒットポーズ→空中へ放り出される(吹っ飛び中)→壁に当たる→→壁に当たったあとに空中に放り出される」
だったはずです。
ヒットポーズの所では PosFreez 、吹っ飛び中は HitVelSet 、壁に当たった後は VelSet を使ってたはずです。
壁に当たる時に何してたかはわすれました、ごめんなさい。
他の人のアドバイスを見るか、cns見た方が速かったかもしれませんねー

技ごとの補正ですが、自分は HitDef のダメージ設定に直接変数掛けてます。
damage = Ceil(60*fvar(0)), 0
見たいな感じです。後は、-2や-3で変数に補正後の数値入れてます
[State -3, VarSet]
type = VarSet
trigger1 = MoveHit
trigger1 = StateNo = 200
vf = 0
value = fvar(0)*0.95

AttackMulSet とかでも出来ると思いますが、根性値と併用が出来るかなと思い、いつもこの方法です
コンボ補正については、自分も興味が有るので皆さんの方法が知りたいです

296Azuma:2010/08/26(木) 22:53:33
>攻撃力補正
自分はAttackMulSet形式ですね…根性値併用キャラですけどw
常時監視に条件式を複数組むのと、個々の技のステートで乗算式の補正を与える形式にしています。

細かい部分&逆根性値とカウンター判断については省きますけど、こんな感じっす。



;------------------------------------[個々の技ステコンに入れてるやつ↓]
[State 1000, VarSet_Correction Value]
type = VarSet
trigger1= MoveHit
fvar(0) = fVar(0)*0.7;←現在のコンボによる攻撃力補正が100%なら70%に、50%なら35%になるわけ
persistent = 0
ignorehitpause = 1

;----------------------------------------[常時監視のやつ↓]
[State -2, AttackMulSet_Correction Value]
type = AttackMulSet
trigger1= 1
value = 1*fvar(0)*fvar(1)*(1+0.25*var(22))
ignorehitpause = 1


fvar(0)がコンボや何やらの補正用
fvar(1)が逆根性値設定用
var(22)が「カウンターヒット時攻撃力1.25倍」用の設定

297ケットシー:2010/08/27(金) 00:29:14
>blankさん
 補正導入に成功・・・・・あれ?
なんか一部のエリアルパーツでコンボカウント続いてるのにそれ以上補正が入らなくなる?
JC→JD→JC→JDやJDJDJDでそれ以上補正が入らない?それまでの補正分は威力減ってるのになんで?
JDと同じhitdefの6Dを使うエリアルだと普通に補正入るのに?攻撃の入る間隔が開くとコンボカウントが続いても補正が入らなくなったりするのでしょうか?

298blank:2010/08/27(金) 04:26:45
お世話になっております。 宜しければご助力をいただけますでしょうか。

ただいまキャラクターに連続でヒットする技を搭載しています。
攻撃中のアニメは62枚の合計129フレームある為、以下のトリガーでHitDefを繰り返しています。
[State 3000, 6]
type = HitDef
trigger1 = time%8 = 0

しかしながら最後の一撃のみ、異なるHitDefにしたく思います。
この場合どのようなトリガーを記入すれば良いのでしょうか。
※62枚目のヒットが最後の一撃となります

299Azuma:2010/08/27(金) 08:27:13
最後の一撃が発生するアニメの枚数を参照するトリガーを追加すれば良いハズ
具体的には[AnimElemTime(62)<0]とか…んで、最後の一撃は普通にトリガーを設定する

またはステート内でのヒット数を参照するトリガーがあった気がするので、それ加えるとか

300blank:2010/08/27(金) 12:20:43
>Azuma様
返信ありがとうございます。
しかしAnimElemTime(62)<0の場合ですとアニメ毎にHitDefが入ってしまいまして
time%8のように少し感覚をあけつつ…の形が理想なんです
アドバイスくださいましたのに申し訳ない

301blank:2010/08/27(金) 12:40:50
その2つを併用すれば良いんじゃないかと思った

type = Hitdef
trigger1 = AnimElemTime(62) < 0
trigger1 = Time%8 = 1

みたいに

302blank:2010/08/27(金) 12:42:20
>>297
「それ以上補正が入らなくなる」ってのをちょっと詳しくお願いします。
与ダメが減り続けて最終的にダメージ1で止まるということですか?
それとも、途中からステートコントローラに動きが見られないということでしょうか

;---- 与ダメ1
与ダメ1なら相手がくらい状態でない(P2MoveType!=H)などをトリガーにして
変数をリセット(fvar(??)=1)にする必要があります

;---- ステコンが動かない
ステコンが動かないのであれば動作条件を見直したほうが良いかもしれません
ステート番号の指定をミスってたりしませんか?

攻撃間隔なんですが、トリガーを MoveHit にしているなら、
間隔がどれだけ開こうが攻撃が当たった時点でステコンが働くので関係ないはず


…たぶん。

私の説明のほうが間違ってたら笑えないですね。
というわけで、旧ロダに今の自分の補正方法(181.txt)置いときます

303blank:2010/08/27(金) 13:09:33
>>298
HitDefは出したら当たるか上書きされるまで有効だから
Trigger1 = Time%8 = 0で攻撃間隔設定すると
Time = 0で実行されたHitDefがTime = 7でヒットした場合
その次のF(HitPause経過後)のTime = 8で再度実行されて
8F待たずに2段目がヒットするよ

等間隔で当てたいならTriggerで制限掛けずに
Persistent = 8で制限掛けた方が良い
ただし、HitDefを2つ以上用意する場合は更に工夫が必要
最後の一撃とそれ以外で具体的にどこが異なるのか知りたい
DamageやGround.Velocity等が違う程度だったら
HitDef2つ用意しなくても計算式で処理した方が楽だから

あと、62枚目が何F持続するか分からんけど
初段の当たったタイミングによっては62枚目で当たらない可能性もあるから
8F間隔なら122〜129F目に最終打用の値を適用した方が良い

304Azuma:2010/08/27(金) 19:17:28
うん、改めて見たら[Persistent = 8]制御のがいいですね
ちなみに、これ↑は「実行後nF経過したらもう一回実行」って意味です。

>>300
「追加したら」と書いているように>>301の意味で言ったわけです。
…わかりにくかったかな

305ケットシー:2010/08/27(金) 20:19:22
>biankさん
ダメージがJC生あて 70、JDおよびJ6D 60 
打ち上げてJ6D連打 ダメージ48→40→34→29→25 と順調に減ります
打ち上げてJCとJ6Dを交互に当てると 58→48→47→40 と順調に減ります
が、
打ち上げて JD連打  48→48→48 と減らない
打ち上げて JCとJD交互に56→48→56→48 これまた減らない
打ち上げて J6D二発以降JD→48→40→34→34 っ途中から減らなくなる。
打ち上げて JDJD6J6DJ6d 48→48→48→40 J6D二発目から減りだす。

補正に関するCNS一部抜粋

[State -2, damage_reset];攻撃が途切れたら値をリセット
type = VarSet
trigger1 = p2movetype != H
trigger2 = enemy,GethitVar(hitcount) = 0
fv = 0
value = 1.0

State -2, VarSet]
type = VarSet
triggerall = MoveHit
trigger1 = stateno = 640;jc
trigger2 = stateno = 1105;6d
trigger3 = stateno = 1130;jd
trigger4 = stateno = 1140;j2d
trigger5 = stateno = 1150;j6d
fvar(0) = FVar(0) * 0.9
Persistent = 0

・・・・・・・・・・・・・・・・・あああああ[が抜けてるじゃねええか!
直してテストしたら普通に減りました。お騒がせしました。
・・・・・・・・・・あれ?でもJCJDループが減らないJCJ6Dループが減る理由は不明のまま?

306blank:2010/08/27(金) 21:01:59
>303 304
アドバイスありがとうございます。いえ私の理解不足でした、すいません。

>>最後の一撃とそれ以外で具体的にどこが異なるのか知りたい
途中までは適度な間隔で攻撃を入れる乱舞技で、最後の一撃で相手のステートを奪う形を目指しています。
Time%8 = 0と書いてはいましたが、上記のように出来れば拘りはありません。

62枚目はその技で一番最後の当たり判定があるアニメで、2フレームあります。
フレーム数はもう少し増やしても大丈夫だとは思います

307blank:2010/08/28(土) 00:08:12
乱舞技の最後にステート奪うって話なら
AnimElemNo(0)=62とMoveHitあたりを条件に
IgnoreHitPause=1付けたTargetState使えばいい

等間隔ってわけじゃないんだったら
>>303の3段落目は気にしなくていいよ

308blank:2010/08/28(土) 13:08:15
>>305
うまく行ったならよかったです、というわけではないみたいですね。
一部補正が動いてないみたいですし

IgnoreHitPause=1 が無いとヒットポーズが終わらないと動かないので…とは考えましたが、
ステートまたぐ以上動作時間は確保できると思うので、あまり関係なさそうですよね

私の方から話しかけておいて分からないで返事するのは、どうにもいただけないとは思いますが
実際ちょっと分からないです。すみません。

309blank:2010/08/29(日) 18:05:52
行った技(飛び道具)が画面の隅でもう一度行われてしまう
stateの値や順序が悪いのだろうか?

310ケットシー:2010/08/29(日) 20:23:26
挑発で出る飛び道具にエフェクトをつけようとしたのですが。飛び道具出る→飛び道具が消えてからエフェクトが出る?という事態に??

CNSは
;挑発
[Statedef 195]
type = S
movetype= A
physics = S
poweradd= 200
velset = 0,0
anim = 4100
ctrl = 0
sprpriority = 2

[State 195,エフェクト]
type = Explod
trigger1 = Animelem = 8
anim = 4001
pos = 80,0
postype = p1
facing = 1
vfacing = 1
scale = 0.5,0.5
sprpriority = 3
ownpal = 0
ontop = 1
removeongethit = 0
bindtime = 0
removetime = 75
vel = 1,0
trans = AddAlpha
alpha = 128,128


[State 195, 飛び道具];HitDefに飛び道具専用のパラメータを加えたようなものが「Projectile」
type = Projectile
trigger1 = AnimElem = 8
attr = S, SP ;立ち必殺飛び道具(Standing, Special Projectile)
damage = 0,0 ;Var(5)をここなどに代入すれば活かされる
getpower = 200,50
givepower = -1000,-200
animtype = Light
pausetime = 0,12
;-----------------------------------Projectile専用のパラメータ
offset = 80,0 ;飛び道具を発射する位置(X軸,Y軸)
velocity = 1,0 ;飛び道具の移動速度(X軸,Y軸)
accel = 0,0 ;飛び道具の加速度(float)(X軸,Y軸)
projID = 4000 ;飛び道具のIDナンバー(NumProjIDなどで判断)
projanim = 4000 ;飛び道具のアニメ(アクションナンバー)
projhitanim = 1015 ;飛び道具がヒットした時のアニメ(アクションナンバー)
projremanim = 4001 ;飛び道具が消える時のアニメ(アクションナンバー)
projscale = 0.5,0.5 ;飛び道具の大きさ(X軸,Y軸)※現在1倍
projshadow = 255,255,255 ;飛び道具の影の色合い(赤,緑,青)※現在影無し
projhits = 1 ;飛び道具のヒット数(2以上なら多段ヒットになる)
projmisstime = 1 ;飛び道具の連続でヒットしない間隔 ※projhitsが2以上の時のみ
projpriority = 37 ;飛び道具の攻撃優先度・相手のProjectileよりも高いと消しながら進む
projremovetime = 75 ;飛び道具の消えるまでの時間(フレーム)※-1なら当たるか画面外に出るまで消えない
projremove = 0

;-----------------------------------これ以外にまだまだある。docsフォルダ参照。
guardflag = MA
getpower = 0,0
priority = 7
sparkno = 2
sparkxy = 0,0
guard.sparkno = 40
hitsound = 5,3
guardsound = 6,0
ground.type = High
ground.slidetime = 15
ground.hittime = 70
ground.velocity = -5,0
air.velocity = -5,-3
air.juggle = 1 ;Projectileの場合はここで設定しないとヒットした時ジャグルが消費しない
air.fall = 1
fall.recovertime = 50
envshake.time = 20
envshake.ampl = 4
envshake.freq = 60
persistent=0 ;これでステート中一回しか発動しない。



[State 195, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
となっております。

311blank:2010/08/29(日) 22:13:54
ドットだけできてもCNSでつまずいてしまいました。
技設計とドットだけ出来ているキャラを組み立ててくれる協力者を募集します。

312Azuma:2010/08/29(日) 22:57:05
キャラ自体と、目指すクオリティの認識と、性能によるし…〆切的な物とかも考えなきゃだから
その辺を、もちっと詳しく書いて募集するといいんじゃないかなと思いまする。

>>310
自分、飛び道具詳しくないのもあって、見ても原因わかりませんでした。
まさかと思いますが、物理的に飛び道具のエフェクトが手前に表示されてて見えないとかではないんですよね?

313ケットシー:2010/08/29(日) 23:56:13
>310
 原因判明しました。飛び道具のあとにエフェクトが出るのはエフェクトを以前飛び道具消失エフェクトに振っていたアニメnoにエフェクトを登録したため。
で、飛び道具にエフェクトがかかってない件ですがbindtime = 0をbindtime = 1に変えたらちゃんとでました。

314Azuma:2010/08/30(月) 00:58:09
諸事情でヒットスパークを高解像度化せにゃならんとですが
ヘルパー式を導入して、組み込みと設定作業を行っています。

が、複数のHitdefを用意した技の2Hit目のヒットスパークが表示されません。
間違いなく原因はvar(25)にあると思うのですが、具体的に掴めません…助言等頂ければ幸いです。

記述は旧ロダにアクセスできなかったので
ttp://110.1.63.157/uploader/File/upload.cgi?s=369773890

よろしくお願い申し上げます。

315Azuma:2010/08/30(月) 00:59:35
アドレス間違えました、こっちです
ttp://www1.axfc.net/uploader/File/so/50198

316マリ夫:2010/08/30(月) 21:10:54
こんにちは。よろしければご助言下さい。

キャラの周りを不規則に(もしくはそれに近い)飛び回るヘルパーを記述することは可能でしょうか。
飛竜のウロボロスのような技を作っているのですが、演出上できたら嬉しいと思っています。

自分ではランダムの変数を使って速度を不規則にして、それに三角関数をかけて戻ってくるようにし、
速度から角度を求めてスプライトの向きを進行方向にすればいけるかと思ったのですが、
よくわからずうまくいきませんでした。

何か少しでも思うところがありましたらよろしくお願いします。

自分がやって失敗した記述の抜粋↓
[state 3032, 1]
type = varrandom
trigger1 = 1
v = 23
range = 0, 10

[state 3032, 1]
type = varrandom
trigger1 = 1
v = 24
range = 0, 10

[state 3032, 1]
type = varset
trigger1 = 1
fvar(25) = ceil((atan(vel y/vel x)*180/pi)-(90*ifelse(vel Y<0,-1,1)))

[state 3032, 1]
type = velset
trigger1 = 1
x = (var(23)-2)*sin(time/var(23))
y = (var(24)-2)*cos(time/var(24))

317マリ夫:2010/08/30(月) 21:18:00
>>314
自分もあまり詳しくはないので間違ってたらごめんなさい。
movecontactを調べてみたのですが、
「Win版では、攻撃が接触した瞬間に1を返し、以降、同じステートにいる間は、1フレームに1ずつ増加します。ただし、pausetime中は増加しません。」
だそうなので、txtの一番最初のvarsetですと1Fしか働いてないことになっているんじゃないでしょうか。

318Azuma:2010/08/30(月) 22:58:20
[State -2, VarSet_Hit Detection]
type = VarSet
trigger1= MoveContact != 1;(trigger1=!MoveContactでも同じ意味だったw)
var(25) = 2
ignorehitpause = 1

のことですよね?
MoveContactは命中してからのF数を返すはずなので、命中後1Fは発動しないで、それ以外は常に起動
つまり、2発目が命中するまでにMoveContact=1は当然、MoveContact=2とかMoveContact=3になる…ハズなのですが

どうも確認したところ「ヒットポーズ中にMoveContactが増加しない」ままに一発目が命中後
MoveContactが2発目に関わらず増加せず、再度varset[(25)=2]が発動していないみたいです。


ぶっちゃけvyn氏の記述パクって、弄りつつ理解してるとこなのですが
彼のキャラだと、ちゃんと増加してるんですよね…なんでじゃー

もうキャラデータ丸ごと上げた方が早い?

319blank:2010/08/31(火) 00:55:05
>>316
キャラの周りをって話ならRootDistを使って移動範囲を制御するか
BindToRootステコンのPosパラメータだけで動かすかのどっちかがいいかな

例えば、
Type = VarRandom
Trigger1 = Time%6 = 0
V = 23
Range = 0,20
Type = VarRandom
Trigger1 = Time%6 = 0
V = 24
Range = 0,359
Type = VelSet
Trigger1 = 1
x = (RootDist x+Root,Const(Size.Mid.Pos.x)+Var(23)*Cos(Var(24)*Pi/180)-Vel x)/6
y = (RootDist y+Root,Const(Size.Mid.Pos.y)+Var(23)*Sin(Var(24)*Pi/180)-Vel y)/6
とすると、
本体のお腹の座標を中心とした半径20ピクセルの円の範囲内を
6F毎に目標地点を変えながら移動する

スプライトの向きは、sffに登録してある向きにも依るけど
Type = AngleDraw
Trigger1 = 1
Value = -180*Atan(Vel y/Vel x)/pi+180*(Vel x<0)+360*(Vel x>0)*(Vel y>0)
で変えればいい
AngleDraw使うとAirの透過設定無効になるから
透過させたい場合はTransステコンも使う必要がある


>>318
MoveContactは大丈夫だった筈だけど、
「!=」に正確な結果を返さないやつ(Nameとか)があるから念のため
「Trigger1 = MoveContact != 1」を「Trigger1 = (MoveContact = 1) = 0」
に変えてもダメならtxtに載ってない部分が悪さしてると思う

320Azuma:2010/08/31(火) 08:14:42
うーむ、表示はされるようになったのですが2重に出てしまうな…
もうちょい調べてみます。

ダメっぽかったらフルデータ上げて聞こうっと;

321ケットシー:2010/08/31(火) 21:43:12
 特殊防御の作り方を調べるべく某キャラのCNSを除いていたら
Trigger1 = Var(17)&2
という記述がありました。この「&2」というのはどういう意味なのでしょうか?

322blank:2010/09/01(水) 17:15:22
質問させていただきます。
本体は攻撃せずにhelperのみに攻撃させた際、
ヒット数が繋がらないのですが、原因が分かる方はいますか?
※helperを呼び出す式
[State 2010, 7]
type = Helper
trigger1 = time = 8
name = "6003"
id = 6003
helpertype = normal
stateno = 6003
pos =0,0
postype = p1
ownpal = 1
facing = 1
keyctrl = 0
size.xscale = 1.5
size.yscale = 1.5
pausemovetime = 40



※helperの式
[Statedef 6003]
type = A
movetype= A
physics = N
sprpriority = 5
anim = 6002

[State 1000, 3]
type = Angleset
trigger1 = time = 1
value = 0

[State 1000, 0]
type = AssertSpecial
trigger1 = 1
flag = noshadow

[State 1000, 3]
type = Angleadd
trigger1 = time %2= 1
value = -7

[State 10001, 6]
type = Velset
Trigger1 = 1
x = 16.8

[State 10001, 6]
type = Velset
Trigger1 = Time %10= 1
y = 8.9

[State 20090,00]
type = Trans
trigger1 = 1
Trans = AddAlpha
Alpha = 256-floor(Time*30.2),256
time = 1

[State 000]
type = HitDef
trigger1 = 1
attr = A, NP
damage = 15, 3
animtype = Light
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 0, 3
sparkno = -1
sparkxy = 0, 0
hitsound = s0, 4
guardsound = 0, 12
ground.type = Low
ground.slidetime = 60
ground.hittime = 60
air.hittime = 30
ground.velocity = -3
airguard.velocity = -1.9,-.8
air.velocity = -1.4,-3
getpower = 30,30
numhits = 1

[State 20091, 7]
type = AngleDraw
trigger1 = 1

[State 20091,00]
type = DestroySelf
trigger1 = movecontact
Trigger2 = Root,MoveType = H && Root,StateNo != [120,159]
Trigger3 = !(ScreenPos X = [-100,420])
Trigger4 = !(ScreenPos Y = [-100,340])
trigger5 = time = 5

323blank:2010/09/01(水) 17:44:11
ヘルパーHitDefは、次にHitDef/Projectileが当たる前にDestroySelfすると
ヒット数表記が継続しない仕様ね

HitDefのTrigger1 = 1をTrigger1 = !MoveContact && !MoveReversedに変えて
IgnoreHitPause = 1付きのVarSetでTrigger1 = MoveContact && NumTargetを条件に
Target,GetHitVar(HitCount)をVar(x)に格納しといて
Type = DestroySelf
Trigger1 = Root,MoveType = H && Root,StateNo != [120,159]
Trigger2 = !MoveContact && !(ScreenPos X = [-100,420])
Trigger3 = !MoveContact && !(ScreenPos Y = [-100,340])
Trigger4 = !MoveContact && Time = 5
Trigger5 = NumTarget
Trigger5 = Target,GetHitVar(HitCount) > Var(x)
とすればヒット数表記継続される筈

324322:2010/09/01(水) 19:40:47
おお、出来ました!
323さんありがとうございました!

325blank:2010/09/01(水) 21:42:13
>>319
RootDistを使った範囲制御でやりたかったのでお教えいただいた記述を少し改変して試したところ、
満足のいく挙動に仕上げることができました。
ありがとうございました!

326ケットシー:2010/09/02(木) 00:04:45
ここ数日特殊ガード(BBのバリアガードの再現、専用ゲージ消費で削り無効、ノックバック増加)の作り方を調べようといろいろぐぐってるのですが・・・・誰か助けてぇぇぇorz
わかった???こと
・ヘルパーを使う?
・専用ゲージは変数で管理
 これだけ・・・・。いっそ特殊ガードなしとかも考えましたがこれがないとヴァンパイアキャラやらジョジョキャラの固めから抜けられない・・・
 どなたか作り方教えていただけませんでしょうか。

327ケットシー:2010/09/04(土) 16:38:38
>326
 削り無効およびノックバック増加できました。
で、次に専用ゲージの製作・・・の前にバーストアイコンがまだ作ってなかったので専用ゲージの試作も兼ねて記述。

;バーストアイコン
[Statedef -2]
type = Explod
trigger1 = var(8) = 0
anim = 3202
pos = 300,-200
postype = left
facing = 1
vfacing = 1
scale = 0.5,0.5
sprpriority = 2
ownpal = 1
ontop = 1
removeongethit = 0
bindtime =-1 ;0にするとエフェクトが出ない。
removetime = -1
vel = 0,0

・・・・・・・・・・あれ?出ない?3202のアニメは登録してある。posの数字がまずいのかと思って300,300とか500,-500とか入力したのに出ないからここが原因ではない?エラーは出てないのですが・・・・・

328Azuma:2010/09/04(土) 20:30:20
とりあえずtrigger1=1で、色々試してみるべき

329blank:2010/09/05(日) 11:47:18
>>327
ためしてないけど
StatedefをStateにしてみたらどうかなぁ?

330ケットシー:2010/09/05(日) 16:45:30
>blankさん
>StatedefをStateにしてみたらどうかなぁ?
 出ました!ありがとうございます。
・・・・・・・・・・・・・なんかこういうエラー出ないようなささいな記述ミスで躓くの何回目だろう

331Azuma:2010/09/05(日) 22:51:10
記述をきちっと整理しておくと、凡ミスが減ります。

というか某動画参考にサクラエディタ使えばスペルチェックとかオートでしてくれますぜ(MUGEN的に)

332Yes@ we can:2010/09/10(金) 06:15:40
ちょっと、面白い現象を見つけたので報告

windows media playerを開きその上にmugenの画面を重ねると
R19G0B20の色の部分が透明になり
下のwindows media playerの画面が見えます。

非想天則のお空のマントを擬似的に再現できますね。
メンドクサイけどw

333Azuma:2010/09/20(月) 17:56:41
技のタメ時間管理を 特定ステートでのtime = var(5)という形で記憶させ、各種設定に反映させる形式で
30F区切りで1段階タメた、と認識させてるので
タメ段階を判断させるには割り算式がいいのかなと考えた結果、エフェクトのスケール管理で

0.33+0.17*((floor(Root,var(5)/30))=3)+0.34*((floor(Root,var(5)/30))=4)

…という数式を書いているんですが
もっと短くor簡単な方式で記述or判断させる変数の扱い方ってないでしょうか?

いえ、キャラ製作上必須というわけではなく「回りくどい方式」で記述しているのであれば
テキスト容量的にも後々の改造にも、わかりやすい記述にしておきたいもので…

334blank:2010/09/21(火) 01:23:37
イマイチ言いたいことが伝わってこないけど
0.33+0.17*IfElse((Root,Var(5)=[90,150)),Floor(Root,Var(5)/30),0)
で同じ結果が得られる筈
分かりやすい記述になったかどうかは個人の感覚によるけどね

335Azuma:2010/09/21(火) 18:11:25
スイマセン、自分で読んでもカオスな文章でした;

えっと

type=varadd
trigger1=1
var(5)=1 ;最大値120、[0~29]が1段階目、[30~59]が2段階、[60~89]が3段階、[90~119]が4段階、[120]が5段階目の要領

…で、タメ時間を判断させているんですが、タメ段階に応じてエフェクトサイズを変えたいです。
エフェクトのscaleに記述した式が「0.33+0.17*((floor(Root,var(5)/30))=3)+0.34*((floor(Root,var(5)/30))=4)」なのですが

もっと短く、簡単な式があるのでしょうか?と聞きたかったです。

336blank:2010/09/21(火) 19:49:38
それだったら
0.33+0.17*(Root,Var(5)=[90,119])+0.34*(Root,Var(5)=120)
でいいんじゃない?

337Azuma:2010/09/21(火) 23:05:59
おぉ…なるほど!
別のの計算式に囚われてて、視野が狭まってたのかー

ありがとうございます!

338blank:2010/09/23(木) 13:03:51
相談させていただけますでしょうか。
2ヒットする通常攻撃があるのですが、これをキャンセルして必殺技に繋ごうとした場合、
以下のcmd記述ですと、1発目が出た時点でキャンセルされます
[State -1]
type = ChangeState
value = ***
triggerall = command = "SP"
trigger1 = statetype != A
trigger1 = ctrl = 1
trigger2 = stateno = 100  ←これが2ヒット出る通常攻撃です
trigger2 = movecontact

できればヒット(&ガードされても)2発目が出てからキャンセルがかかるようにしたいのですが
どのように記述すればよいのでしょうか。 
ご助力いただけますと幸いです。

339Yes@明日から1週間ネットできない。:2010/09/23(木) 21:43:52
1ヒット目と2ヒット目で
表示されている絵が違うなら
AnimelemかtimeをChangeStateのトリガーに加えればいいと思いますよ。

同じならHitCount(そのステート内でのヒット数を返すトリガー)
でいけます。
別に同じじゃなくてもいけます。

340blank:2010/09/23(木) 23:41:32
>>338
1段目のヒットorミスに関わらず「2段目が」ヒットorガードされなければキャンセルできないのか
「1段目・2段目どちらかが」ヒットorガードされれば2段目の発生を過ぎてからキャンセル可能になるのか
によって違う)
因みに>>339のは1段目がヒットして2段目をスカってもキャンセル可能になるから後者
前者の場合はもう一工夫必要

341blank:2010/09/23(木) 23:58:27
一段目と二段目に別のHitDefIDをつけてNumTarget(二段目のHitDefID)で解決

342Azuma:2010/09/24(金) 22:05:34
特殊敗北演出を導入したいのですが、試合を落とすことを認識できないっぽいので
セルフ設定で対戦で負けるまでのラウンド数を入れてもらう形式にしようと考えています。

[State -2, VarSet]
type = VarSet
trigger1= LoseKO
trigger1=!var(45)
var(45) = 2;←これ弄ってもらう予定、この順で記述すれば下のvar(46)用ステコン機能前にリセットしちゃうことはない…ですよね?
ignorehitpause = 1


[State -2, VarAdd]
type = VarAdd
trigger1= LoseKO
var(45) = -1
ignorehitpause = 1


[State -2, VarSet];条件がそろったら、演出スイッチをオンに
type = VarSet
triggerAll = GetHitVar(fall.kill)
triggerAll =!Var(45)
triggerAll =!NumPartner
trigger1= Life <= 0
trigger2= Life - GetHitVar(Damage) <= 0
var(46) = 1
ignorehitpause = 1


…って感じで記述したんですが、LoseKOが持続しちゃうのでアウトでした。
Q1◆「敗北した瞬間」とか「1ラウンドに1回だけ実行」みたいなトリガーにして機能するようにしたいです。


Q2◆ 敗北演出のスイッチで、もっと上手い方法があったら教えて下さい
→演出処理の都合Common5150ではなく、別のステコンへ移行させて処理したい都合、変数スイッチ式にしましたが…別の手段があるのでしょうか?

343blank:2010/09/24(金) 23:47:05
[State -2, VarAdd]
Type = VarAdd
Trigger1 = RoundState = 2
Trigger1 = Var(45) > 10000
Trigger1 = Var(45) := Var(45)-10000
Trigger1 = 0
Trigger2 = LoseKO
var(45) = 9999
IgnoreHitPause = 1
に変えて

Var(46)の方のVarSetの条件を
TriggerAll = !Var(45)
から
TriggerAll = Var(45) = 10000
に変えればいいんじゃない?

344blank:2010/09/25(土) 00:00:48
あ、書き足すの忘れてた
Trigger2 = LoseKO
の次の行に
Trigger2 = Var(45) < 10000
を追加してね

345Azuma:2010/09/25(土) 09:44:08
丸ごとコピペしてみましたが、var(46)のステコンが機能してないみたいです。
「:」使用した代入関連が絡むトリガー処理が把握し切れてないので原因も構造も理解不能orz


上の記述の場合
Trigger1 = RoundState = 2;戦闘中で
Trigger1 = Var(45) > 10000;var(45)が10001以上なら
Trigger1 = Var(45) := Var(45)-10000;var(45)-10000をvar(45)に代入する
Trigger1 = 0;トリガー1が機能しないようにする
;
Trigger2 = LoseKO;負けた瞬間以降で
Trigger2 = Var(45) < 10000;var(45)が9999以下なら
var(45) = 9999;var(45)に9999を「加算」する
IgnoreHitPause = 1

という意味であってるのかな…結果として、どういう処理なのかわかんないですけれど
「常にvar(45)の値を10001に固定する…?」ということなのかな? いや、ひょっとしてvar「add」じゃなくて「set」にする?

スイマセン、自分の頭ではこれが限界ですorz

346blank:2010/09/25(土) 12:45:22
まず、1回負けた瞬間に1つ目のVarSetでVar(45)=2になる
同じフレームでVarAddのTrigger1は成り立たないからTrigger2で9999加算されて10001になる
Trigger2にはVar(45) < 10000があるから10001になって以降はVarAddされない
次のラウンドの試合中(RoundState=2)にVarAddのTrigger1でVar(45)から10000が減算されて1になる
それ以降のラウンドでLoseKOした場合はVarAddのTrigger2で9999加算されて10000になる
Trigger2にはVar(45) < 10000があるから10000になって以降はVarAddされない

つまり1つ目のVarSetで設定した回数(この場合2回)LoseKOするとVar(45)が10000になるってこと
10000足したり引いたりしてるのはLoseKOがRoundState >= 3の間ずっと有効だから
VarAddを1回だけ実行するように制御するための処理で
10000という数字そのものに意味は無い(普通は2,3本先取だから10以上なら何でもいい)

Var(46)のステコンが機能してないというのはTriggerAll = Var(45) = 10000に変えても?
つかTriggerAll = GetHitVar(Fall.Kill)の時点でかなり篩にかけられてると思うけど、これでいいの?

347blank:2010/09/25(土) 12:48:23
あ、そうでもないか
Fall.Killは省略時1だったな

348Azuma:2010/09/25(土) 13:31:29
ふむふむ、すぐには無理ですが少し長く考えて弄って行けば理解できるかも…

あ、機能しない原因わかりました
[IntPersistIndex=59]になっていました、ラウンドまたいで機能させる変数がリセットされてちゃダメですよねw

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

349なだげつ:2010/09/29(水) 15:09:20
ドットのことでもいいでしょうか?

あるキャラをいちからD4規格で作ろうと考えているのですが、
まず何からはじめればいいのかさっぱりわかりません。
はじめるというか描きだしとかですねこの場合…。
絵板のpanda氏(カイ子の人)やJ氏(シュウの人)がやってるような
下書きとかもどうやってるんだろうかといった感じです。
それとも初心者はおとなしくD0からやったほうがいいのでしょうか?

350Yes:2010/09/30(木) 01:02:47
僕もそれ気になってた。

351wolf:2010/09/30(木) 19:10:50
同じ初心者の意見なんで参考になるかはわかりませんが、
自分も改変からじゃなくてD4からスタートしました。

とりあえず始めたのが、
①お絵かきツールで ナナーマン みたいな丸と線だけの棒人間に、とらせたい格好を書く
②棒人間をカンフーマンの立ち絵に登録して大きさを確認
③棒人間にそれっぽく肉を付けていく
④肉をつけたあと、服やら髪やら目をつけていく
⑤適当に影つけ
⑥ドット絵板に投稿して意見をもらう
って感じでした。

とりあえず悩んでてもなにもはじまらないので
どんな落書きでもいいので書いてみる事をおすすめします。
初めてMUGENで書いたキャラが動くときはマジで感動ですよ!

352wolf:2010/09/30(木) 19:12:29
>351
②の大きさを確認ですが、
MUGENでの大きさを確認って意味です!

353島村鰐:2010/09/30(木) 23:32:08
D4キャラ描きの端くれなので私の場合をば。
アナログというもアナクロな私の場合はまず全て紙の上に下描きしまして、それをスキャナで取り込み→写真屋で着色といった形で作業してます。
アニメの中割なんかも基本的には全部紙の上で出来上がってます(一部そうではない部分もある)。
これだと着色のやり方も普通に画材がツールに置き換わるだけに近い感覚になるので、絵を描くこと自体に慣れているなら割と楽かと。

この場合問題になるのは絵のサイズ。
作業の手間も減りますしそもそもあんまり細かい絵は必要ないのでメモ帳みたいな小さな紙に描くといいのですが、
それでも取り込み直後では大きさがでかいのでゲーム素材として適当な大きさに縮小する必要があります。
キャラの絵の大きさは結構ゲームによってもまちまちなので画面に対するキャラの大きさの比率は好みで。
D4キャラの場合、身長○ドットに対して画面の大きさは縦480×横640ドットです。

354blank:2010/10/03(日) 11:43:21
PlaySndの記述で
+Random%2ってのを見つけたのですが、これはどういう意味なのでしょうか?

[State 210, PlaySnd_Voice]
type = PlaySnd
trigger1= Time = 4
trigger1= Random < 500
value = 15, 3+Random%2
channel = 0

って感じの使い方をされていたのですが…

355blank:2010/10/03(日) 13:39:57
殺意リュウのKOボイスみたいに格好いいエコーをかけたいんですが
SoundEngineFreeを弄りましても、知識が浅すぎてサッパリわかりませんでしたorz

音声加工に詳しい方いらっしゃいましたら、ご教授願います。

356愛茶:2010/10/04(月) 00:47:50
一応、自分が使ってるのはAudacity 1.3 Beta (Unicode) って奴なのだが・・・。
これが色々と加工ができるし、音声をピンポイントで書き出せたりして結構便利。
エコーはこれでもできるような気がする。
まぁ簡単な操作でできるから、あと、注意点は再生を一時停止させると書き出しできないからそれ注意。

MUGENの記述でもできるんだっけ?w知らんし、手前は元の音源改造しちゃう派だからね。

357blank:2010/10/04(月) 02:39:44
>>354
3 + randomを2で割った余り
%2だとrandomが偶数なら0、奇数なら1となる
だったはず

358blank:2010/10/05(火) 18:12:36
>>357
ありがとうございます!

359デグレ:2010/10/09(土) 09:06:48
リンクの歩きがどうしてもうまくいきません。
どうすればいいのでしょうか?
一応トワプリのトレースをいろいろ試しているのですが、
中々うまくいきません。
スマブラからのトレースも考えたのですが、
出来る限りトワプリに近づけたいしスマブラには後退がないし・・・で
今保留状態です・・・・。

360blank:2010/10/09(土) 23:52:18
まず「歩き」に関して躓いてるのだけは分かるけど、その文章じゃ抽象的過ぎてお助けできないと思う
「スマブラ」は兎も角「トワプリ」とか言われても知らない人は何なのか分からないし

ドットに関してなのかcnsに関してなのか
前者なら試作gifでも絵版に貼り付けて意見求めた方がいいし
後者ならどういう記述でどういう動作になってどこが意図と違うのかを書かないと
まあニュアンス的に前者だとは思うから、絵版へGoかな




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