レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
製作お助け掲示板
-
製作で困ったことがあれば
質問をどうぞ
どんな初歩的な質問でも
キャラ製作の先人達がやさしくお答えいたします。
ただし教えてくれた内容が間違っていても怒らないように。
だれにでも間違いはあります。
ココで得た知識を吸収し、教える側に回れるように精進しましょう。
また
先人達も知識がさび付かないように、理解をより深めるために
お互いに知識を出し合い、高め合いましょう。
-
Type = ChangeAnim
Trigger1 = IsHelper(15000)
Value = Root,Anim
Elem = Root,AnimElemNo(0)
でおk
アーマーヘルパー自身はHitDef撃ってないだろうから
IgnoreHitPause = 1は付けても無意味だよ
-
ありがとうございます!
早速試してまいりますー
-
ども、お久しぶりです。
早速質問ですが。
2ndRSP等の暗転時の演出はどうすればできるのかな?と。
特にセフィロトの樹とかのスプライトに残像付けるアレとか。
Helper使うとは聞いてはいるが、イマイチピンと来ないです・・・OTL
ご教授お願いします(_ _;
-
>>427
解決しました!
ありがとうございます!
-
>>431
当該キャラ持ってないんでどんな演出か分からんことには・・・
残像は拡縮してるのか、アニメ・表示位置は完全に同期or数F遅れなのか、何枚重なってるのかetc
色んな要素があるから一概にこうやればいいとは言えない
拡縮ならAngleDraw、アニメは>>429、表示位置はVar使えば数F遅れも可、重なってる枚数分Helper出す
みたいな抽象的なアドバイスしかできない
2ndRSPをデバッグモードで戦わせて、参考にしたい技のStateNoを確認してから
cns覗いてみるのが一番なんじゃないかな
-
キャラデータをいじっていたところ、唐突にフリーズするようになりました。
具体的には
「キャラ選択画面で、該当キャラを選択する」
「直後にMUGEN本体がエラーメッセージつきのではなく落ちる」
「Winmugen.exeは動作を停止しました。」
「問題の解決策をオンラインで確認できます(ry」といったOS(vista)のメッセージウィンドウが出る
といった状況です。
可能性としては、直前にいじっていたSFFかと思ったのですが古いSFFを代わりに入れてもフリーズするので不明です。
何かまずいデータを作ってしまったのでしょうか・・・? ご存知の方、お願いします。
-
スイマセン、自己解決しました!
お騒がせしました、申し訳ないです。
-
またお聞きしたいことができたのでやってきました。
イントロで相手が喋ってからこちらを喋らせるイントロを作りたいのですが、どうすればいいのか調べてもわからないんです。
DIOなど参考に作ってみようと思ったのですが、どれが作用してそうなっているのかがわかりません。
作り方を教えていただけると嬉しいです。
ちなみに、今現在こんな風になっています。
;イントロ -後喋-
[Statedef 193]
type = S
anim = 193
[State a];。
type = PlaySnd
trigger1 = animelem = 1
value = 190,2
[State a]
type = AssertSpecial
trigger1 = 1
flag = Intro ;イントロの状態
[State a];手を合わせる
type = PlaySnd
trigger1 = animelem = 5
value = 190,3
[State a , ステート変更];アニメーションが終われば「通常立ち」のステートに変更する
type = ChangeState
trigger1 = AnimTime = 0
value = 0
よろしくおねがいします。
-
相手がイントロ抜けるまで待機させてたらいいんじゃない?
何回か話させるなら無理かもしれないけど。
大抵イントロは190番台だと思うから
[Stateef 190] ; preIntoro
type = S
[State 190, ChangeState]
type = ChangeState
trigger1 = EnemyNear,StateNo != [190, 199]
value = 191(
-
にわか意見なんで間違ってたらごめん
[Stateef 190] ; 待機
type = S
[State 190, assertSpesial]
type = assertSpesial
trigger = 1
flag = Intoro
[State 190, ChangeState]
type = ChangeState
trigger1 = EnemyNear,StateNo != [190, 199]
value = 191 ; (任意
-
>>437、>>438さん
アドバイスのおかげで相手のイントロ後に喋らせることはできたのですが、
相手のイントロ中に待機している動作をニュートラル以外に指定するのはどのようにすればいいのでしょう。
このイントロの最初の一枚を使いたいのですが、どうすればいいですか?
よろしくお願いします。
-
Type = ChangeAnim
Trigger1 = 1
Value = 193
Elemを指定しなければChangeAnim読み込む度に1枚目からスタートするから
↑みたいに毎フレームChangeAnim読ませていれば1枚目で固定できる
因みに↑使えば>>438の要領でStatedef 193に飛ばしたときに
Anim = 193(>>436の10行目)を省略できる
-
>>440さん
おかげさまで状態維持が可能になったのですが、どうやら1P側でのみで、2P側に代わるとニュートラルが表示されてしまいます。
これはどういうことなのでしょうか?
ちなみに、こんな状態です。
まずランダムでイントロ分岐を
[State 190, 5]
type = ChangeState
trigger1 = Var(22) = [101,150]
trigger1 = EnemyNear,StateNo != [190,199]
value = 193
この記述でして、下で表示しています。
;イントロ -後喋-
[Statedef 193]
type = S
anim = 193
[State 193];腕組みでたちっぱ状態
Type = ChangeAnim
trigger1 = EnemyNear,StateNo = [190,199]
trigger2 = time > 400
Value = 193
[State a]
type = AssertSpecial
trigger1 = 1
flag = Intro ;イントロの状態
[State a];。
type = PlaySnd
trigger1 = animelem = 4
value = 190,2
[State a , ステート変更];アニメーションが終われば「通常立ち」のステートに変更する
type = ChangeState
trigger1 = AnimTime = 0
value = 0
-
ニュートラルってことはChangeAnimが読み込まれていないんじゃない?
常時監視でChangeAnimしていようが個別ステートのChangeAnimで上書きされる筈だし
例えばChangeAnim置いてるステート(190かな?)自体を読んでないとか
1P2Pで結果が変わるとしたらTeamSideトリガーかEnemy系リダイレクトが怪しい
MUGENの処理順は(MoveTypeがお互いにIだったら)1Pの-3→1Pの-2→1Pの-1→1Pの個別→2Pの-3→・・・だから
1Pでは自分が5900→190にChangeStateしたとき2Pは処理前だからEnemyNear,StateNoは5900で
2Pでは自分が5900→190にChangeStateするのは1Pが5900→190にChangeStateした後だからEnemyNear,StateNoは190になる
だから1Pでは5900→190→193が1Fで行われて、2Pでは5900→190→(1Pがイントロ終了)→193になる
>>440を190に置いて、190にあるChangeStateのTrigger1(2つ目)を
(EnemyNear,StateNo != [190,199])*(EnemyNear,StateNo != 5900)に変えてみて
あと、Ctrl+Dでステートの流れチェックした方が良いよ
-
思ったのですが、
この方法だと同じ方式のキャラ同士だと
試合が始まらないのでは・・・?
-
>>442さん
アドバイスありがとうございます!
おかげさまで2P側もきちんと表示できるようになりました。
>>wolfさん
確かに動かないですね。同キャラ対戦させて同じイントロが出たら全く動かなくなりました。
ゲームの経過時間で次の行動に移動させるようにしたいのですが、そういうステートはないみたいですね。
GameTimeなんかはそれっぽいと思ったのですが、どうも違うみたいです。
とりあえずもう少し考えてみようと思うのですが、なにかいい意見があったら教えていただけると嬉しいです。
-
単純にTrigger2 = Time >= ○○でいいと思うよ
相手のイントロ待っていて、一向にChangeStateしないんだから
Timeはリセットされることなくカウントし続けるし
同キャラだったら特殊イントロという手もあるけど、
同じように相手のイントロを待つキャラが他にいないとも限らないから
どっちにしろ保険でTime使ったChangeState条件設定した方が良い
GameTimeはラウンドどころか試合跨いでカウントされる経過時間だから
ある時点のGameTimeをVarに記録して現時点のGameTimeとVarを比較したり
GameTime%16=0みたいなトリガーで16F毎に実行したりするのが主な使い方
-
>>445さん
アドバイスありがとうございます。おかげで作成に成功しました!
ありがとうございました。
-
下記記述で「Statedef 3600で技発動後、緩やかに上下に揺れ動く」という演出を行っています。
これと(ほぼ)同じものを実現できる、よりシンプルで単純な記述はないでしょうか?
複雑化せず…且つ可能であればですが、変数を使用しない記述が理想です。
[State -3, VarAdd]
type = VarAdd
trigger1= time >= 0
trigger1= StateNo = [3600,3620]
var(5) = 1
ignorehitpause = 1
[State -3, PosAdd]
type = PosAdd
triggerAll = GameTime%8 = 0
triggerAll = StateNo = [3600,3620]
trigger1= var(5) = [0,60]
trigger2= var(5) = [121,180]
trigger3= var(5) = [241,300]
trigger4= var(5) = [361,420]
trigger5= var(5) = [481,540]
y = -1
[State -3, PosAdd]
type = PosAdd
triggerAll = GameTime%8 = 0
triggerAll = StateNo = [3600,3620]
trigger1= var(5) = [61,120]
trigger2= var(5) = [181,240]
trigger3= var(5) = [301,360]
trigger4= var(5) = [421,480]
trigger5= var(5) = [541,600]
y = 1
-
取り敢えずPosAdd2つは
Type = PosAdd
Trigger1 = GameTime%8 = 0
Trigger1 = StateNo = [3600,3620]
Trigger1 = Var(5) <= 600
y = (Var(5)%120=[60,119])-(Var(5)%120=[0,59])
で纏められる
必ず上方向から揺れ始めるようにするには変数使うのが手っ取り早いけど
単に「8F毎に動いて60F毎に折り返す上下動」だったら
Type = PosAdd
Trigger1 = GameTime%8 = 0
Trigger1 = StateNo = [3600,3620]
y = (GameTime%120=[60,119])-(GameTime%120=[0,59])
でできる
まあ601F目以降のときに実行しないという制限は付けられないけど
あと、60は8で割り切れないけど大丈夫か?
-
大丈夫じゃない、問題だ
ありがとうございます!
上方向から揺れてほしいわけではないので、下の記述を使用したいと思います。
-
もう終った話蒸し返すようですけど、
sin() 使って VelSet すれば良かったんじゃないだろうか
-
すいません。helperの画像って薄く透明化させたり、フェードアウトとかってできますか?
自分レーザービームみたいなのを作ってまして。
やっぱりフェードアウトの画像とかも自分で用意するんでしょうか?
回答お願いします(><;)
-
Type = Trans
Trigger1 = 1
Trans = AddAlpha
Alpha = 256-8*Time,8*Time
で256/8F(=32F)かけてフェードアウト
途中からフェードアウトさせるなら
Trigger1 = Time > 20とAlpha = 256-8*(Time-20),8*(Time-20)に変える
-
お早い返答ありがとうございます。
えと、質問が悪かったみたいです。
自分で出したエフェクト(ビーム)に透明化などの処理をしたいのですが
(リュウの波動拳しかり、伊達政宗の飛び道具しかり)
中の記述を見てもよくわかりません
>>452さんのも試してみましたが撃ってるキャラ自身がフェードアウトするだけでした
やはり画像に何か処理を施す必要があるのでしょうか、でしたら描き直します
-
>>452をHelperが読むStateに置くんだよ
あと、AngleDrawを使わないんだったらair側で透過処理することもできる
1000, 0, 0, 0, 1, , Aで一般的に使う透過処理
1000, 0, 0, 0, 1, , AS0D256で完全透過(見えなくなる)
1000, 0, 0, 0, 1, , AS256D256が1000, 0, 0, 0, 1, , Aと同じで
フェードアウトさせるなら
1000, 0, 0, 0, 20, , A
1000, 0, 0, 0, 1, , AS248D256
1000, 0, 0, 0, 1, , AS240D256
(中略)
1000, 0, 0, 0, 1, , AS16D256
1000, 0, 0, 0, 1, , AS8D256
とすれば最初の20Fが普通の透過で21F目から32Fかけてフェードアウト
-
おおおおぉぉぉ!できましたっ!
>>452さんお早い返答ありがとうございます。
フェードアウトも出来ました。
初歩的な質問で申し訳ありませんでした><
-
>>450
すんません、理解できないので詳しくお願いしまする。
-
>>456
;-----------------------------------------------
; ( VelSet 以外でもOK, ただし PosSet はやめたほうがいい
; 周期120, 振幅3.5で近似してます。↓の式を使います
; 振幅×Sin( 2×PI×振動数×時間 ) ※振動数 = 1/周期
[State -3, VelSet]
type = VelSet
trigger1 = StateNo = [3600,3620]
y = 3.50*Sin( GameTime*2*PI/120 )
;-----------------------------------------------
この場合○を真横から見た感じな動きします。フワフワ漂う感じ?
中の速度が速く、端の速度が遅いので。
3.5 は上方向いっぱいに移動したときが大体 7 だったのでその半分です。
Sin()は -1〜+1 の範囲の値と出してくるのでこうしてます。
反復速度を変えるときは 120 を、距離を変えるときは 3.5 を変えてください
この式にするときの注意点は、負の数も扱うというところです。
0,1,2,3,4,5,6,5,4,3,2,1, ... では無く -3,-2,-1,0,1,2,3,2,1,0,-1,-2, ...
です。あと、Sin()の中身はラジアン(180°= PI)です。
想定されている動きにはならないかもしれません。
すでに解決されているようなので「こんなのもあるんか」で留めておいたほうがいいかも
-
ありがとうございます!
別件で質問なのですが
イントロ演出中にキャラの位置が動くのですが、ラウンド開始時にステージ側で設定されたスタート位置に強制的に戻されてしまいます。
これを発生させないようにするには、どういった記述を行えばよいのでしょうか?
-
MUGEN本体の内部処理だからキャラ側ではどうしようもない
イントロ終了後のPosをFVarに格納しといて
StateNo=0&&Ctrl=1になったら(あるいはPosとFVarが違う値になったら)常時監視でPosSetして
強制的に戻されたものをキャラ側で強制的に戻し返すくらいが精々
それか、イントロでの移動を考慮してPreIntro(190番)でPosAddして
イントロ終了後に丁度スタート位置にくるようにするか
印象としては後者が採用されてることが多いかな
-
ひょっとして、東方(緋)とかメルブラの試合前移動可能なキャラの処理も、そういうのなのでしょうか?
具体的に「ここ!」ってステートがわかりにくいので、記述見てもよくわからなくて・・・・;
-
cns覗いてないから分からんけど、もしかしたら強制移動を防ぐ条件があるかもね
元々我流でやってるから>>459のは思いついた対策を挙げただけだし、
後者が多いってのも動画や自分のMUGENで見た印象だから実際にcns見たら違うかもしれん
力になれなくて申し訳ない
-
はい、わかりました。
丁寧な解答、ありがとうございました!
-
お世話になっております。
制作に詰まってしまいまして、アドバイスをいただければと思います。
【作りたい技のイメージ】
画面の上と下から、大きな牙が現れ中央付近で相手を噛む技。
1回だけではなく、『ガン・ガン・ガンガンガン』と計5回、
最後の5回目の噛みつきがフィニッシュになります。
【備考】
・この技の前にガード不可能の全画面技があり、それが終わると自動的にこれに繋がります。(こちらは何とかできました)
・一連の技が終わるまでプレイヤーキャラは見えなくなっています
・牙は上下運動しかしません。
・できればタッグ相手も巻き込みたいです。
上牙、下牙とそれぞれをヘルパーにするのかな?
とは思うのですが、組み立てが苦手なもので悩んでいます。
分かりにくいところ多々あるかと思いますが、その際は回答も致しますので
ご教授願えますと幸いです。
-
▼▼▼▼▼▼
↓
↑
▲▲▲▲▲
って感じなのかな?
上下両方ともヘルパーHitDefでやっちゃうと1回で2ヒットしちゃうから
片方だけヘルパーで、もう片方をExplodで表示させるか
両方ヘルパーで、HitDefは片方にのみ積むか
両方Explodで表示させて、InvisibleをAssertSpecialしたヘルパーかAir側で透明(AS0D256)にしたProjectileで攻撃処理するか
のどれかかな
ヘルパーでやる場合はVelSet(Add)やPosSet(Add)で動かせばいいけど
Explodで4往復半の運動させるにはAir側で動かしてやる必要がある
ロック技の追撃演出なら当身されないようにProjectileで攻撃処理した方が無難かも
-
>>464
アドバイスありがとうございます!
はい、そういう図のものをイメージしております。
ヘルパーはちょっと苦手意識があったので、Explodと透明の組み合わせで処理してみようと思います。
ロック技はタッグ相手には通らないのかなという印象があって、防御不可能の設定を組み込んでみました。
テストすると色々出てくるかもしれませんが…; とりあえずこの通り進めてみます。
有難うございました!
-
「ヘルパー」に下記記述でExplodの発生&制御をさせようと思ったんですが、ModifyExplodが機能してくれません。
trigger1=1にしても機能しないという謎現象に見舞われているのですが、一体なぜなのでしょうか?
[State 20000, Explod]
type = Explod
triggerAll = Root,var(35)
triggerAll = Root,StateNo = 3020
trigger1=!NumExplod(13000)
pos = 120,170
postype = back
anim = 13000
ID = 13000
vel = -1,0
ownpal = 1
scale = 0.5,0.25
removetime = 596
pausemovetime = 596
sprpriority = -5
[State 20000, ModifyExplod_Accel]
type = ModifyExplod
trigger1= NumExplod(13000)
ID = 13000
accel = -0.2,0
-
ModifyExplod は動かない事のほうが多かった気がするので
更新タイミングでRemoveExplodしてから再度をExplod実行したほうがいいかも
-
えーっと、画面下をぬべーっと煙幕というか雰囲気用の水蒸気流すエフェクトで、自キャラが走ってるように見せるために、走るアニメになると速度が上がるーみたいな演出で使いたいです。
>ModifyExplod は動かない事のほうが多かった気がするので
mjsk
むぅ…一々Removeするくらいなら最初からremovetime設定して消えてもらったほうが良さそうですね。
相手をロックして以降の演出用なので影響与える存在無いですし。
-
解決しました、どうやらModifyExplodではvel関連を弄れないようです。
-
初歩的な質問かもしれませんが
HitOverrideをattr別で複数使おうとすると機能しないのですが
良いやり方はないでしょうか?
-
slot分けしても機能しない?
[State 9997]
Type = HitOverride
Trigger1 = 1
Attr = SCA, NA, SA, HA
Slot = 0
StateNo = 9998
Time = 1
[State 9997]
Type = HitOverride
Trigger1 = 1
Attr = SCA, NT, ST, HT, NP, SP, HP
Slot = 1
StateNo = 9999
Time = 1
みたいにすれば打撃喰らったら9998へ、打撃以外喰らったら9999へ移行するようになる
Slotは0〜7まで使えるから最大8種類のAttrに別々のステート振り分けられる
因みに省略時は0だから9998の方の「Slot = 0」は書かなくてもいい
-
Slotなんて知りませんでした
ありがとうございます
-
自分のヘルパーが自分のmid.posより高い位置にいるとき というトリガーを作りたいのですが
trigger1 = Const(size.mid.pos.y) < Pos Y と書いたのですが上手くいきません。
良いやり方はないでしょうか?
-
ヘルパー側のトリガーにするなら
trigger1 = Root,Const(Size.Mid.Pos.Y)+Root,Pos Y < Pos Y
とかでどうだろう
-
>>474
記述の意味が自分では解読不可能ですがそれを貼ったら上手くいきました。
rootはキャラ本体の値を使うってことだけはわかりました。
感激です。ありがとうございました!
-
Helper出した時にHelper独自のMid.Posを設定してなければ
本体と同じ値になるからConstの方にはRoot要らないね
例えば[Size]でMid.Pos = 0,-40と設定していたらConst(Size.Mid.Pos.y)は常に-40になる
この場合、Const(Size.Mid.Pos.y)<Pos yは-40<Pos yと同じで
本体がどこにいるかに関わらず「地面から」40ドットより上にいるって条件
一方、Const(Size.Mid.Pos.y)+Root,Pos y<Pos yは
本体が-30の位置(=地面から30ドット上)にいれば-40+(-30)<Pos yつまり-70<Pos yと同じで
地面から70ドットより上にいるって条件だし
本体が0の位置(=地面)にいれば-40+0<Pos yつまり-40<Pos yと同じで
地面から40ドットより上にいるって条件になる
つまり、「本体から」40ドットより上にいるって条件とみなせる
あと、Const(Size.Mid.Pos.y)<-RootDist yでも可だね
RootDist yってのは本体からの距離ね
-
なるほど Mid.Posはジャンプしても変わらないんですか
だから変化が無かったんですね
詳しくありがとうございます
-
割り込み失礼します
現在製作中のキャラのサイズを図ってみたところだいぶ小さいと言うことになって
しまったのですこし大きくしようと思うのですがedgeに拡大して保存するような機能
があったはずなのですが忘れてしまいました
どなたか分かる方がいらっしゃれば教えていただけないでしょうか?
-
イメージ>拡大縮小>倍率設定
拡大された絵を保存、これでOK
念のために言うと
edgeとかで絵を拡大しても描きなおししない限りドットは荒いまま
なので「CNS側で拡大表示設定する」のと結果は変わらない(むしろ手間の分無駄)
-
Azuma様教えていただき感謝いたします
試してみたところドットが荒くなってしまいました・・・
サイズはそのままでCNSでサイズを調整したほうが早そうなのでドット自体を大きく
するのはやめようと思います
教えていただき本当にありがとうございました
-
横からおせっかいながら
倍率を上げて荒くなった部分を修正するのであれば早いほうがいいですよ
もし、まだ立ち絵ぐらいしか書いてない!とかであればなおさら
完成した枚数が多ければ多いほど、あとから修正しようと思ったら大変ですしね
-
長方形の画像をひし形に「斜めに歪める」ツールってあるのでしょうか?
__
| |
 ̄ ̄
↓
_
/ /
 ̄
こんな感じに…回転ではなく角度をつけて歪めるイメージなんですけど…
-
一応ペイントでできる
-
確認しました、ありがとうございます!
-
常時監視でattackmulsetを複数使いたいのですが
複数のattackmulsetの条件が一致したときに効果を重複させるにはどうすればいいでしょうか?
例えば1つの条件で攻撃力1.5倍、もう1つの違う条件で攻撃力1.5倍
2つとも条件が一致したときに1.5×1.5で2.25倍になるようにしたいです。
それぞれ常時監視に書いただけでは重複されませんでした。
-
attackmulsetをvalue = var(?)にしておいて
var(?)を弄繰り回す。
効果を重複させるのは‥‥
無理だったような‥
‥
気がします。
-
一応言っとくとVar→FVarだね
FVar余ってるならFVar2つ使ってFVar(1)*FVar(2)みたいにするのが楽
片方だけ条件満たしてない時は対応するFVarを1にしとくだけでいいし
-
>>486
>>487
仰る通りにしたらできました。
ありがとうございます。
-
ヘルパーにダメージ補正をつけたいと思い常時監視にあるコンボ補正の数値を別のFVarに格納して
ヘルパーのHitDefのdamageに
damage = 元の数値*root,FVar(補正値)と記述したのですが
FVar(補正値)の値がヘルパーを出したときのコンボ数から変わらなくて困っています。
例えば10ヒット中にこのヘルパーを出してコンボが終わった後にヒットしても10ヒットした時のままの補正値になってしまいます。
FVar(補正値)を現在のヒット数にあわせてリアルタイムに変化させる方法はありますでしょうか?
-
HitDefのTriggerを!MoveContact&&!MoveReversedにする
HitDefは実行したら当たる(ガード・当て身含む)か別のHitDefまたはReversalDefで上書きしない限り有効なんだけど
パラメータに変数使っても実行したときの値で計算されてるから
Trigger1 = Time = 0みたいな実行の仕方だとTime = 0のときにパラメータの値が確定して
Time = 6に当たろうがTime = 9999に当たろうが上書きしない限りはTime = 0のときに計算した値で処理される
-
P2Nameによる特殊演出を仕込みたいんですけど対象となるキャラが複数体存在しており、公開停止になってるわけではないけど海外製作者だったり色々でデータが入手できないキャラがいます。
「演出発生しなかったよ!」って報告貰わない限りOKって考え方もアリでしょうけど、そもそも公開後に報告来ることも稀ですし…製作者として責任持って設定しておきたいところ。
この手の問題ってキャラ製作してると結構頻発しそうなもんですけど、皆さんはどう解決されているのでしょうか?
…P2Nameの一覧みたいなの公開してるサイトとか無いんでしょかね?
-
P2Nameの一覧サイトは知らんけどP2Nameの一覧と化してるキャラはいるから
cns覗かせてもらうといいんじゃない?
どういうキャラを対象としてるか分からんが、
無数にキャラがいるMUGENで対象全員に対応するのはほぼ不可能だから
把握してる範囲だけの対応でもいいと思うけどね
-
>>490
少しムラはあるけどできました!
ありがとうございます。
-
なるほど、ある程度は諦めるしかないということですね。
ありがとうございました。
-
東方仗助を作っているのですが、
絵をMUGENに取り込む際、
ジョジョキャラは横83.3%、縦107%という
特殊な縮尺にする必要があるのですが、
そうすると立ちとしゃがみが顔が全く違ってしまいます。
何か良い方法はありますでしょうか?
-
原作再現系のジョジョキャラにある、その縮尺は元ゲーの画面サイズ比がMUGEN比較で異なるから
そのまま1:1で表示すると横長のドットになっちゃうのを防ぐ意味で行われてるんだよね。
オリジナルでドット絵を描くんだったら横長のドットになんぞなるわけないんだから
気にせず普通に描いて1:1の縮尺で表示させればいいわけ。
-
>>496
>1:1の縮尺で表示させればいいわけ。
そうなると今までの奴を全部書き直す必要が・・・。
なんかそうしないとジョジョらしくないですし・・・。
諦めて書き直すべきなのか・・・、
それとも別の方法を模索すべきなのか・・・。
-
>>497
横から失礼します。
カプコンドットは縮尺が特殊なので、改変に使用する前に改変元スプライトを
MUGEN表示時のサイズ(1:1)に画像編集ソフトで補正してから改変してみては
いかがですか?
私がカプコンドットを何らかの形で使用する際はそうしています。
…今までの作られたドットに関しては1:1サイズに補正してから
細部を打ち直す、という作業が残念ながら必要になっちゃいますが、
それと引換にこれからは動作ごとに顔や他のパーツの整合性が狂うことはなくなりますよ。
-
>>497
1:1でも1.07:83.3でも自分が描きやすい方を選ぶのが一番ですが、
手描きジョジョは製作者さんが沢山おられるようなので、
サイズ等はそちらを参考にしてみてはいかがでしょうか。
どちらにせよ、早い内に方向性をしっかり定めておかないと
うちのミネアのように修正関係が大変になってえらい事に・・・。
-
>>499
オリジナルもほとんどが1.07:0.833です。
けど、そのオリジナルだと
顔がほとんど崩れていないんですよね・・・。
-
>>500
気のせいですよ。
1:1で補正の入らない素のままの自分のドットを信じて
製作を進めてください。
-
ttp://muvluv-alternative.game-server.cc/cgi-bin/mugen-up/upload.cgi?mode=dl&file=1160
pass=flygon
空中ダッシュとやらを作ってみたのですが
記述とか匙加減はこんな感じでいいのかな・・・?
(コピペするには長いのでtxt入ってます)
-
Physics=Nのy速度0で水平移動して
途中からStateTypeSetのPhysics=Aで重力付加した方が自然かな
-
>>503
空中でもN使って問題無かったんですね
地上=N、空中=Aと固執してました・・・
開始Nにしてtime=15でstatetypeset仕込むことにします
ありがとうございました
-
しまった地上はS/Cじゃまいか
空中蹴りの下降もNで良さそうだなぁ・・・
-
A・・・自動Gravity、Pos y>0で自動ChangeState「52」
S・・・自動VelMul「x=Const(Movement.Stand.Friction)」
C・・・自動VelMul「x=Const(Movement.Crouch.Friction)」
N・・・何もしない
だから空中技は基本的にAで良いんだけど
重力掛けたくない場合や着地ステートが割り込んで欲しくない場合はNにする
(x速度が0固定など摩擦の影響考慮しなくていい場合はSやCでも可)
あと、着地の割り込みはChangeStateなので相手に読ませるステートはAを避けた方が良い
Aにすると着地が割り込んだときにステート奪ってる側のcnsの52へ飛ぶからね
-
>>506
なるほどなー
取り掛かる時気をつけます
指摘部分入れました ついでに連続使用2回の制限も
ttp://muvluv-alternative.game-server.cc/cgi-bin/mugen-up/upload.cgi?mode=dl&file=1167
pass=flygon
-
最後に喰らった攻撃が弱Pとか小足だと崩れ落ちKOになるって記述を入れたいんですが
判断させるのをGetHitVarトリガーとかで行おうと思っています。
HitDefAttr = SC,NAと
GetHitVar(AnimType) = Lightで弱攻撃っぽいのを判断。
更にGetHitVar(Damage) < 30でダメージ量から判断させよう…と、思ったんですが
このトリガー、残りライフが10の状態で威力200の攻撃を喰らった場合も[10]を返してくれちゃいます。
残りHPに関係なく相手の攻撃ダメージの量を判断するor弱攻撃っぽいのを喰らったと判断する方法ってないでしょうか?
-
ダメージ量に関しては例え強攻撃でも
コンボ補正や逆根性値補正で30を下回ることもあるから
あまり当てにならないのでは?
やるとしたら本体のLifeが30以下の時にHelper呼び出して本体に重ねておいて
Helper側のGetHitVar(Damage)使って判定するとかが一番簡単なんじゃない?
相手のHitDefにHitOnce付いてると上手く取得できないけど
-
むむぅ、死にかけ限定でヘルパー使って判断ですか;
だとするとHitOnceの件も含めてアテにならな過ぎる可能性がありそう
諦めるかなー
>あまり当てにならないのでは?
なので、3つのトリガー重ねて信頼性高める(範囲も減っちゃうけど仕方ない)予定でした。
-
現在AIの作製にとりくんでるのですが
[State -1, 引き裂き]
type = ChangeState
value = 210
triggerall = var(59)>0 && roundstate = 2 ; AIフラグON、戦闘中
triggerall = power <= 5000 ; ゲージ5000以下
triggerall = p2statetype != A && p2statetype != L ; 相手が地上で、ダウンしていない
triggerall = p2bodydist X = [0,30] ; 相手が0〜30の距離にいる
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = stateno = 200
trigger2 = time > 10
でバグが出てMUGEN自体が落ちてしまいます。
triggerall = p2bodydist X = [0,30]に;を打って無効にするとちゃんと他は起動できるのですが何が原因なのでしょうか?
-
triggerall = p2bodydist X = [0,30] ; 相手が0〜30の距離にいる
↑この部分が全角スペースになっているから
-
>blankさん
全て半角のはずです。
別の
[State -1, 氷柱蜂起]
type = ChangeState
value = 900
triggerall = var(59)>0 && roundstate = 2
triggerall = p2statetype != A
triggerall = p2bodydist X = [-15,25]
trigger1 = statetype != A
trigger1 = ctrl
trigger2 = stateno = 200
trigger2 = time > 10
はちゃんと動きましたし・・・
-
矢印がずれてしまったので分かりにくかったかも知れません
[0,30]の後ろのスペースが全角になっているということです
記述の方がどうなっているかは分かりませんが>>511をコピペしたら全角になっていたので
-
>blankさん
そちらでしたか(汗
たしかに全角でしたが関係なかったみたいです・・・
-
多分ですが…
triggerallにp2statetypeかp2statetype=!が使えないかも
trigger1・2に動かしてみてはどうでしょうか?
-`)oO(確かtrggerall=stateno!=は蹴られるんだよなぁ…
-
あとはp2トリガーはallに使えないとかallの中に2個あるからとかかなぁ…
鬱姫のAI作った時allにはp2トリガー入れなかったと思います
タブンネ
-
3レスもすいません
タッグでゾンビになるのでtriggerall=alive=1も入れといた方がいいですよ
-
>Pekeさん
できました。ありがとうございます
ゾンビは困りますからね。
-
Randomで-120から120の範囲で乱数を発生させる記述って、ないでしょうか?
Ceil(Random/10+Random/50)
という記述で強引に0〜119を発生させることは出来るハズなのですが…
これだと範囲が1足りてないのが困るのと、プラスマイナスを出させる記述が思いつかなくて困っています;
-
(Random%241)-120
こんなんでいけない?
-
普通に「-120+Random%241」でいいんじゃない?
まあ0〜999を241で割った余りだから0〜206と207〜240とで確率が少し異なるけど
±を発生させる方法なら「1-2*Random%2」がある
-
タイムアップ時、特定数回復ってどうするのでしょうか?
[State -2];ラウンド終了時 ライフ回復
type = lifeadd
triggerall = !ishelper
trigger1 = roundstate > 2
trigger1 = alive
value = 100
ignorehitpause = 1
でやったのですがこれだと100回復した後、全快になってしまいました・・・
-
それだとトリガーが持続的に成立して何度も100回復しちゃうからね
常時監視ではPersistent使えないからVar使って回復済みフラグ立てて
そのフラグをトリガーに組み込むのが手っ取り早いかな
TriggerAll = !IsHelper
TriggerAll = RoundState > 2
TriggerAll = Alive
Trigger1 = Var(0) = 0
Trigger1 = Var(0) := 1;Var(0)に1を代入
みたいにすれば1度しか成立しなくなる
あとはRoundState < 2を条件にフラグをリセットしてあげれば2ラウンド目以降も実行できる
-
>>522
>>521
上手くいきました!ありがとうございますー
-
>blankさん
出来ました!ありがとうございます
-
通常攻撃(しゃがみ強P)を作っているのですが、
本体の動作とは別に、Explodを使って透過させた武器を持たせるように表示させています。
airのフレーム数を合わせると空振り時は問題ないのですが、
相手にヒットすると武器側はそのままの速度で動き、身体の方が遅れてズレてしまいます。
できればヒット時も身体と同期するようにしたいのですが、何か対処方法はありますでしょうか?
-
>>527
Explodのステコンにignorehitpause = 0
|
|
掲示板管理者へ連絡
無料レンタル掲示板