レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
製作お助け掲示板
製作で困ったことがあれば
質問をどうぞ
どんな初歩的な質問でも
キャラ製作の先人達がやさしくお答えいたします。
ただし教えてくれた内容が間違っていても怒らないように。
だれにでも間違いはあります。
ココで得た知識を吸収し、教える側に回れるように精進しましょう。
また
先人達も知識がさび付かないように、理解をより深めるために
お互いに知識を出し合い、高め合いましょう。
質問です。
Helperでガワ作ってProjに判定を持たせる方式の飛び道具なんですが
1.ブロッキングされない飛び道具って可能ですか?(投げ判定にしてしまう…程度しか思いつかない)
2.無敵状態の相手に攻撃を当てる手段は、当て身でステートを奪う以外にあるのでしょうか?
→NotHitBy=SCA または 判定そのもののない相手
3.HitDefAttrに「P」のある攻撃をすり抜ける飛び道具は可能なのでしょうか?(Clsn2判定を与えなければOK?)
Yesさん、painさん検証の程ありがとうございます。
とりあえずpainさんの指摘を試しに入れてみましたが、やはり上手くはいかないです。
projcancelanimに2フレーム程のものを入れて、別IDのものを用意したところ、更に挙動不審になりまして。
具体的に言うと、何故か1つ置き毎にどこかの弾が消えます。何この謎現象…
ただ、この実験をやっていて気付いたこと。
1フレーム毎に放出する今回の様な弾。これのprojremanimに適当なanimを設定すると
綺麗な軌跡が演出できる。…それだけ。
>>49
1.無理です。僕が知っているブロッキングの記述相手だと無理なはず。
2.ないです。あればオメガトムハンクスが雑魚キャラ扱いですよ。多分まだ開発されてないと思います。
3.可能です。Clsn2判定を与えない他に、消されたらまたでてくる記述を書けば大丈夫です。
Helperでガワ作ってProjに判定を持たせる方式の飛び道具ならそれが可能(やりやすい?)です。
>>48
「そのやり方僕も思いついたんですが、
projremovetimeが過ぎるとprojcancelanim(の表示時間)を無視して消滅してしまうので成り立たないです。
キチンと検証していませんが、ganさんの記述をいじっているときはそうなりました。」
って書こうと思ってちょっと検証したら‥
projcancelanim(の表示時間)を無視しない、上手くいく。
ついでにP攻撃でかき消すのは相殺扱いにならないことが判明。(ずっとP攻撃でやっていた。)
IDさえ上手くとればもしかしたら上手くいくかもしれません。
painさんのIDのとり方を参考にもう少し考えてみたいと思います。
>>51
おぉ!さすがYesさん!私も実際に搭載して試してみたんですが、さっぱりでした。
一方的に消せてたはずのproj式の飛び道具すら何故かすり抜けるようになるという怪現象が起こりましたw
あと、実際やってみて思ったのは、
4、は48のやり方より偶数フレーム時にnumprojid(奇数の弾のid)=1、奇数フレーム時にnumprojid(偶数の弾のid)=1
でprojcancelanimが発生してるかどうかを判断する方が良さそうですね。
できました!
攻撃判定を持ったProjectile(弾1で言うところのvar(2) = 0のやつ)に
trigger1 = root,NumProjID(そのProjectileのProjID) = 0
をくっつけ
hitflagからPを抜きます
消滅アニメーションを1F(4Fまでなら弾がカクカクにならないと思われる。)
相殺アニメーションを2F(消滅アニメーション+1)
にします。
varadd
でvar(かぶらない適当な数字:A)を
攻撃判定を持ったProjectile(var(2) = 0)が出現したと同時(トリガー同じでNumProj = 1)に
1Fずつ増加させます。
そうしたら
varset
var(A) = 3 (projRemoveTime + projremanimの表示時間 では到達しないが projRemoveTime + projcancelanimの表示時間 だと到達する値)
で
var(2) = 1
これでできますよ!
IDもいじらなくていいので簡単
5個出したときはまだ試していないですが多分大丈夫!
おまけ
projpriorityが相手と違う場合
P攻撃と同じく相殺(cancel)ででもなく消滅(remove)でもなく除去(パッと消える)する、されることになります。
除去した場合、相手のProjectileを一方的にかき消し
除去された場合、相手のProjectileをすり抜けます。
また
projpriorityが相手と同じ場合でもすり抜けが起きる場合があります。
これは単純に
相手の喰らい判定とこちらの攻撃判定の長さの合計(ドット)が
相手のProjectileを基準にしたこちらのProjectileの相対速度を下回るときです。
ありえなさそうに思えますが、scalが小数になっていたりするとありえなくも無いです。
>>51
ありがとうございます。
なるほど、とすると演出で誤魔化すかな…
ブロッキング不可は原作再現不可能なのかー
>>53
で、出来たのか!Yesさんありがとうございます!
時間が出来次第、試してみたいと思います。
これでhelper数に優しい弾幕が作れる!
どもです。
>>30 >>40 >>41 >>42
>ヘルパー数
1回に3つの弾が出る射撃で、ここでまずヘルパー3つ。
追尾型の射撃で相手の背後に回り込むことがあるんで、Turn使ったガード用のヘルパーをそれぞれに重ねていてここでも3つ。
なんかこれは減らせない気がするんで、ここよりもただのエフェクトなのにヘルパーで表示してる箇所とかを修正するべきかなと思いました。
ぼちぼちやってきます…。うん…ぼちぼち。
>AI
とりあえずニコMUGEEwikiのランク付けページの強キャラ当たりを目安にしてこと思います
ウサギくんにそれだけのポテンシャルがあるかという点と、私にそれだけのものが作れるかということを置いといて
AIって難しいですね…ドット描いてるほうが楽しいー新キャラのドット進んでないー
現在投げ製作中なのですが相手によってさかさまになったり空中で横になったり対応がばらばらです??
;カンフースルー:相手側1(掴まれて放り投げられるまで)
[Statedef 820]
type = A
movetype= H
physics = N
velset = 0,0
[State 820, 相手のアニメ変更]
type = ChangeAnim2
trigger1 = Time = 0
value = 820
[State 820, 相手ステートに戻す]
type = SelfState
trigger1 = !GetHitVar(IsBound) ;(※3)
value = 5050
このへんは別にいじってないのですが??どなたかアドバイスお願いします。
>>57
ChangeAnim2で相手にこちらのアニメを参照させてるから
自分のairファイルいじらないとダメなんじゃね?
座標y軸指定が30だったのを-30に直したら同キャラやネコアルクはちゃんとするようになりましたが・・・・
すいかやらレナやらは逆さまのまま・・・・・。
>>57
AIRファイルの820グループに登録してるのは「5000-0][5000-10][5030-0][5030-20]です。特に左右反転などの指定はしていません。
うーん、どういう投げを想定しているかがわからないけど、投げとか相手にアニメ参照させて何かするときは
airファイルには5001とか5002とかの体や頭を中心にしたやつをつかって、
細かい位置指定はCNS内のTargetBind使うといいかも。
じゃないとKFMとかD0キャラ相手にうまくいってもD4キャラ相手の時にずれてしまう場合がある。
単純にその相手のキャラのスプライト登録ミスとかの場合もあるけど。
>>56
>Turn使ったガード用のヘルパーをそれぞれに重ねていてここでも3つ。
この部分もしかしたら減らせるかも。
>>57
以下の質問に答えてください。
>逆さまのまま
想定しているものの上下反転ですか?
それとも180度回転ですか?
>座標y軸指定が30だったのを-30に直したら同キャラやネコアルクはちゃんとするようになりました
座標y軸指定←これtargetbaindのyの値のことですよね。
30だったときは同キャラやネコアルクは逆さまでしたか?
>Statedef 820
逆さまになるのはこのstateにいる間ずっと逆さまで、stateを抜けると元に戻る
ということでよろしいですか?
>相手によってさかさまになったり
おかしなことになる相手に別のキャラ(特にkfm)で投げを行った場合
おかしなことになりますか?
>>61
>想定しているものの上下反転ですか?
>それとも180度回転ですか?
180度回転です。こっちの顔の前に相手の顔が来るはずがお尻が前に・・・。逆さに吊るしておしりぺんぺんとかどんなプレイ・・・
>30だったときは同キャラやネコアルクは逆さまでしたか?
地面に叩き付けれていました。
投げ全体のイメージとしてはまるるんみたいに相手をつかんで数回叩いてから放り投げるようなイメージです。
>>62
なるほど
相手をつかんでいるときに、逆さまになってしまうキャラがいるということですね。
‥原因が想像も付かない。
おかしくなるキャラのSFFの「5000-0][5000-10][5030-0][5030-20]を見てみて
原因がなさそうなら
掴まれている側ではなく掴んでいる側の記述を見せてください。
>座標y軸指定が30だったのを-30に直したら同キャラやネコアルクはちゃんとするようになりました
ここもうチョイ詳しく教えてください。
30だったときは同キャラやネコアルクは逆さまでしたか?
すみません
>>座標y軸指定が30だったのを-30に直したら同キャラやネコアルクはちゃんとするようになりました
>ここもうチョイ詳しく教えてください。
>30だったときは同キャラやネコアルクは逆さまでしたか?
この部分の書き込みは無かったことに。
>掴まれている側ではなく掴んでいる側の記述を見せてください。
改行多すぎ表示が出たので分割ですが
;カンフースルー:掴み
[Statedef 800]
type = S
movetype= A
physics = S
juggle = 0
velset = 0,0
ctrl = 0
anim = 800
sprpriority = 2
[State 800, ヒット定義(投げ用)]
type = HitDef
trigger1 = AnimElem = 2
attr = S, NT ;立ち通常投げ(Standing, Normal Throw)
hitflag = M- ;マイナスが付加されてるので相手が食らい中の時は掴めない
priority = 1, Miss
sparkno = -1 ;-1だからヒットスパークは表示しない
p1sprpriority = 1
p1facing = 1
p2facing = 1
p1stateno = 810
p2stateno = 820
guard.dist = 0 ;相手のガード態勢に入る距離を0にしてるので、ガード不可
fall = 1
[State 800, ステート変更]
type = ChangeState
Trigger1 = AnimTime = 0
value = 0
ctrl = 1
続きそのです。
;カンフースルー:成功(放り投げる)
[Statedef 810]
type = S
movetype= A
physics = N
anim = 810
poweradd = 60
[State 810, 変数];「holdback」のコマンドが入力されているかどうかを判断する
type = VarSet
trigger1 = Time = 0
var(2) = command = "holdback"
[State 810, 音を鳴らす];ぺしぺし用
type = PlaySnd
trigger1 = AnimElem = 2
trigger2 = AnimElem = 3
trigger3 = AnimElem = 4
trigger4 = AnimElem = 5
trigger5 = AnimElem = 6
trigger6 = AnimElem = 7
trigger7 = AnimElem = 8
value = 0, 0
[State 810, 音を鳴らす];ぺちん用
type = PlaySnd
trigger1 = AnimElem = 15
value = 0, 4
[State 810, 掴んだ相手の位置1];TargetBindで相手を一時的に拘束
type = TargetBind
trigger1 = AnimElem = 1
trigger2 = AnimElem = 3
trigger3 = AnimElem = 5
trigger4 = AnimElem = 7
trigger5 = AnimElem = 9
trigger6 = AnimElem =11
trigger7 = AnimElem = 13
pos = 30, -30 ;自分の軸位置から相手の軸をX=28・Y=10の位置にする
[State 810, 掴んだ相手の位置2];TargetBindで相手を一時的に拘束
type = TargetBind
trigger1 = AnimElem = 2
trigger2 = AnimElem = 4
trigger3 = AnimElem = 6
trigger4 = AnimElem = 8
pos = 25, -30 ;自分の軸位置から相手の軸をX=28・Y=10の位置にする
[State 810, 掴んだ相手の位置3];TargetBindで相手を一時的に拘束
type = TargetBind
trigger1 = AnimElem = 10
trigger2 = AnimElem = 12
trigger3 = Animelem = 14
pos = 32, -30 ;自分の軸位置から相手の軸をX=28・Y=10の位置にする
さらに続きです(長文失礼します)
[State 810, 振り返る];Var(2)が有効な時
type = Turn
trigger1 = var(2)
trigger1 = AnimElem = 1
[State 810, 軸位置移動];Var(2)が有効な時
type = PosAdd
trigger1 = var(2)
trigger1 = AnimElem = 1
x = -37
[State 810, 掴んだ相手の向き];Var(2)が有効な時
type = TargetFacing
trigger1 = var(2)
trigger1 = AnimElem = 1
value = -1
;相手が食らい状態の時のみ機能するTarget系コントローラ
[State 810, 掴んだ相手のライフ増減]
type = TargetLifeAdd
trigger1 = AnimElem = 2
trigger2 = AnimElem = 3
trigger3 = AnimElem = 4
trigger4 = AnimElem = 5
trigger5 = AnimElem = 6
trigger6 = AnimElem = 7
trigger7 = AnimElem = 8
value = -8
[State 810, 掴んだ相手のステート変更]
type = TargetState
trigger1 = AnimElem = 15
value = 821
[State 810, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
わかりました。
”解決法”
[Statedef 820]の
SelfStateのTriggerを変更してください。
原因を説明しますと
targetのstateが820にくると
間髪居れずにSelfStateが発動し
targetのstateが5050に移ってしまう
キャラによって5050番stateのアニメーションは
上を向いたり下を向いたりしているため
このような現象が起きたということです。
gethitvar(isbound)なんて便利なTriggerがあるなんて知らなかったです。
何かに使えそうだから覚えておこう。
バグの発生を抑制するのに使えそうだ。
gethitvar(isbound)
⇔(意味)
targetbindで拘束している場合1
そうでないなら0
訂正
:targetbindで拘束している場合1
↓
:targetbindで拘束されている場合1
>”解決法”
>[Statedef 820]の
>SelfStateのTriggerを変更してください。
triggerをAnimTime = 0に変更したら解決しました。ありがとうございます。
ただGetHitVerトリガーの使い方がまだよくわからなかったりしますが(targetbindをAnimElemTimeじゃなくてAnimElemでトリガーしたのがまずかったかな?)
targetbindは有効時間の設定を省略すると
有効時間は1Fになります。
またAnimElemは
trigger1 = AnimElem = 2
のような書き方の場合
”現在のアニメが2枚目に切り替わった”
というトリガーです。
現在のアニメの2枚目の表示時間が4Fだった場合
1F目は条件を満たし、残りの3Fは条件を満たしません
この2点からtargetbindの効果が途切れ
trigger1 = !GetHitVar(IsBound)
が満たされた。
ということです。
だから、
trigger1 = AnimElem = 2 ;現在のアニメが2枚目に切り替わった
を
trigger1 = AnimElem = 2, >= 0 ;現在のアニメが2枚目に切り替わってからず〜と
trigger1 = AnimElem = 3, < 0 ;現在のアニメが3枚目に切り替わっるまで
にすれば
現在のアニメが2枚目の間、というtriggerになります。
‥AnimElemTimeの方が簡単ですね。
>>71
丁寧な説明ありがとうございます。trigger1 = !GetHitVar(IsBound)でもちゃんとなげられました。
初心者が質問です。
飛び道具の発射位置やヘルパーの出す位置をランダムにすることは可能でしょうか?
もし可能なら教えていただきたいです。
可能です。ヘルパーの発生ステートのposの部分を、
[State xxx, 1]
type = helper
trigger1 = 〜
name = "myhelper"
ID = xxx
postype = p1
pos = 0+random%10,0
例えばこうすると、この場合p1の前方0〜9ドット目にランダムで発生します。
random%10は「0〜999を10で割った余り」という意味です。
>>73
randomを使えば0〜999までの、その名の通りランダムな数字が出る。
それを使って、例えば基準のx座標から±10の位置に出したいなら
pos = (基準のx座標)+(random-499)/50, (基準のy座標)
とかにすれば良い。
pos = random, random
みたいにすると、本当にどこに出るか分からないし(画面の大きさを考えると大体8割方画面外に出る)、
出る位置はある程度制限した方が良いけどね。
数式に関しては自分で考えてとしか言えないけど。
>>74
>>75
うまくいきました。ありがとうございます。
これってダメージに乱数を設定する時とかにも使えそうですね。
便利なので覚えておきます。
大きさを弄ってみた〜とかでいろいろな大きさを見かけるんですが、もとの画像を自在に変更できるんでしょうか?
極端なことだと0.001倍とか100倍とか0.8756倍とか
できます。
CNS最初の定数記述の項目にてscale設定があるので、XYそれぞれの数字を変えればOK
>Azumaさん
ありがとうございます。
削らずにすんでよかった・・・。
ちなみに 0.5倍や0.25倍etc以外の縮尺だとドットが荒れるので注意が必要っす。
望みの倍率にかえればどれくらい荒れるのかKFMのSFFを一枚差し替えて試そうとしたら色がおかしくなったり、
新しくSFFに一枚だけ0_0を登録してもairやcnsが〜みたいなエラーがでてできませんでした。
作製動画とかで一枚だけでも表示させているのを見かけるのですがどうすればできるのでしょうか?
初歩的なことだと思いますが教えて下さい。
>>81
>>78 でAzumaさんが言ってるのは、
カンフーマンのフォルダの中にある
kfm.cns の記述を書き変えるやり方だよ
xscale = 1
yscale = 1
の 1 を他の数字に置き換えればサイズを変えられるよ
このやり方の場合はsffを弄る必要はないね
ただこのやり方だとキャラそのものの大きさが変わるので、
キャラの当たり判定や攻撃判定まで変わっちゃうので注意!
>あえそぶさん
xscale = 0.4、yscale = 0.4でだいたい自分の望んでいた大きさになったのでが、もともとKFMに使われていない色のためか配色がぐちゃぐちゃになっていました。
その時は大きさを変えられたということで満足していたのですが、Azumaさんが0.5や0.25etcだと・・・
とおっしゃっていたので荒れていないか見てみたくて質問しました。言葉足らずでした申し訳ない
よくわかんないけど、縮尺変えるだけでは色に変化なんか出ないですよ?
色化けならSFFかAct側弄った以外では発生しません。
>>83
MCMをお使いですよね。
新アップローダーの[file106.zip]を落としてキャラとして登録してください。
そのキャラのsff 10000-0番(一番最後のやつ)と画像を差し替えるだけで
色化けせずに表示されます。
MCMで色化けと戦うのはかなり厳しい!
僕は折れて違うツールでやってます。
>Azumaさん
どう説明したらいいのかよくわかりませんが、大きさいじったときでなく画像を入れ替えたときの変色です。
>Yesさん
MCMです。やってみましたが変わりませんでした。色化けではないのでしょうか?1からSFFを作った時は変色しなかったんですが、入れ替えたら・・・
初心者にMCMはきびしいでしょうか?
新ローダーのfile107.gifになったものを貼ったので気づいたことがあればお願いします。
MCMで
スプライトの置き換えを選ぶと
イメージの読み込みの、小ウインドーがでるじゃないですか。
その小ウインドーの左下に
オプション
□共通パレット
□クロップイメージ
ってのがあります。
この □共通パレット のチェックをはずしてから
読み込みを行ってください。
>Yesさん
できました有難うございます。
Azumaさんもあえそぶさんもありがとうございました。
必殺技の製作にかかったらいきなりエラーが出ました。
Error massege:Invalid
Error parsing Hitdef
Error parsing[State 1000 q b g i`1]
Error in[Statedef 1000]
Error in kfmb\cns
Characterversion is older than this version of MUGen
Error loading chars/kfml/kfm.def
Error loading p2
と表示されました。これAirファイルにも問題があるということでしょうか?
ちなみにCNSは以下の通りです。
;レイジング肉球
[Statedef 1000]
type = S
movetype= A
physics = S
juggle = 1
velset = 0,0
ctrl = 0
anim = 1000
poweradd = 30
sprpriority = 2
facep2 = 1
[State 1000, 音を鳴らす]
type = PlaySnd
trigger1 = Time = 2
value = 0, 2
改行多いので分割書き込みします。
[State 1000];無敵の状態を作る
type = NotHitBy
trigger1 = Animelem = 1
value = SCA
time = 9 (これで9フレーム目まで無敵って意味になってるでしょうか?)
[State 1000, ヒット定義1]
type = HitDef
trigger1 = AnimElem = 2
attr = S, SA
damage = 90,5
animtype = Up
guardflag = M
hitflag = MAF
priority = 7, Hit
pausetime = 10, 10
sparkno = 0
sparkxy = -10, -30
hitsound = 5, 0
guardsound = 6, 0
ground.type = High
ground.slidetime = 3
ground.hittime = 10
guard.hittime = 20
ground.velocity = -20,-10
airguard.velocity = -6,-2
air.type = Up
air.velocity = -1.4,-3
air.hittime = 45
fall = 1
air.fall = 1
fall.xvelocity = -2.4
down.bounce = 1
[State 1000, ヒット定義2]
type = HitDef
trigger1 = AnimElem = 3
trigger1 = AnimElem = 4
trigger1 = AnimElem = 5
attr = S, SA
damage = 90,3
animtype = Up
guardflag = M
hitflag = M-A-
priority = 7, Hit
pausetime = 10, 10
sparkno = 0
sparkxy = -10, -30
hitsound = 5, 0
guardsound = 6, 0
ground.type = High
ground.slidetime = 3
ground.hittime = 10
guard.hittime = 20
ground.velocity = -20,-10
airguard.velocity = -6,-2
air.type = Up
air.velocity = -1.4,-3
air.hittime = 45
fall = 1
air.fall = 1
fall.xvelocity = -2.4
down.bounce = 1
[State 1000, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
以上です。どなたか助言していただければ助かります。
えっと ヒット定義1の
air.type = Upを
ハイかローとかにかえると直るかも
自分のcns久々にいじってたら変数だらけで
よくわからないです
当時なにがやりたかったのか覚えてない
文字化けから見てヒット定義1の所に問題があるみたいですが…何だろう。
ヒット定義1の所を丸ごと消してもエラーは出ますか?
後、エラーとは関係ないと思いますがヒット定義2の所。多分多段ヒット技にしたいんでしょうけど、このままだと
コマ番号が3、且つ4、且つ5であるという条件になるので、まず成立しません。なので
trigger1 = AnimElem = 3
trigger2 = AnimElem = 4
trigger3 = AnimElem = 5
と直した方が良いかと。
>ganさん
>ヒット定義1の所を丸ごと消してもエラーは出ますか
エラー出なくなりました。通常技の製作で「基本的な技のCNSはばっちりだぜ」とか思ってた自分が恥ずかしくなりました。
カンフーアッパーを元に1行ずつ足していくことにしました。
>コマ番号が3、且つ4、且つ5であるという条件になるので、まず成立しません。なので
うわあ・・・・・・何やってんだろ私。
アドバイスありがとございました。
KO負け時のボイスを複数使うにはどうすればいいでしょうか?
喰らった攻撃が飛び道具か否かで判断をさせたいのですが
trigger1= EnemyNear,HitDefAttr = SCA,NA,SA,HAで、打撃判断は出来る(ストライカーの場合機能しない)のですが
trigger1= EnemyNear,HitDefAttr = SCA,NP,SP,HPにしちゃうと本体の攻撃が飛び道具判定というのにしか反応しないので
この場合のリダイレクトキーって、何を使えば良いのでしょうか?
ヘルパーHitdef.Attr=P系、プロジェク型飛び道具両方とも反応させたいのですが…
>>95
Sndの11-0に何も登録しないで、自分でKO時に鳴るようトリガーを設定したPlaySndステコンを常時監視にでも複数組み込めばOK
既存のトリガー、リダイレクトキーじゃ無理です。
HitOverrideを駆使するしかありません。
なるほど…
目的としてはアーマーキャラが攻撃喰らった際に、飛び道具と打撃でダメージ量が変わるよう設定したいです。
ヘルパーをもう一個出して、飛び道具だけ喰らうように設定、喰らった攻撃のダメージ量を変数使って記憶
ヘルパーの変数を本体側準常時監視で参照してLifeAddで適用…でいいのかな… んーとりあえず試してきますw
「無理です。」とか「不可能です。」
て教えるのは「こうすれば出来るよ。」
って教えるより数段不安ですね。
>>1 に
”ただし教えてくれた内容が間違っていても怒らないように。”
この一文を入れた過去の自分を褒めてあげたい。うん‥、褒めてあげたい///。
ヘルパー式アーマーなら
ヘルパー1個でHitOverrideを2個使えば出来そうですがなんともいえません。
がんばって作ってください。
こういう特殊な記述をまとめて後人に残したいですよね。
ganさんの グレイズの出来るhelperから射出のprojectile式飛び道具 とか
いろいろ整ってきたら、やろうかな。
はじめまして。
体力が減れば減るほど数値が大きくなる記述をしたいのですが
lifemax-life、で大丈夫でしょうか?
>>100
lifemax-lifeを使っても出来ると思いますけど、
(100*life/const(data.life))をオススメしたいです。
理由は上のやり方だとlifeの数値を初期値から変更したときに不都合が出る恐れがあるからです。
下の記述だと100×life÷最大lifeの値=0〜100となりますので数値に関わらずlifeの割合が出せて覚えておくと色々便利だと思います。
>>101
ありがとうございます。
大変参考になりました。
>>96
できました。ありがとうございます。
重ねて質問をしたいのですが
通常KO時とラウンド決着時の負けボイスを使い分けることってできますかね?(クロガネ氏のバルバトスみたいに)
負けポーズだったら(!MatchOver)を使えばできるっぽいんですがMatchOverだと
KO時のボイスは含まれないというのをどこかで見たので(試してはいないですけど)
度々申し訳ないですけどどなたかわかる方いましたらお願いします。
ちなみにクロガネ氏のバルバトスはCNSの文字を詰めてわかりづらくしてあるため参考にできません。
表示されているAnimを条件にすれば良いと思います。
試してみてください。
>>103
>ちなみにクロガネ氏のバルバトスは〜
メモ帳とかワードパッドだと、確かに文字が詰められているんですが
サクラエディタ等で開くと普通に並んでいる不思議。1度試してみて下さいな。
どもです。 ヘルパーアーマーの機能が確認できたので、ヘルパー式の飛び道具を作っているのですが・・・・ちょっと分からないことが起こってます;
なるたけ状況を詳しく説明すると。
:出すようにしたヘルパーのアニメが出ない。
:射撃モーション用のアニメも出ない;
:ダメージが入らない。(ヒットはしているので大丈夫だと思うのですが・・・・)
といった意味不明な現象が起こります。
一様、製作サイトとかをめぐって色々試したのですが・・・・どうにもならんかったです;
すんません、ここはおひとつ、知恵を貸してもらえませんか?
とりあえず、記述の方を。
やりたいのは進んでいく飛び道具ではなく、固定して敵にダメージを与えるタイプです。
簡単に言えば、Higeの尻から炎! みたいな感じ(ヒデェ例えだ
;咆哮衝撃波
[Statedef 1000]
type = S
movetype= A
physics = S
juggle = 1
ctrl = 0
anim = 1000
;poweradd = 20 ;パワー消費。要らないのでオフ
sprpriority = 2
facep2 = 1
[State 1000,ヘルパー]
type = Helper
trigger1 = AnimElem = 1
trigger2 = AnimElem = 2
trigger3 = AnimElem = 3
trigger4 = AnimElem = 4
trigger5 = AnimElem = 5
trigger6 = AnimElem = 6
trigger7 = AnimElem = 7
trigger8 = AnimElem = 8
trigger9 = AnimElem = 9
trigger10 = AnimElem = 10
trigger11 = AnimElem = 11
trigger12 = AnimElem = 12
trigger13 = AnimElem = 13
trigger14 = AnimElem = 14
trigger15 = AnimElem = 15
trigger16 = AnimElem = 16
trigger17 = AnimElem = 17
trigger18 = AnimElem = 18
trigger19 = AnimElem = 19
trigger20 = AnimElem = 20
trigger21 = AnimElem = 21
ID = 1010
pos = 0,0
postype = p1
facing = -1
stateno =1010
helpertype = normal
name = "houkousyougekiha"
keyctrl = 0
ownpal = 1
[State 1010,1];無敵化して分身バグ対処
type = NotHitBy
trigger1 = time >= 0
value = SCA, NA, SA, HA, NT, ST, HT
[State 1000,咆哮];オミット中
type = null;playsnd
trigger1 = AnimElem = 1
trigger2 = AnimElem = 10
value = 0,0
続きです
;--------------------------------------------------------------------------
;攻撃判定
[Statedef 1010]
type = A ;
movetype= A ;
velset = 4,0
anim = 1010 ;アニメーション
sprpriority = 10
[State 1010,0]
type = HitDef
trigger1 = AnimElem = 1
trigger2 = AnimElem = 2
trigger3 = AnimElem = 3
trigger4 = AnimElem = 4
trigger5 = AnimElem = 5
trigger6 = AnimElem = 6
trigger7 = AnimElem = 7
trigger8 = AnimElem = 8
trigger9 = AnimElem = 9
trigger10 = AnimElem = 10
trigger11 = AnimElem = 11
trigger12 = AnimElem = 12
trigger13 = AnimElem = 13
trigger14 = AnimElem = 14
trigger15 = AnimElem = 15
trigger16 = AnimElem = 16
trigger17 = AnimElem = 17
trigger18 = AnimElem = 18
trigger19 = AnimElem = 19
trigger20 = AnimElem = 20
trigger21 = AnimElem = 21
attr = S, SP
damege = 50,25
getpawer = 20,10
sparkxy = 0,0
fall = 0
guardflag = MA
sparkno = 1
sparkxy = 0,0
sprpriority = 4
hitsound = 5,4
guardsound = 6,0
ground.type = High
ground.slidetime = 14
ground.hittime = 16
ground.velocity = -6,0
air.velocity = -3,-4
air.juggle = 4
[State 1010,1 ChangeState]
type = ChangeState
trigger1 = AnimTime = 70
value = 0
ctrl = 1
;---------------------------------------------------------------------------
;消滅用のステート
[State 1010,2];ヘルパー撤去
type = Destroyself
trigger1 = time >= 170;70以上たったら
これが全部の記述ですが、他になにか必要な記述ってありましたっけ?
ご教授お願いしますOTL
[State 3800, VarSet]
type = VarSet
trigger1= time = 0
fvar(25)= 1/1000 ;本当はこっちを書く→life/(const(data.life))
というステコンを組んだんですが代入されないんです。
割り算の書き方が悪いのか…?
少なくともDisplayToClipBoardに「text=Fvar(25):%f」で「params=fVar(25)」って書いても代入されたように表示されないです。
なんかすっごく基本的なことをド忘れしているからの気がするんですが、なんでなのでしょー?
…という素人っぽさ全開の質問をした後にアレですがw
バグ潰し以前の話なんですが、HelperとHitdefのトリガーってこれ…纏めらんないんでしたっけ?
trigger1 = AnimElem >= 1
trigger1 = AnimElem <= 21;…みたいな感じで(アホなこと言ってたらすまぬ)
あと、ヘルパー側のこのステコンが良くわからんない。
本体側用じゃないのかな…?
[State 1010,1 ChangeState]
type = ChangeState
trigger1 = AnimTime = 70
value = 0
ctrl = 1
あと本体位置で固定するんだったらHelperじゃなくって本体にHitdef持たせた方が何かとイイ気がするよーな
>>106-108
取り敢えず
・本体がState 1000から抜ける記述が見当たらない
・StateDef 1010のパラメータにPhysics = N追加を推奨
・固定と言ってるのにStateDef 1010にVelSet = 4,0がある
・Airがどうなってるか分からんから何とも言えないが
21個のヘルパー出してそれぞれが21回HitDefを実行してるから
最大で441ヒットする計算になる
・AnimTimeは0以下の値しかとらないからChangeStateはいつまで経っても実行されない
・NotHitBy置く位置はStateDef 1010より下
・HelperのHitDef使う場合はHitOverride追加を推奨
>>109
整数/整数は整数で計算されるから1/1000は0扱い
やるなら1.0/1000とか1/1000.0とか1.0/1000.0にしないとダメ
>>109
それと、Const(Data.Life)は人数補正とかMUGEN本体のコンフィグ設定を考慮してないから
Life*1.0/LifeMaxとかにした方が良いと思われる
あ、そっかfloat扱いにしなきゃダメなんでしたね;
ありがとうございました。
>>111
ちょっくら指摘されたことをベースにやってみたが今度はState1010にミスがあるみたいでエラー吐かれてもうた;
うーん、動いてくれただけ前の方がマシの状態になってしまった・・・・
>>113
108を、110の修正のhitOverRide以外を施して置いてみても、こっちではエラーは出なかったですね。
なので考えられるのがHitOverRide内のエラーですが…エラー文と修正後のState 1010が見たいです。
ついでに気付いた事を幾つか
1.State 1010が、ヘルパーだけが使用するステートなら、
ChangeStateで、本体も使っているであろうState 0(立ち状態)に飛ぶのはおかしい。
2.air1010のフレームは多分1フレーム毎だと思いますが、その場合AnimElem = 70になった時点ではtimeは70、
ChangeStateが先に条件を満たしてState 0になるので、State 1010のDestroySelfが行われない。つまりヘルパーが消えない。
3.getpawerちゃう、getpowerや…(getpawerでも何故かエラーは出ないけど)
1.2.に関しては、State 0内で、 <条件:isHelperでDestroySelf> しているならまだいいんですが…
>>114
う〜ん、やっぱ新しく加えたHitOverRideが関係してるんかなぁ?
とりあえず、記述の方を。相変わらずマルコピとかばっかで進歩してないんですけど?これでも最初期よりは理解してきました;
;攻撃判定
[Statedef 1010]
type = A
movetype= A
Physics = N
velset = 0,0
ctrl = 0
anim = 1010 ;アニメーション
sprpriority = 10
[State 1010]
type = HitDef
trigger1 = AnimElem = 1
attr = S, SP
damege = 30,25
getpower = 20,10
sparkxy = 0,0
fall = 0
guardflag = MA
sparkno = 1
sparkxy = 0,0
sprpriority = 4
hitsound = 5,4
guardsound = 6,0
ground.type = High
ground.slidetime = 14
ground.hittime = 16
ground.velocity = -6,0
air.velocity = -3,-4
air.juggle = 4
[State 1010,無敵];無敵化して分身バグ対処
type = NotHitBy
trigger1 = time >= 0
value = SCA, NA, SA, HA, NT, ST, HT
[State 1010,アーマー];ヘルパーになんちゃら?
type = HitOverRide
trigger1 = time = 0
time = 0
attr = SCA,NP,SP,HP
slot = 0
[State 1010];立ち絵へ
type = ChangeState
trigger1 = AnimTime = 0
valeu = 0
ctrl = 1
[State 1010];ヘルパー削除
type = DestroySelf
trigger1 = time >= 70
こんな感じです。
んで、MUGENに吐き捨てられたエラメ
Error parsing[Satate 1010]
Error in [Statedef 1010]
Error in キャラ名.cns
Error loading chars/キャラのファイル/キャラ名.def
Error while precaching
Error parsing [State 1010]
Error in [Statedef 1010]
Error in キャラ名.cns
Error loading chars/キャラのファイル/キャラ名.def
Error while precaching
Error parsing [State 1010]
Error in [Statedef 1010]
Error in キャラ名.cns
Error loading chars/キャラのファイル/キャラ名.def
Error loding p1
これがエラメ。
なんかStatedef1010に異常があるっていう雰囲気;
いや、だから
[State 1010];立ち絵へ
type = ChangeState
trigger1 = AnimTime = 0
valeu = 0
ctrl = 1
ってのが不要なんですよと
大したことじゃないですけど、ついでに言うと
[State 1010,無敵];無敵化して分身バグ対処
type = NotHitBy
trigger1 = time >= 0 ;←trigger1=1で同じ意味、見やすくなるので便利です。
value = SCA, NA, SA, HA, NT, ST, HT ;←SCAって書くだけで、完全無敵って認識されます。
>>117
動いたが相変わらずスプライトが出ない。
ついでに言うと操作受け付けなくなって消滅したままになった。
い、いつまでこんなMUGENループが続くの・・・・・OTL
>>118
表示されていないのは helperのアニメ(anim = 1010) ですよね。
そうしたらairファイルを開いて
[Begin Action 1010] が一つしかないことを確認してください。
次に
[Begin Action 1010] に記述されているアニメ番号が
sffファイルのものと合っているかどうか確認してください。
それでだめなら
[Begin Action 1010]をマルコピペして見せつつ
>ついでに言うと操作受け付けなくなって消滅したままになった。
ここ詳しく。
うん、エラーの場所は分かった。その前に一言
[State ステート番号, ***]の***の所は、エラーメッセージを読む時に、具体的な場所を特定するのに役立ちます。
今回の場合、エラーが[State 1010]の所にあるわけですが、[State 1010]と書いてあるのは
HitDef、ChangeState、DestroySelfの3か所です。でも3つのどれかは分かりません。数字の後の「、」の後ろは何を書いても問題ないので
「立ち絵へ」とか「ヘルパー削除」とかもそっちに書いた方が良いです。
で、エラーですが、ChangeStateの所、valeuじゃなくてvalueです。
但し、Azumaさんが言っている通り、ChangeStateの所は削ったままで良いです。正直余計ですし。
後、操作を受け付けないというのはヘルパーではなく本体の方の問題ですよね?多分。
となると、ctrl = 0であるState 1000から抜け出せていないと考えるのが妥当かな。
[State 1000, ChangeState実行]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
とかちゃんと書いてます?
…自分も一応確認しますけどSFFとAirはちゃんと登録してますよね?
>>119
アニメの番号も、SFFの番号も一致してますね。
何がいけないんだ・・・・・?
>詳しく
っと、失礼しました;
MUGENを起動、製作キャラを選んで動作テスト→やった、動いたw→では飛び道具のコマンド入れて正常に作動するか→無理でした;(スプライトデネェ。本体のスプライトもでねぇ)→しかも透明なままになって判定消えて消滅した。操作は受け付けない
こんな感じです;
一様、Airの1010もマルコピしてみます。
無茶苦茶ながかったのでこちらに。
[Begin Action 1010]
Clsn1: 5
Clsn1[0]= 20,-59, 40,-33
Clsn1[1]= 31,-70, 86,-18
Clsn1[2]= 68,-85,100, 0
Clsn1[3]= 82,-116,111, 4
Clsn1[4]=123, 2,102,-90
1010, 0, 0, 0, 1
Clsn1: 4
Clsn1[0]= 19,-60, 44,-33
Clsn1[1]= 31,-71, 78,-20
Clsn1[2]= 72,-95, 99, 2
Clsn1[3]= 85,-116,122, 2
1010, 1, 0, 0, 2
Clsn1: 4
Clsn1[0]= 31,-70, 86,-18
Clsn1[1]= 18,-63, 47,-34
Clsn1[2]= 65,-89, 95, 1
Clsn1[3]= 83,-116,123, 2
1010, 2, 0, 0, 3
Clsn1: 2
Clsn1[0]= 19,-71, 84,-19
Clsn1[1]= 64,-116,133, 4
1010, 3, 0, 0, 3
Clsn1: 2
Clsn1[0]= 17,-70, 97,-18
Clsn1[1]= 69,-119,133, 2
1010, 4, 0, 0, 3
Clsn1: 3
Clsn1[0]= 18,-62, 47,-32
Clsn1[1]= 32,-81,103,-11
Clsn1[2]= 73,-115,132, 3
1010, 5, 0, 0, 3
Clsn1: 3
Clsn1[0]= 17,-67, 70,-29
Clsn1[1]= 43,-91, 95,-12
Clsn1[2]= 80,-122,124, 0
1010, 6, 0, 0, 3
Clsn1: 2
Clsn1[0]= 18,-71, 72,-23
Clsn1[1]= 69,-123,128, 5
1010, 7, 0, 0, 3
Clsn1: 3
Clsn1[0]= 17,-65, 49,-32
Clsn1[1]= 36,-74, 84,-16
Clsn1[2]= 72,-118,129, 5
1010, 8, 0, 0, 3
Clsn1: 2
Clsn1[0]= 19,-68, 81,-17
Clsn1[1]= 62,-124,135, 6
1010, 9, 0, 0, 3
Clsn1: 2
Clsn1[0]= 21,-68, 84,-17
Clsn1[1]= 66,-121,131, 5
1010, 10, 0, 0, 3
Clsn1: 2
Clsn1[0]= 19,-74, 81,-17
Clsn1[1]= 73,-118,127, 0
1010, 11, 0, 0, 3
Clsn1: 2
Clsn1[0]= 17,-70, 83,-16
Clsn1[1]= 67,-119,131, 3
1010, 12, 0, 0, 3
Clsn1: 2
Clsn1[0]= 19,-75, 76,-22
Clsn1[1]= 67,-125,129, 7
1010, 13, 0, 0, 3
Clsn1: 2
Clsn1[0]= 14,-71, 81,-19
Clsn1[1]= 74,-118,128, 7
1010, 14, 0, 0, 3
Clsn1: 2
Clsn1[0]= 21,-64,117,-35
Clsn1[1]= 46,-38,124,-14
1010, 15, 0, 0, 3
Clsn1: 1
Clsn1[0]= 23,-60,106,-38
1010, 16, 0, 0, 3
Clsn1: 1
Clsn1[0]= 22,-56, 94,-42
1010, 17, 0, 0, 3
Clsn1: 1
Clsn1[0]= 19,-56, 51,-40
1010, 18, 0, 0, 3
Clsn1: 1
Clsn1[0]= 18,-64, 34,-61
1010, 19, 0, 0, 3
Clsn1: 1
Clsn1[0]= 20,-61, 29,-55
1010, 20, 0, 0, 3
>本体のスプライトもでねぇ
こいつをまず解決しますか。
立ちアニメーション([Begin Action 0])は登録してありますか?
[Statedef 1000]のanim = 1000 を anim = 0 にして
立ちアニメーションが表示されるかどうか確認してください。
表示されなかったら
Ctrl + D を使ってACTIONIDの値がいくつになっているか教えてください。
CMDファイルに関することでもいいですかに?壁|・ω・)
ボタン入力を組み合わせたコマンドを設定すると何故か技がでなくなっちゃうんです。
例えば「command = c」にしてcボタン押すだけで出るようにすれば何の問題もなく発動するのですが、「command = c+x」のように別のボタンと組み合わせると何故か発動出来なくなってしまうんです。
原因に思い当たる方がいましたら教えてください><。
CMDの中身わかりませんから、サッパリですけど…
コマンド定義の項目で
[Command]
name = "recovery"
command = x+y
time = 1
といった記述形式が間違ってないなら、考えられるのは…
1.発動する技の上に、同じコマンドをトリガーにしたChangeStateが組まれてる。
2.似たようなコマンドを用いたChangestateが上位に組まれていて、優先されてる(いわゆるCMD的暴発)
3.ChangeStateのトリガーや記述自体が間違ってる。
他にありえる状況ってなんだったかな…
うーん、どうやらヘルパーで出したエフェクトから抜け出せないみたいで・・・・本体のスプライトが消えてヘルパーのスプライトしか出てこないようで;
>>123
>ACTIONIDの値
ちょっと確認してみましたけど・・・・多分製作中のキャラの奴かな?
たしか、1010――――ヘルパーのヒット定義が書かれてる番号でした。
うーん、どういった形で出してるんだろうなぁ、他の人は;
>>126
僕は
"本体(Statedef 1000のとき)のanimが表示されないバグ"
を直そうとしています。
[Statedef 1000] が 射撃動作
[Statedef 1010] が 弾(Helper)
ですよね。
ゲーム画面では設定に反して
[Statedef 1000]のanim番号が1000のはずが1010になっているってことですか?
そんなはずあるかいっwww!!!
実際にゲーム画面で、
キャラクターが[Statedef 1000]の状態のとき
キャラクターのanim番号(ACTIONID)がいくつになっているか教えてください。
まさかと思うけど、デバッグ画面の見方がわかってないんじゃないかなっと
>>125 のAzumaさんへ
おかげさまで無事に解決です!ありがとうございました。
どうやら「1.発動する技の上に、同じコマンドをトリガーにしたChangeStateが組まれてる」これだったようです(/ω\)ハジカシー
>>127
のりつっこみワロタ
>>126
差し支えなければキャラうpすればここの人たちがなおしてくれると思う
>>127
むしろ自分が聞きたいです;OTL
>>128
そうであってほしい物です;w
>>130
もう、そうしちゃった方が早いかな?
ちょっち上げるように整備するので少しほどお時間のをば
とりあえず、ドット絵板の新アップローダーの方にキャラクターをうぷってみました〜;
どうか、よろしくやってください;
ファイル名は仮.zipっていうです。
うん、まず言えることが二つあるんだ
・DEFファイルの記述ミスってるよ(-2,-3の後に「.cns」入れなきゃエラー吐く)
・CMDのChangeStateがvalue=「1010」になってるわけよ、うん
>DEFのミス
あ、それ多分、直してない奴だ;
仮フォルダ内部の直すに忘れてもうたOTL
>CMB
やっぱ、そっち関連にミスか?
あ、色々やってるうちにChangeStateも撤去してた・・・・・・・・・・・ひでぇ;;;;;;;;;;
全部治った、アップローダに上げといたからそれ参照ね
人のコト言えないですが、全部数字の書き間違いです。
まず技のステート呼び出し(1000)がヘルパー用の数字(1010)になってる
ヘルパーの参照するステートが呼びだしてるステートになってる(つまり1000で1000を呼びだしてる)
ヘルパーの向きが間違えてる(facing=-1になってる)
ChangeStateの最後になぜか「;ctrl=1」になってる
あ、それと1000-2はSFFに登録されてない画像だよ
連レス過ぎるけど。>>135 は嘘だった。
でもそのまま硬直してもうた・・・・・・・・・・・ぬぁぜだ?
>>136
すんません、言葉がありません・・・・・。
と、言って万事解決には至らぬ。
>>137 でも書きましたが、なぜか、なぜか、コマンド入力すると、アニメが終わって立ち絵に移ると操作不能になってしまいました;
ちなみに1010の奴が出てきません;
この問題児め・・・・・・・・・
え?
それも直しといたはずだけど…ファイルごと上書きして試してみました?
解説入れてファイル修正しといたから、丸ごと上書きすれば
直った状態が見れる&CNSの修正箇所にコメント入れてある、な状態になるようにしといたんですけど
バックアップをきちんと取るように。
トラブルの素ですよ。
あ!
ロダに上げたから大丈夫か。
そうそう;上書きの際はバックアップはとった上でね;
アップロードした仮.zipを別キャラとして登録した上で、そのフォルダに上書きすれば元データが生きたまま試せます。
あああああ、こういうバグか。
僕もよくやる。
なんだかアレみたいですね。あの、
IQサプリの問題を(スペシャルヒントまで出たのに)解けなかったときのような、
そんな残念な感覚ですね。
次回は頑張ろう‥。
おっしゃ! 形はできたぁ!
Destroyselfの記載する場所と番号間違えてただけ。これでヘルパーが出て何とかなった―――――――――――――のだが。
今度はそのヘルパーが消えない・・・・ちゃんとDestroyselfしてるのに・・・・
しかも相変わらずヒットはするのにダメージが入らぬ・・・・・
それでも大きな一歩だ・・・・。
良かったですねー
ってことは
前までの不具合の原因だったCNSの修正箇所全部把握して、修正できた…んですよね?
手元の(昨日Upしたデータのまま)だと、ちゃんとヘルパー消えてるみたいなのですけど…おかしいな
それとダメージが入らないのは原因簡単「ス ペ ル ミ ス」です。
state1010.Hitdefのオプションパラメータの項にて
「damege」←間違い
「damage」←正しい
エラメ出ないから気付きにくくはあるよね
>>146
アッー!それだったか・・・・・泣きてぇ;OTL
ちゃんと直したらダメ入った。ありがとうございます(_ _)
ヘルパーが消えない理由。
1010じゃなくて1000に変えたらヘルパー映ったから有頂天になってた;
てか、なんでこうなる前の奴はヘルパーごと消えてたんだ?????
どっかの文字が狂ってたのかな・・・・・・;
これで事実上、咆哮衝撃波の記述は完成しました。
尽力してくださった皆様にはどんなに感謝すればよいのやら・・・・。
ん?
壁際でするとヘルパーがズリズリーっとずれてく・・・・・
質問いいですか?
同じstatedefに
のトリガーが(GameTime%1)= 0で数える
メーターの様なステートを何個も入れると
動かなくなったりすることある?
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板