レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
製作お助け掲示板
製作で困ったことがあれば
質問をどうぞ
どんな初歩的な質問でも
キャラ製作の先人達がやさしくお答えいたします。
ただし教えてくれた内容が間違っていても怒らないように。
だれにでも間違いはあります。
ココで得た知識を吸収し、教える側に回れるように精進しましょう。
また
先人達も知識がさび付かないように、理解をより深めるために
お互いに知識を出し合い、高め合いましょう。
>あえそぶさん
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で数える
メーターの様なステートを何個も入れると
動かなくなったりすることある?
ごめんなさい自己解決しました
別の理由でした
cnsの記述で詰まってしまったので、質問よろしいでしょうか
ずっと相手を追尾するのではなく、発射の瞬間に相手のいた方(角度)へ弾を発射する射撃を作りたいのです
更に、弾の画像を射出角度に合わせて回転させたいです
つまり、この矢印(→)が弾の画像だとして、射出の瞬間相手が真上にいたらこのように(↑)射出角度に合わせて画像が回転するような
そしてこの角度算出、回転、発射の動作を出来る限り素早く行いたい…
現在私の自作キャラ(ウサギくん)に使っている、ずっと相手を追尾する射撃のcnsの応用でなんとかなるかなー、
と思ってたんですが、ところがもう全然現実は、もう、そうでなくて。完全にお手上げ状態です
(まぁそのcnsも私が考案したものではなく、人様の考案したものを借用したのですけど)
よろしくお願いいたします
(わかる人がここにどれだけいるかわかりませんが、東方非想天則の八雲紫の「変容を見る眼」を作りたいんです)
飛び道具Helper出して、そのHelperがTime=0でP2Dist xとP2Dist yをVar(0)とVar(1)に保存
VelSetでx=n*Cos(IfElse(Var(1)>0,Pi,0)+Atan(Var(0)*1.0/Var(1)))に設定する(yはCosの代わりにSin)
IfElse(Var(1)>0,Pi,0)+Atan(Var(0)*1.0/Var(1))で角度計算してAngleDraw
Var(0)=0またはVar(1)=0のとき(相手と垂直位置または水平位置が同じ場合)は個別に設定する必要ある
あと、AngleDrawで回転させてもClsn1は変わらないからAirの設定次第で詐欺判定になるから注意
説明しやすいようにP2Dist使ったけど、
相手のMid.Posとかに向けて飛ばしたい場合はその分考慮してVarSet
あと、VelSetのとこの「n」は飛び道具の速さだから適当な値入れて
>151
>152
手こずりましたけど、ご助言を参考にしながら他の方のcnsをベースにいじってみたところ、
なんとか形になりましたー感謝です
初めまして。
詰まってしまったので質問させてください。
相手を空中に吹っ飛ばし、落下してくるところに
追撃を加えられるようにしたいのですが
どうもそのやり方がわかりません。
↓の攻撃を当てた後に「hitflag = MAF」の攻撃を当てたいのですが…
どこか問題ありますでしょうか?
[Statedef 305]
type = S
movetype = A
physics = S
juggle = 15
poweradd = 0
ctrl = 0
velset = 0,0
anim = 305
sprpriority = 3
[State 300, ]
type = HitDef
trigger1 = Time = 0
attr = S, NA
animtype = Up
guardflag = M
hitflag = MAF
damage = 100
pausetime = 12,15
sparkno = s4010
sparkxy = -20,-60
hitsound = s1,4
ground.type = High
ground.slidetime = 16
ground.hittime = 18
ground.velocity = -2,-8
air.velocity = -2,-8
fall = 1
fall.recover = 0
ground.cornerpush.veloff = 0
air.cornerpush.veloff = 0
juggle = 15
を
juggle = 0
にしてみてください。
>>155
解決しました。ありがとうございます。
基本について勉強不足でしたね。精進します。
攻撃がヒットした場合、攻撃動作のアニメから武器を突き刺した(つまり切先が欠けている画像)アニメに切り替えたいので
Hit.pausetime中でも自分のアニメが変更されるよう、下記のステコンを組んだのですが
何故かHit.pausetime中は透明化してしまいました…何故なのでしょう?
--CNS
[State 3860, HitDef1]
type = HitDef
trigger1 = Anim = 3860
trigger1 = AnimElemTime(3) >= 0
trigger1 = AnimElemTime(4) < 0
attr = S, HA
pausetime = 20, 20
guard.pausetime = 8, 8
persistent = 0
[State 3860, ChangeAnim]
type = ChangeAnim
trigger1= Anim = 3860
trigger1= MoveHit
trigger1= NumTarget(3860)
trigger1=!Target(3860),IsHelper
value = 3870
IgnoreHitPause = 1
--AIR
; 突き姿勢1
[Begin Action 3860]
3860, 0, 0, 0, 9
3860, 1, 0, 0, 9
Clsn1: 1
Clsn1[0] = 47,-71,120, 0
3860, 2, 0, 0, 15
3860, 2, 0, 0, -1
; 突き姿勢2
[Begin Action 3870]
3860, 3, 0, 0, -1
まぁ、ぶっちゃけ演出自体はpause使ってHitdefに頼らなければいいんだと気付いたのですが…
解決はしないと後々に差障るので、わかる方いらっしゃいましたら、お願い致します。
HitDefにID=3860付けてる?付けなきゃChangeAnim実行されないと思う
あと、Damage無いってことはTargetLifeAddか何かで処理してるんだろうけど
他のステコンが悪さしてることは無い?
取り敢えず>>157 の情報から言えるのはこのくらい
原因は不明ですが
解決方法はわかりました。
ChangeAnimのパラメーターに
elem = 2
を追加して
; 突き姿勢2
[Begin Action 3870]
3860, 3, 0, 0, -1
を
; 突き姿勢2
[Begin Action 3870]
3860, 300, 0, 0, -1 ;←なんでもいい (elem = 1)1枚目
3860, 3, 0, 0, -1 ;←表示させたいアニメ (elem = 2)2枚目
にしてください。
そうすると上手く行きます。
注意8割方妄想です。
あと単語の統一ができてないので読みにくいです。
*原因の予想として
*処理のやり方が1枚目のアニメだけ特殊なんじゃないかと思います。
処理0 [Begin Action 100] ;Begin Action 100を発動させる
処理1 100, 0, 0, 0, 2 ;Begin Action 100の1枚目を表示
処理2 100, 1, 0, 0, 2 ;Begin Action 100の2枚目を表示
処理3 100, 2, 0, 0, 2 ;Begin Action 100の3枚目を表示
処理4 100, 3, 0, 0, 2 ;Begin Action 100の4枚目を表示
処理5 100, 4, 0, 0, 2 ;Begin Action 100の5枚目を表示
処理6 100, 5, 0, 0, 2 ;Begin Action 100の6枚目を表示
:
処理n 100, n, 0, 0, 2 ;Begin Action 100のn枚目を表示
Begin Action がこんな感じの処理に分けられるものだとし
さらに
ChangeAnimが
現在表示されているスプライトを消去
Begin Actionの処理x(0≦x≦n)を実行
を同時に行うものだとすると
例えば
elem = 3が付いているChangeAnimであれば
現在表示されているスプライトを消去
Begin Action 100の3枚目を表示
が同時に行われます。
elem = 5が付いているChangeAnimであれば
現在表示されているスプライトを消去
Begin Action 100の5枚目を表示
が同時に行われます。
それじゃあ
elem = 1が付いているChangeAnimの場合はどうかというと
(elemは省略すると1になります。)
現在表示されているスプライトを消去
Begin Action 100を発動させる
が同時に行われる
という処理をしていることが予想されます。
なぜ
現在表示されているスプライトを消去
Begin Action 100の1枚目を表示
が同時に行われる
じゃないのか?というと
1F間隔の連続で出来ているmugenの世界では
現在表示されているスプライトを消去
Begin Action 100の1枚目を表示
が同時に行われる
と
現在表示されているスプライトを消去
Begin Action 100を発動させる
が同時に行われ
次の瞬間
Begin Action 100の1枚目を表示
という処理は同じことが行われたとしか観測できない
ので
エレクバイトさんが
なんとなくそうした
か
そうしなければならなかった
かで
elem = 1が付いているChangeAnimの場合は
現在表示されているスプライトを消去
Begin Action 100を発動させる
が同時に行われる
という処理にしたんじゃないかと思います。
続き
で
HitPause中だと、基本的にほとんどの処理が止まる中
IgnoreHitPause = 1 の力を受けたChangeAnimは処理を実行
現在表示されているスプライトを消去
Begin Action 100を発動させる
が同時に行わる処理を実行
表示されているスプライトが消え
処理0 [Begin Action 100] ;Begin Action 100を発動させる ←これ
処理1 100, 0, 0, 0, 2 ;Begin Action 100の1枚目を表示
処理2 100, 1, 0, 0, 2 ;Begin Action 100の2枚目を表示
処理3 100, 2, 0, 0, 2 ;Begin Action 100の3枚目を表示
処理4 100, 3, 0, 0, 2 ;Begin Action 100の4枚目を表示
処理5 100, 4, 0, 0, 2 ;Begin Action 100の5枚目を表示
処理6 100, 5, 0, 0, 2 ;Begin Action 100の6枚目を表示
:
処理n 100, n, 0, 0, 2 ;Begin Action 100のn枚目を表示
を実行し、ChangeAnimの処理は終わり
今度は
処理0 [Begin Action 100] ;Begin Action 100を発動させる
↓
処理1 100, 0, 0, 0, 2 ;Begin Action 100の1枚目を表示
処理0→処理1に以降する仕事はBegin Actionの管轄なんですが‥
Begin ActionはIgnoreHitPause = 1の力を受けていないので
動けない。
だから透明になってしまう。
ということなんだろうと思います。
なるほど…Air側の処理は、深く考えてなかったな…
「IgnoreHitPause = 1」関連の処理が怪しいと覚えておこう。
ありがとうございました!
>>158
モチ、IDは設定してます;
投稿用に余計なオプションパラメータ消した際に巻き込んじゃったみたいです。
reversaldefで打撃を、hitoverideで飛び道具を当て身…というか耐えさせてるんですが
喰らう予定だった攻撃のダメージ量を測るgethitvar(X)トリガーを使いたいです。
・reversaldefは攻撃判定VS攻撃判定で反応するので「攻撃を喰らう」わけではない
・gethitvarトリガーはMoveType=Hでないと機能しない
以上2点から、直接的手段での使用は無理だとわかったのですが、どうにかして相手の攻撃ダメージ量を測る手段はないでしょうか?
コンプゲーでもなければGetHitVar(Damage)使わずにダメージ情報取得するのは無理
AIの学習の要領でやっても一度喰らった攻撃じゃないと分からないし補正の影響で正確な値知るのが不可能
アーマー処理(本体HitOverrideでもヘルパーHitOverrideでも好きな方)使ってMoveType=Hの状態でGetHitVar(Damage)して
用が済んだらStateTypeSetでIやAに戻してやるしかない
AnimとかVelSetとかをStateDefのパラメータに置かず、TypeとかをU(Unchange)にして
PrevStateNoをトリガーにステコンで処理すればHitOverrideでStateDef読み直しても上書きされないし
AnimElem系のトリガー使えば(Timeは使えないけど)技の流れを阻害されることなく処理できる
詳細はアーマー持ってるキャラのcns参考にするといいよ
エリアルの調整していて気になったのですがair.hittimeとfall.recovertimeの二つの違いは
air.hittime 空中受身とか関係なくこれに設定した時間で行動可能状態になる。受身可能キャラならその前に空中受身することで行動可能になれる
fall.recovertime これ設定の設定時間まで受身不能。air.hittimeより短い時はこれの設定時間より早く受身などに関係なく行動可能になる・
という理解の仕方であっていますでしょうか?
一部アーク系キャラがCanRecover無視して空中受け身取るのはマジやめて欲しい。
>165
たぶん言い回しの問題で間違っているように見える。
このあたりは結構ややこしいです。
2,3日待ってください。
なんとか上手く解説して見せます。
やられ状態は大まかに2種類あって
A:最終的に[Statedef 5040]に到達するやられと
B:最終的に[Statedef 5050]に到達するやられがあります。
Bのときfall.recovertimeが関わってきます。
[Statedef 5050]の到達の経路は色々あって
経路しだいではair.hittimeは無視されます。
>>166
知らずに調整に使うととんでもないことになりますよね。
[State -2, VarSet / PrevStateNo_Check]
type = Null
trigger1= Var(50) != StateNo
trigger1= 1 || Var(51) := Var(50)
trigger1= Var(50) := StateNo
IgnoreHitPause = 1
↑は、ADS氏のメモにあった記述なんですが
これでPrevStateNo代用できるぞーレバー行動でズレなくなるぞーやっほーい
…って思って、AIに噛ませて記述したのですが、PrevStateNo(…の本来機能すべき数字)とも違った結果が出ることがままあるらしくバグ連発
何を間違えたのでしょうかorz
>>165
たぶん、あってる…と思いますが詳しい仕様知らないです、いい加減なこと言うのもアレなんでパスw
YESさん辺りが綺麗な回答を出してくれるでしょう(丸投げ)
>>165
検証してみたら、hittimeっていうのは操作不能時間とは関係ないのよね…
hittimeは、相手がやられ扱いになる時間で、数値が大きいとコンボのカウントが続きやすいっていうだけで、
例え受け身を取られても、hittimeで指定した時間内に攻撃を当てればコンボが続いていると判断される。
recovertimeはそのまま、受け身不可能な時間。
なのでhittimeとrecovertimeは別物と考えて良い。
と思います…
>>169
その方法だと1Fの間に複数回ChangeStateした場合に
PrevStateNoとVar(51)に食い違いが生じるんじゃないかな
特に内部処理のChangeStateや相手のTargetStateなんかが絡む時
あと、-2の特性上PauseやSuperPauseがかかってる時も怪しい
内部処理のCHangeStateが絡むと崩れてたのかな…?
んーむ…Pauseに関しては-1か-3に置けばいいっちゃいいはずですが、ステコン管理に使うにゃ脆いのかなぁ。
あ、1Fの間に複数回ChangeStateする場合って、どんなのでしょう?
1Fの間にというより-2と-2の間って言った方が良いかな
-2でVar代入→-1でChangeState→個別ステートでChangeState→次の周の-2でVar更新
デバッグ用のChange(Self)Stateが置いてある場合とか
あーにゃるほど
なんというかイメージは掴めました。
-2ステートの実行は1Fに一回だからってことかな
超必殺技発動時に背景を黒くしたいのでBgpalfxを使おうと思ったんですが
時間経過に応じて60Fかけて段々まっくろになって行って、240F黒のまま維持、60Fかけて元に戻すーという使い方をしたいです。
とりあえず黒くなる方向で組んでみたのですが…
[State 3000, だんだん黒く]
type = BgPalFx
trigger1= time = 0
sinadd = -205,-205,-205,110
time = 55
[State 3000, 黒維持]
type = AssertSpecial
trigger1= time >= 55
flag = noBG
flag2 = noFG
----------------------
[State 3005, まっくろ維持?]
type = AssertSpecial
trigger1= 1
flag = noBG
flag2 = noFG
…と書いて試したところ、bgpalfxのsinadd処理で一旦明るくなった後でassertの背景前景消しが発動してしまいました。
どうすればよいのでしょう?
>ganさん
>hittimeは、相手がやられ扱いになる時間で
そういうパラメーターでしたか。アドバイスありがとうございます。
>>171 >>173
代用は効きそうにないですが、バグはなくなったみたいです。
ありがとうございました!
>>175
type = BgPalFx
trigger1= time <= 300
add = -4*time,-4*time,-4*time
time = 2
type = BgPalFx
trigger1= time = [301,360]
add = -256+(4*(time-300)),-256+(4*(time-300)),-256+(4*(time-300))
time = 2
要望の効果はこの二つで出来る
前景消すかどうかはそちらの判断で
初めまして。製作でどうにも引っかかってしまいまして、宜しければご助力下さい。
アーマー技を作りたいのですが、流れ的に
コマンドを入力
↓
アーマー発動演出(一瞬ピカンと光る程度です)
↓
アーマー発動中(打撃や飛び道具に有効 投げは効く)
↓
十数秒経過で終了(終了モーションは特に無し)
アーマーの開始と同時に変数でカウントし、終了条件のトリガーとして使おうと思うのですが…
VarSet等記述しても、変数の中身が変わらず困っています。
もしくは変数を使って制御する自体が難しいのでしょうか。
ttp://acol.lomo.jp/arm_smp.txt
※CNSの中身が長くなりますのでこちらにテキストでまとめました。
宜しくお願い致します。
>>179
もしかして
v = 56
value = 1
と
var(56) = 1
の混同
-2にあるVarAddはvar(56) = 1としてるならv = 56は要らんね
で、-2は「本体」か「HelperType = Playerのヘルパー」しか実行しないから
9000番のヘルパーがVar(56)をカウントしないのは当然
対処法は
①Var(56)のVarAddを9000番に移動させる
②DestroySelfのTrigger1をRoot,Var(56) = 100に書き換える
のどちらか一方やればいい
…だね
[state -2,1];間違ってる
type = varadd
trigger1 = var(58) = 1
v = 56;→これ不要、消せばOK
var(56) = 1
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板