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

製作お助け掲示板

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

233blank:2010/08/12(木) 07:14:23
>>232
DefenceMulSetのvalueを適当なfvar(●)で保存しておいて
232のvalueを
value = -1*floor(Helper(9000),GetHitVar(damage)*fvar(●))
にする、とか?
試したこと無いからわからない

234blank:2010/08/12(木) 11:00:49

ヘルパーステートか‐2で
常時、var(1)からvar(7)が0でない数がいくつあるかという数
を格納したいのですがおもいつきません
ヒントだけでもいいので教えてください

235あえそぷ:2010/08/12(木) 11:58:48
>>234
cns初心者で申し訳ないんだけど、これでできそうかな・・・?

[State -2,]
type = VarAdd
trigger1 = var(1) < 0 && var(1) > 0
trigger2 = var(2) < 0 && var(2) > 0
trigger3 = var(3) < 0 && var(3) > 0
・・・
trigger7 = var(7) < 0 && var(7) > 0
var(60) = 0
value = 1

var(60)へ、var(1)〜(7)が0でないとき+1してやる感じの・・・
間違ってたらごめんね(´・ω・`)

236blank:2010/08/12(木) 12:39:09
>>232
DefenceMulSetをヘルパーのステートでも実行しておけばいい
アーマーヘルパーなら常に本体と軸が重なってると思うから
HelperType = Playerで出して-2のDefenceMulSetを適用させてもおk
但し-2にある関係ないステコン全てにTriggerAll = !IsHelper付ける必要あり

>>234
Type = Null
Trigger1 = Var(x) := 0
Trigger2 = Var(1) != 0
Trigger2 = Var(x) := Var(x)+1
Trigger2 = 0
Trigger3 = Var(2) != 0
Trigger3 = Var(x) := Var(x)+1
Trigger3 = 0
Trigger4 = Var(3) != 0
Trigger4 = Var(x) := Var(x)+1
Trigger4 = 0
Trigger5 = Var(4) != 0
Trigger5 = Var(x) := Var(x)+1
Trigger5 = 0
Trigger6 = Var(5) != 0
Trigger6 = Var(x) := Var(x)+1
Trigger6 = 0
Trigger7 = Var(6) != 0
Trigger7 = Var(x) := Var(x)+1
Trigger7 = 0
Trigger8 = Var(7) != 0
Trigger8 = Var(x) := Var(x)+1

Trigger1でVarを初期化、Trigger2以降で0でない数をカウント
:=は代入で「Var(x) := Var(x)+1」はVar(x)に1を加算する
Trigger2からTrigger7にある= 0は次のトリガー読ませるため

237blank:2010/08/12(木) 14:18:08
>>235>>236
素早い回答ありがとうございます
おかげで一歩進めることができました

238blank:2010/08/12(木) 21:34:54
初歩的な質問で申し訳ないのですが、
飛び道具(Projectile)をAngleDrawで回転させる事はできないのでしょうか?

色々ためしても自キャラがくるくる回るだけになってしまいます・・・

239blank:2010/08/12(木) 21:40:26
>>238
Proj単体でそういうのは無理だったはず
現状、Helper使って表現したほうが吉かと

240愛茶:2010/08/12(木) 22:04:06
>>236

うーん、HelperType = Player入れるとダメージが入らなくなるなぁ・・・・どうなってんだろ?;

241blank:2010/08/13(金) 16:20:08
>>240
-2にある関係ないステコンに!IsHelper付け忘れてそれが悪さしてるか
DefenceMulSetにVarとか使ってるだろうからHelper側から読ませるときに
Root(またはParent)リダイレクト付けるのを忘れてるかのどっちかかな

Nomalヘルパーのまま本体のLifeAddの計算式にVar使ってもいいんだけど
万が一ステート奪われた時に-2でデバッグできるからPlayerヘルパーにした方が都合が良い
但し、本体と軸位置の違うヘルパーは相手の挙動(向き)に影響しちゃうから避けるべきだけどね

242愛茶:2010/08/13(金) 18:38:51
>>241

!IsHelperを加える関係ない-2が良くわからないので基本、全部に加えてみたら直った。
でも結局反映されないという振り出しに戻っただけ。

わけ分からんOTL

243Azuma:2010/08/13(金) 23:10:42
>>233 の方法じゃダメなんですか?
DefenceMulSetで影響された防御力の受ける数字は知らんとですが
Attack100→110に上昇させたら純粋に攻撃力1.1倍? 同じように計算できるんならですけど…

Defenceが200になってたら、lifeaddする数値が1/2されるって意味なんだから、同じようにvalueの数字乗算する記述にすればいいよーな

244愛茶:2010/08/13(金) 23:21:27
>>243

その方法が一番分かりやすいので試したいと思ってます。
ちょいとVarに関しては色々使い方に悩んで踏みとどまってるんですが・・・・。

てか、valueの保存?どやってやるんだろ・・・ちょいとサイトを連ねてるのですが・・・イマイチ感覚が働かん・・・・;

245Azuma:2010/08/13(金) 23:48:52
value=var(56)でいいんじゃないかな?
あ、悩んでる部分違います?

246愛茶:2010/08/14(土) 00:20:35
>>245

さ、さぁ・・・?ここらへんはまだ未経験ですからよくわかんない、という・・・。製作するにあたっては結構な問題だと思う;

あれ、保存するvarの数字って決まってたっけ?
つか、3種類のDefenceMulSetがあるからLifeAddも3種類に揃えなくちゃいけないのかな?

247Azuma:2010/08/14(土) 00:24:11
いや、なににどのvar(X)使おうがダイジョブですよ。
整数か否かでfvar(X)と使い分けることだけ気をつければ。

現在使ってる3種類のDefenceMulSetのトリガーを使ってfvar(X)を設定。
value=1*fvar(X)
って記述でDefenceMulSet定義するようにすればLifeAddも一個で済むハズっす。

248CaWO4:2010/08/14(土) 00:58:43
こちらでははじめまして 今さらこんな質問で恐縮ですが・・

SFFの5030番台、20にはどんな絵を登録すればいいでしょうか
KFMや一部キャラだと5040-0と同じだったりまた他のキャラだと吹っ飛びの中割だったりで
よう分からんのです

249愛茶:2010/08/14(土) 01:29:28
>>248

この程度なら・・・・。
5020番台はしゃがみ食らい、30番台は吹っ飛びアニメですね。

ここら辺は伊吹川氏が運営している無限中学校で入手できる和訳KFMあたりに詳しく載ってます。
自分もそこからスタートして苦労してます;

あ、質問とずれてたかな?
まぁ同じっぽいスプライトを導入してるのは、おそらく≪メンドクサイ≫これが理由でしょう;つか、大抵の製作者はそんな感じ(蹴
自分は製作キャラで入手できた絵の問題上、一枚絵にしてます。違和感はあんま無い。

・・・・・まぁ要するに入れるスプライトは自由、という訳です。 
20番はしゃがみ攻撃を食らってそうなスプライトを。30番は吹っ飛んでいくスプライトを入れる。
特に難しいことを気にせずした方が良いです。

問題のアニメーションはAIRで行うのでスプライトの番号は基本、フリーダム・・・・かな?(間違ってたらすまん)
整理の問題でアニメの番号と同じにするのがお勧めだけど。

>>247 >>233
作動しました。
助言ありがとうございます〜。

しかし、むっちゃくっちゃ硬くなってしまった;;;;
防御補正の記述はこんな感じ↓



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

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

[State -2,防御補正3]
type = DefenceMulSet
TriggerAll = RoundState = 2
triggerall = !IsHelper
trigger1 = palno = [7,11]
trigger2 = helper(9000),gethitvar(damage)
trigger3 = fvar(1)
value = 0.5

[State -2,ダメ補正変数]
type = Varset
triggerall = !IsHelper
trigger1 = time = 0
fvar(1) = .1

すまん、良くわからないので何か助言を;

250Azuma:2010/08/14(土) 11:21:55
アーマー関連の構造がわからんので、適宜変えてもらうしかないけど
大まかには、こんな記述でいいんじゃないの?

少数整数使い分け間違ってるかもしれないけど、その場合修整してね。


[State -2, Varset]
type = Varset
triggerall = !IsHelper
trigger1 = Life < 750
trigger1 = Palno = [1,6]
trigger2 = palno = [7,11]
trigger3 = helper(9000),gethitvar(damage);→これ>>249の記述には二重にあるのがよくわからんです。
var(0) = 2

[State -2, Varset]
type = Varset
triggerall = !IsHelper
trigger1 = palno = 12
trigger2 = helper(9000),gethitvar(damage);→これ>>249の記述には二重にあるのがよくわからんです。
var(0) = 10


[State -2,防御補正]
type = DefenceMulSet
TriggerAll = RoundState = 2
triggerall = !IsHelper
value = 1*var(0)

251blank:2010/08/14(土) 12:58:19
AI作者の方にお伺いしたいのですが、
AIを作りやすいようなCNSの作り方ってあるのでしょうか?

252CaWO4:2010/08/14(土) 12:58:40
>>249
お返事ありがとうございます!

言葉足りなくて申し訳ない グループ5030〜5032番、イメージ20番のことでした
吹っ飛びの中割でいいのかな→KFMのAIRには使われてない→でも必須スプライトだし何かしら意味が
→もしや20番だけ腰から落ちてるような絵を登録するのか?→でもKFMのAIR(ry
と悶々としてました

変に考えずにやってみるようにします ありがとうございました

253blank:2010/08/14(土) 14:33:29
>>249
まず、-2でTime=0を読み取れるのは
20とか40みたいに内部処理でChangeStateした場合などの非常に限られた場合のみね
で、FVar(1)を他で弄ってないならFVar(1)=0.1が成り立ってからはずっと
DefenceMulSet3つともTrigger3で有効になるから0.025倍のダメージになる
あと、根性値みたいに補正掛けるならLife < 750よりもLife < .75*LifeMaxの方が良い

Playerヘルパー使うってのは
Type = DefenceMulSet
TriggerAll = RoundState = 2
Trigger1 = !IsHelper
Trigger1 = (PalNo=[1,6])*(Life<.75*LifeMax)+(PalNo=[7,11])
Trigger2 = IsHelper(9000)
Trigger2 = (Root,PalNo=[1,6])*(Root,Life<.75*Root,LifeMax)+(Root,PalNo=[7,11])
Value = .5
Type = DefenceMulSet
TriggerAll = RoundState = 2
Trigger1 = !IsHelper
Trigger1 = PalNo = 12
Trigger2 = IsHelper(9000)
Trigger2 = Root,PalNo = 12
Value = .1
にして-2にあるDefenceMulSet以外にTriggerAll = !IsHelper付けるってこと
この場合はLifeAddは変えなくていい

>>233の方法使うなら
Type = DefenceMulSet
TriggerAll = RoundState = 2
Trigger1 = (PalNo=[1,6])*(Life<.75*LifeMax)+(PalNo=[7,12])
Value = FVar(x) := .5-.4*(PalNo=12)
にしてLifeAddのValueに*FVar(x)付けてCeil()かFloor()で囲えばおk
「Value = -Helper(9000),GetHitVar(Damage)」

「Value = -Ceil(Helper(9000),GetHitVar(Damage)*FVar(x))」
みたいに

254愛茶:2010/08/14(土) 19:42:28
>>250 >>253

すんません;どうしたいか、ということが欠けてました;;;

基本的に1〜6の表カラーは体力が750より下になった時にダメージを半分にする根性値にしたい。

7〜11pはそれが最初からある防御補正。(さらに1〜6pの根性値を上乗せする?)

12pはさらに堅牢になってダメージを10分の1にしつつ、さらに根性値が掛かる。
そんな感じです。

255Azuma:2010/08/14(土) 20:19:35
どの手段とるかは、ともかく
根性値の意味で使うなら、DefenceMulSetの仕様上限界あるからLifeAddと組み合わせないとダメなんだよね。
詳しくはgoogle先生で「mugen 根性値」とかで調べてくださいな

常時アーマー展開前提のキャラなら、DefenceMulSetじゃなくってLifeAdd自体を弄るべきっすな
value=Value = -Ceil(Helper(9000),GetHitVar(Damage)*FVar(x))ってしてあげる方法で

fvar(x)の代入処理は前述の通りっす。

256blank:2010/08/14(土) 21:19:41
最初の質問(>>232)がDefenceMulSetをヘルパーアーマーに適用したいって話だから
アーマー用のヘルパー側からもDefenceMulSet読ませればいいじゃんってのが>>236>>241のレス
MoveType!=Hの時の処理は別途用意してる前提で話してた

>>249のDefenceMulSet3つのTrigger1だけを拾って1つに纏めたのが>>253の3段落目
ついでにFVarへの代入もセットで実行してるけどね
でも>>254に「さらに根性値が掛かる」とあるからDefenceMulSetのValueを
Value = FVar(x) := .5-.4*(PalNo=12)-.05*(PalNo=12)*(Life<.75*LifeMax)
にすればいいかな、7〜11Pのカッコ内は疑問符打ってあるから取り敢えず無視したけど


別件だけど>>236読み返して、こんな処理しなくても普通に
Type = VarSet
Trigger1 = 1
var(x) = (Var(1)!=0)+(Var(2)!=0)+(Var(3)!=0)+(Var(4)!=0)+(Var(5)!=0)+(Var(6)!=0)+(Var(7)!=0)
でいいじゃんと思った

257愛茶:2010/08/15(日) 01:01:53
ぶっちゃけちゃんと作動してたみたい。

とりあえず、k氏改変ゴジラの強パンで115のダメージを食らう。一時期230を食らう時があった。
230の半分。つまり115は根性値として作動してたvalue = .5がちゃんと作動してたってことかな?
細かい事を散々いった挙句に作動してました〜。助言をくれたAzuma氏等、ほんと申し訳ありませんOTL

しかし、本来の問題が見えたような気がしました。

ようは1〜6pは750になるまで230のダメージを受けなきゃいけないのに、なぜか根性値であるvalue = .5がなぜか最初から起動してました。

これどうなってんだろ? 
すんません、もうしばし知恵をお借りしたいです(_ _;

258blank:2010/08/15(日) 01:33:15
結局どういう記述になったの?
記述見ないことには何とも言えない

259愛茶:2010/08/15(日) 01:45:04
>>258

アドバイスを受ける前の記述に戻しました。
結局、ゴタゴタ加えて訳わかんなくなったので;

260Azuma:2010/08/15(日) 08:49:21
今更だけど、もう一回それのっけてくれると嬉しい

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




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