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

製作お助け掲示板

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

404Yes:2010/12/12(日) 14:25:41
kmfのkfm.cnsの


[State 191, 6]
type = PlaySnd
trigger1 = AnimElemTime(7) = 3
value = F5,3
volume = -80

←*ここ*

;---------------------------------------------------------------------------
; 挑発の動作
[Statedef 195]






;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[State 3210, pause]
type = pause
trigger1 = 1
time = 8
ignorehitpause = 1

[State 3320, Helper]
type = Helper
trigger1 = time = 0
name = "ttt"
ID = 3645
sprpriority = 6
facing = -1
pos = 600,20
postype = front
stateno = 192
supermovetime = 99999
pausemovetime = 99999

; (ヘルパー)
[Statedef 192 ]
type = A
movetype= I
physics = N
anim = 3645
ctrl = 0
sprpriority = 8

[State 191, AssertSpecial]
type = AssertSpecial
trigger1 = 1
flag = Intro

[State 3320, ChangeState]
type = DestroySelf
trigger1 = Time = 800

;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


を入れてみてください。
たぶんPauseより先にAssertSpecialが切れてしまっていると思います。

405Azuma:2010/12/12(日) 15:52:27
原因不明ですが、解決しました。
ヘルパーの抹消管理が狂っているのが原因だったようですが、どうも厳密には違うようで…よくわかりません;

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

406風吼:2010/12/14(火) 00:42:45
こちらでははじめまして。風吼です。
ずいぶん前からAKOFに参加したいとキャラクターを作ってきたのですが、
CNSで躓いて動けないでいます。
すごい基本的なことかもしれませんが、助けたいただければとてもうれしいです。

イントロでキャラクターを炎で覆い隠したいのですが、炎が表示できず悩んでいます。
分かる範囲で正しい配置をしていると思うのですが、何がおかしいのか…

;イントロ(試合開始前の登場演出アクション)
[Statedef 191]
type = S
ctrl = 0
anim = 190
velset = 0,0

[State 191, イントロ]
type = AssertSpecial
trigger1 = 1
flag = Intro ;イントロの状態

[State 191, エフェクト];炎柱
type = Explod
trigger1 = AnimElemTime(5) = 0
anim = 191
sprpriority = 999999
postype = p1
scale = 1.3,1.3
pos = 0,0
shadow = 68,68,68
bindtime = -1
ownpal = 1

[State 3005, 6]
type = EnvShake
trigger1 = AnimElem = 5
time = 30
ampl = -6
freq = 85
phase = 75

[State 191, ステート変更];アニメーションが終われば「通常立ち」のステートに変更する
type = ChangeState
trigger1 = AnimTime = 0
value = 0

今はこんな風になっています。どうかよろしくお願いします。

407blank:2010/12/14(火) 12:22:31
その記述なら表示はされるはずだから
Begin Action 191とそれに対応するsffのスプライトをチェックかな
あとは-2とかでRemoveExplod使ってたりしないかどうか
取り敢えずExplodが表示されない原因分かるまでEnvShakeをNullしてみては?
画面揺れてると確認しづらいでしょうから

ここからは個人的に気になる点だけど
・AnimElemTime(5) = 0とAnimElem = 5は条件的には同じだから統一した方がスッキリ
・PosType = P1とPos = 0,0は省略可
・炎エフェクトなのに影を付けてる

408風吼:2010/12/14(火) 14:58:45
blankさん。
アドバイスありがとうございます。
気になる点については修正させていただきましたが、まだうまくいきません。
SFF及びAIR、RemoveExplodの使用状況も確認しましたが、問題ないと思います。素人判断ですが…。
後、重要なことを一つ言ってなかったのですが、EnvShakeによる画面揺れも効果が出ていないのです。
いったい何が悪いのやら…。出来れば、また教えてほしいです。
よろしくお願いします。

409blank:2010/12/14(火) 17:31:36
helperに関しての質問なのですが、
場に出ている全てのhelperを数えることは可能なのでしょうか?

410Yes:2010/12/14(火) 17:36:11
・anim = 190が本当に5枚‥6枚あるかどうか。(一枚目がAnimElem = 0だっけ?)
・本当にStatedef 191に移行しているか?
・Explodが画面の外に表示されているのではないか?

確認してみてください。

411blank:2010/12/14(火) 17:41:30
じゃあAnimElem = 5の条件満たしてないんじゃない?
190が4枚以下でループしてる(例えば190に5枚目以降が存在しない)とか
或いは-2とかのChangeAnimが誤作動してるとか
まあAnimTime = 0でのChangeStateが成功してるなら可能性は薄いけど

Ctrl+Dでデバッグ情報見て、StateNoとAnimとスプライトNo(Animの右に表示されてる)あたりが
正常な値になってるかを確認してみて

412Yes:2010/12/14(火) 17:45:22
>>409
1対1なら
NumHelperとenemy,NumHelper
で何とかなるんじゃないですか?

そうでないなら‥どうかな。
enemy,ってたぶん複数を指定できませんよね。

413blank:2010/12/14(火) 17:58:23
>>409
Varに格納するんだったら
Type = Null
Trigger1 = Var(*) := NumHelper;自分のヘルパー数をVar(*)に格納
Trigger1 = 0;Trigger2を読ませる
Trigger2 = Var(*) := Var(*)+Enemy(0),NumHelper;敵1のヘルパー数をVar(*)に加算
Trigger2 = 0;Trigger3を読ませる
Trigger3 = Enemy(0),NumPartner;敵1に相方がいる場合(敵2がいる場合)
Trigger3 = Var(*) := Var(*)+Enemy(1),NumHelper;敵2のヘルパー数をVar(*)に加算
Trigger3 = 0;Trigger4を読ませる
Trigger4 = NumPartner;相方がいる場合
Trigger4 = Var(*) := Var(*)+Partner,NumHelper;相方のヘルパー数をVar(*)に加算
でおk

414風吼:2010/12/14(火) 18:50:41
>>410,>>411
お二人ともありがとうございます。
>>411

415風吼:2010/12/14(火) 18:55:14
すいません、途中で書き込んでしまいました。

>>410,>>411
お二人ともありがとうございます。
>>411で言われたように確認してみたところ、anime noとstate noが190でした。
spriteについては問題なく動いているようで、10枚全部回っているようです。
A-ignizと比較したところ、sprite noが191になっていないのが問題なんですかね?

416blank:2010/12/14(火) 19:55:48
>state noが190でした
>>406を実行したいならstate noが191であるべきでは?
多分5900(初期化ステート)から190へのChangeStateはあるけど
190から191へのChangeStateがないとかそんな感じじゃない?

190がどんなステートか知らないけど、190で特に何もしてないなら
5900から直接191へChangeStateしてもいいと思うよ

417blank:2010/12/14(火) 23:44:43
>>412
>>413
回答ありがとうございます。
実は改変自由のキャラを改変しているのですが、
そのキャラが使う正確なhelper数を計っていました。
helperがhelperを出している場合も、計れるのですか?

また、trigger1 = Time = 26のような設定をしていても、
Persistentが無ければ複数出てしまうのでしょうか?

418blank:2010/12/15(水) 02:07:14
ID指定せずにNumHelper使えば、孫ヘルパーも数えてくれるよ

ステコンは1Fに1回ずつしか実行しないから
Trigger1 = Time = 26ならPersistentによらず呼び出すのは1つだけ
但し、HitDef当てたりしてHitPauseTimeが発生してるときはTimeが止まるから
IgnoreHitPause = 1を付けてる場合は複数呼び出してしまう
2つ以上出したくないならPersistent = 0を付けておくのが無難

419ほえほえ:2010/12/15(水) 12:10:58
現在、キャラの透過処理ができずに困っています…。
作成したキャラクターを実際にm.c.mで表示すると(mugen実機上で表示すると)
背景色が残ったまま透過できませんでした。

尚使用している環境は
OS   …windows7
仕様ツール…Photoshop6.0
です。

D-Pixedを使用してもOSが適応されていないせいか
途中でフリーズします。

またPhotoshop6.0で作業する際は
絵を描く⇒インデックスカラーに設定する⇒pcxで保存する。
という順番です。

同じようにPhotoshopで作業されている方や
他にwindows7で作業されている方で
透過処理はこのようにしているという方がいましたら
私めにお教えください。

長文大変失礼いたしました…。

420blank:2010/12/15(水) 15:02:22
vistaでもD-pixedはこまめに保存してれば一応使えなくもないから7でもそうなんじゃない?
パレット番号交換しまくってるとフリーズするけど1~2回ならフリーズせずにいける
しばらく使っていればフリーズしやすい操作とか分かるから慣れればそこまで気にならない
それか「windows7 パレット編集」とか「windows7 パレットエディタ」あたりでググれば使えるツールあるんじゃない?

なんにせよMUGENでは必ず0番パレット(D-Pixedだと一番左上)が透過されるから
256色パレットエディタで編集しないと思い通りの色が透過されない場合が殆ど
だからフォトショとかをメインに使ってると逆に面倒だよ

421風吼:2010/12/15(水) 19:41:16
>>416
アドバイスありがとうございます。
いろいろと試しましたところ、無事エフェクトも表示されるようになりました。
みなさん。アドバイスどうもありがとうございました!
また悩んだら聞きに来ると思いますが、その時にはよろしくお願いします。

422blank:2010/12/15(水) 21:08:34
>>418
回答ありがとうございます!

またも質問になってしまうのですが、Helperを
[State 00]
Type = Helper
trigger1 = Time = 23(二つ目以降はtimeを2ずつずらしてます)
StateNo = 6058
ID = 6058
Name = "6058"
Pos = -50,-100
PosType = P1
Ownpal = 1
Persistent = 0

とこのような記述を位置などを変えたものを5個と

[State 20091, 2]
Type = Explod
trigger1 = time < 19(二つ目以降はtimeを2ずつずらしてます)
trigger1 = time > 1
Anim = 6042
ID = 20092
Pos = -10,-75
PosType = P1
Scale = 2-(Time*0.18),2-(Time*0.18)
Ownpal = 1
SprPriority = 3
IgnoreHitPause = 1
Persistent = 1
removetime = 1
Trans = AddAlpha
Alpha = 256-Floor(Time*13.2),256

[State 20091, 2]
Type = Explod
trigger1 = time < 14(二つ目以降はtimeを2ずつずらしてます)
trigger1 = time > 1
Anim = 6043
ID = 20092
Pos = -10,-75
PosType = P1
scale = 0.15+Time*0.24,0.15+Time*0.24
Ownpal = 1
SprPriority = 3
IgnoreHitPause = 1
Persistent = 1
removetime = 1
Trans = AddAlpha
Alpha = 200-Floor(Time*19.2),256

とそれぞれ同じように位置を変えた物を5セット一気に出しているのですが、
これを1P、2Pと同時に行うと重くなってしまいます。

他にHelperが3個以下あるのですが、やはり負担が大きいのでしょうか?
ちなみにHelperのMaxの値は56です

423ほえほえ:2010/12/16(木) 01:17:54
>>420
ご回答ありがとうございます。
色々試した結果、D-Pixedではなく
edgeにて透過色を指定 ⇒ IrfanViewでpcx保存が
windows7でもフリーズなく透過できることができました。

424blank:2010/12/16(木) 03:19:51
>>422
Helper5個にExplod10個か・・・
表示してるAnimのパレットがバラバラだとかなり重くなるとは思う
あと、Explodを毎F出し直してるのも重い原因かなScaleやTrans加工してるし

軽くしたいならsffに登録する画像自体を加工してMUGEN側では表示するだけにするとか
複数のエフェクトを1個に凝縮するとなお良し
折角そこまで記述書いたんだったら
本体にAssertSpecialのFlag=InvisibleとFlag2=NoBGとFlag3=NoFG追加して(Flag3は必要に応じて)
MUGEN上で表示してる絵をキャプチャしてsffに再登録するのも手だと思う
6042と6043が同系統の色だったら↑の方法やっても劣化は気にならない筈

425blank:2010/12/17(金) 02:07:36
>>424
回答ありがとうございます!

ある程度パレットを統一したら、大分軽くなりました
これから画像のパレットを統一する等で、試行錯誤していきたいと思います

426blank:2010/12/17(金) 20:28:24
すみません、またも質問なのですが
timeによって、飛んでいく速度が変わるhelperを作成しているのですが、
stateが変わると、timeが引き継がれないようで、速度が戻ってしまいます

次のstateに元のstateのtimeを引き継ぐには、どのようにすればよろしいでしょうか?

427wolf:2010/12/17(金) 23:04:20
timeじゃなくてGameTime使えばいいのでは?
helper呼び出し時のGameTimeを変数に格納しておいて、
格納したGameTimeと現在のGameTimeの差分とればいけるとおもわれ

428Azuma:2010/12/18(土) 21:25:56
または、-2か-3にtimeで変数が増加する命令を入れといて、その変数をhelperのステコンが参照する形式にするとか。


質問ですが、ヘルパーアーマーをキャラに使っています(テンプレそのまま)
攻撃がヒットした際に、ヒットポーズを無視してヘルパーが動くので
本体側アニメと「ナンバーは同じ」であっても本体と同ステート内でのtimeがズレてしまう現象が発生しています。

ヘルパーを「本体がヒットポーズ中は動かない」ようにしたいです。
アニメの本体&ヘルパー同期は下記の記述で行っておりますが、具体的な記述が掴めません。ご教授願います。

[State 15000, ChangeAnim]
type = ChangeAnim
trigger1= IsHelper(15000)
trigger1= Anim != Root,Anim
value = Root,Anim
ignorehitpause = 1

429blank:2010/12/18(土) 23:58:08
Type = ChangeAnim
Trigger1 = IsHelper(15000)
Value = Root,Anim
Elem = Root,AnimElemNo(0)
でおk

アーマーヘルパー自身はHitDef撃ってないだろうから
IgnoreHitPause = 1は付けても無意味だよ

430Azuma:2010/12/19(日) 00:00:12
ありがとうございます!
早速試してまいりますー

431愛茶:2010/12/19(日) 11:04:26
ども、お久しぶりです。

早速質問ですが。

2ndRSP等の暗転時の演出はどうすればできるのかな?と。
特にセフィロトの樹とかのスプライトに残像付けるアレとか。

Helper使うとは聞いてはいるが、イマイチピンと来ないです・・・OTL

ご教授お願いします(_ _;

432426:2010/12/19(日) 20:25:15
>>427
解決しました!
ありがとうございます!

433blank:2010/12/20(月) 00:01:50
>>431
当該キャラ持ってないんでどんな演出か分からんことには・・・
残像は拡縮してるのか、アニメ・表示位置は完全に同期or数F遅れなのか、何枚重なってるのかetc
色んな要素があるから一概にこうやればいいとは言えない
拡縮ならAngleDraw、アニメは>>429、表示位置はVar使えば数F遅れも可、重なってる枚数分Helper出す
みたいな抽象的なアドバイスしかできない

2ndRSPをデバッグモードで戦わせて、参考にしたい技のStateNoを確認してから
cns覗いてみるのが一番なんじゃないかな

434Azuma:2010/12/21(火) 22:39:28
キャラデータをいじっていたところ、唐突にフリーズするようになりました。
具体的には
「キャラ選択画面で、該当キャラを選択する」
「直後にMUGEN本体がエラーメッセージつきのではなく落ちる」

「Winmugen.exeは動作を停止しました。」
「問題の解決策をオンラインで確認できます(ry」といったOS(vista)のメッセージウィンドウが出る

といった状況です。
可能性としては、直前にいじっていたSFFかと思ったのですが古いSFFを代わりに入れてもフリーズするので不明です。

何かまずいデータを作ってしまったのでしょうか・・・? ご存知の方、お願いします。

435Azuma:2010/12/21(火) 23:01:21
スイマセン、自己解決しました!
お騒がせしました、申し訳ないです。

436風吼:2010/12/25(土) 00:36:39
またお聞きしたいことができたのでやってきました。
イントロで相手が喋ってからこちらを喋らせるイントロを作りたいのですが、どうすればいいのか調べてもわからないんです。
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

よろしくおねがいします。

437blank:2010/12/25(土) 10:26:14
相手がイントロ抜けるまで待機させてたらいいんじゃない?
何回か話させるなら無理かもしれないけど。
大抵イントロは190番台だと思うから
[Stateef 190] ; preIntoro
type = S

[State 190, ChangeState]
type = ChangeState
trigger1 = EnemyNear,StateNo != [190, 199]
value = 191(

438437:2010/12/25(土) 10:30:05
にわか意見なんで間違ってたらごめん
[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 ; (任意

439風吼:2010/12/25(土) 13:48:34
>>437>>438さん
アドバイスのおかげで相手のイントロ後に喋らせることはできたのですが、
相手のイントロ中に待機している動作をニュートラル以外に指定するのはどのようにすればいいのでしょう。
このイントロの最初の一枚を使いたいのですが、どうすればいいですか?
よろしくお願いします。

440blank:2010/12/25(土) 23:17:09
Type = ChangeAnim
Trigger1 = 1
Value = 193

Elemを指定しなければChangeAnim読み込む度に1枚目からスタートするから
↑みたいに毎フレームChangeAnim読ませていれば1枚目で固定できる

因みに↑使えば>>438の要領でStatedef 193に飛ばしたときに
Anim = 193(>>436の10行目)を省略できる

441風吼:2010/12/26(日) 00:05:24
>>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

442blank:2010/12/26(日) 00:45:43
ニュートラルってことは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でステートの流れチェックした方が良いよ

443wolf:2010/12/26(日) 01:27:52
思ったのですが、
この方法だと同じ方式のキャラ同士だと
試合が始まらないのでは・・・?

444風吼:2010/12/26(日) 23:16:10
>>442さん
アドバイスありがとうございます!
おかげさまで2P側もきちんと表示できるようになりました。

>>wolfさん
確かに動かないですね。同キャラ対戦させて同じイントロが出たら全く動かなくなりました。
ゲームの経過時間で次の行動に移動させるようにしたいのですが、そういうステートはないみたいですね。
GameTimeなんかはそれっぽいと思ったのですが、どうも違うみたいです。
とりあえずもう少し考えてみようと思うのですが、なにかいい意見があったら教えていただけると嬉しいです。

445blank:2010/12/27(月) 01:01:59
単純にTrigger2 = Time >= ○○でいいと思うよ
相手のイントロ待っていて、一向にChangeStateしないんだから
Timeはリセットされることなくカウントし続けるし

同キャラだったら特殊イントロという手もあるけど、
同じように相手のイントロを待つキャラが他にいないとも限らないから
どっちにしろ保険でTime使ったChangeState条件設定した方が良い

GameTimeはラウンドどころか試合跨いでカウントされる経過時間だから
ある時点のGameTimeをVarに記録して現時点のGameTimeとVarを比較したり
GameTime%16=0みたいなトリガーで16F毎に実行したりするのが主な使い方

446風吼:2010/12/27(月) 16:56:29
>>445さん
アドバイスありがとうございます。おかげで作成に成功しました!
ありがとうございました。

447Azuma:2010/12/30(木) 23:05:30
下記記述で「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

448blank:2011/01/02(日) 13:52:44
取り敢えず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で割り切れないけど大丈夫か?

449Azuma:2011/01/02(日) 15:26:31
大丈夫じゃない、問題だ

ありがとうございます!
上方向から揺れてほしいわけではないので、下の記述を使用したいと思います。

450blank:2011/01/02(日) 19:54:17
もう終った話蒸し返すようですけど、
sin() 使って VelSet すれば良かったんじゃないだろうか

451たらこ:2011/01/03(月) 01:36:12
すいません。helperの画像って薄く透明化させたり、フェードアウトとかってできますか?
自分レーザービームみたいなのを作ってまして。
やっぱりフェードアウトの画像とかも自分で用意するんでしょうか?
回答お願いします(><;)

452blank:2011/01/03(月) 02:06:41
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)に変える

453たらこ:2011/01/03(月) 03:06:55
お早い返答ありがとうございます。
えと、質問が悪かったみたいです。
自分で出したエフェクト(ビーム)に透明化などの処理をしたいのですが
(リュウの波動拳しかり、伊達政宗の飛び道具しかり)
中の記述を見てもよくわかりません
>>452さんのも試してみましたが撃ってるキャラ自身がフェードアウトするだけでした
やはり画像に何か処理を施す必要があるのでしょうか、でしたら描き直します

454blank:2011/01/03(月) 13:02:09
>>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かけてフェードアウト

455たらこ:2011/01/03(月) 14:02:42
おおおおぉぉぉ!できましたっ!
>>452さんお早い返答ありがとうございます。
フェードアウトも出来ました。
初歩的な質問で申し訳ありませんでした><

456Azuma:2011/01/05(水) 20:33:27
>>450
すんません、理解できないので詳しくお願いしまする。

457blank:2011/01/06(木) 17:35:39
>>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)です。

想定されている動きにはならないかもしれません。
すでに解決されているようなので「こんなのもあるんか」で留めておいたほうがいいかも

458Azuma:2011/01/07(金) 23:15:18
ありがとうございます!


別件で質問なのですが
イントロ演出中にキャラの位置が動くのですが、ラウンド開始時にステージ側で設定されたスタート位置に強制的に戻されてしまいます。
これを発生させないようにするには、どういった記述を行えばよいのでしょうか?

459blank:2011/01/08(土) 11:19:44
MUGEN本体の内部処理だからキャラ側ではどうしようもない

イントロ終了後のPosをFVarに格納しといて
StateNo=0&&Ctrl=1になったら(あるいはPosとFVarが違う値になったら)常時監視でPosSetして
強制的に戻されたものをキャラ側で強制的に戻し返すくらいが精々
それか、イントロでの移動を考慮してPreIntro(190番)でPosAddして
イントロ終了後に丁度スタート位置にくるようにするか

印象としては後者が採用されてることが多いかな

460Azuma:2011/01/08(土) 12:32:11
ひょっとして、東方(緋)とかメルブラの試合前移動可能なキャラの処理も、そういうのなのでしょうか?
具体的に「ここ!」ってステートがわかりにくいので、記述見てもよくわからなくて・・・・;

461blank:2011/01/09(日) 00:25:36
cns覗いてないから分からんけど、もしかしたら強制移動を防ぐ条件があるかもね
元々我流でやってるから>>459のは思いついた対策を挙げただけだし、
後者が多いってのも動画や自分のMUGENで見た印象だから実際にcns見たら違うかもしれん

力になれなくて申し訳ない

462Azuma:2011/01/09(日) 08:35:59
はい、わかりました。

丁寧な解答、ありがとうございました!

463mi:2011/01/10(月) 18:52:45
お世話になっております。 
制作に詰まってしまいまして、アドバイスをいただければと思います。

【作りたい技のイメージ】
画面の上と下から、大きな牙が現れ中央付近で相手を噛む技。
1回だけではなく、『ガン・ガン・ガンガンガン』と計5回、
最後の5回目の噛みつきがフィニッシュになります。

【備考】
・この技の前にガード不可能の全画面技があり、それが終わると自動的にこれに繋がります。(こちらは何とかできました)
・一連の技が終わるまでプレイヤーキャラは見えなくなっています
・牙は上下運動しかしません。
・できればタッグ相手も巻き込みたいです。


上牙、下牙とそれぞれをヘルパーにするのかな?
とは思うのですが、組み立てが苦手なもので悩んでいます。

分かりにくいところ多々あるかと思いますが、その際は回答も致しますので
ご教授願えますと幸いです。

464blank:2011/01/11(火) 00:15:43
▼▼▼▼▼▼
   ↓

   ↑
▲▲▲▲▲
って感じなのかな?
上下両方ともヘルパーHitDefでやっちゃうと1回で2ヒットしちゃうから
片方だけヘルパーで、もう片方をExplodで表示させるか
両方ヘルパーで、HitDefは片方にのみ積むか
両方Explodで表示させて、InvisibleをAssertSpecialしたヘルパーかAir側で透明(AS0D256)にしたProjectileで攻撃処理するか
のどれかかな

ヘルパーでやる場合はVelSet(Add)やPosSet(Add)で動かせばいいけど
Explodで4往復半の運動させるにはAir側で動かしてやる必要がある
ロック技の追撃演出なら当身されないようにProjectileで攻撃処理した方が無難かも

465mi:2011/01/13(木) 21:33:42
>>464

アドバイスありがとうございます!
はい、そういう図のものをイメージしております。
ヘルパーはちょっと苦手意識があったので、Explodと透明の組み合わせで処理してみようと思います。
ロック技はタッグ相手には通らないのかなという印象があって、防御不可能の設定を組み込んでみました。
テストすると色々出てくるかもしれませんが…; とりあえずこの通り進めてみます。
有難うございました!

466Azuma:2011/01/14(金) 21:28:14
「ヘルパー」に下記記述で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

467wolf:2011/01/15(土) 21:44:37
ModifyExplod は動かない事のほうが多かった気がするので
更新タイミングでRemoveExplodしてから再度をExplod実行したほうがいいかも

468Azuma:2011/01/15(土) 22:40:31
えーっと、画面下をぬべーっと煙幕というか雰囲気用の水蒸気流すエフェクトで、自キャラが走ってるように見せるために、走るアニメになると速度が上がるーみたいな演出で使いたいです。

>ModifyExplod は動かない事のほうが多かった気がするので
mjsk

むぅ…一々Removeするくらいなら最初からremovetime設定して消えてもらったほうが良さそうですね。
相手をロックして以降の演出用なので影響与える存在無いですし。

469Azuma:2011/01/17(月) 12:34:30
解決しました、どうやらModifyExplodではvel関連を弄れないようです。

470blank:2011/01/18(火) 22:12:17
初歩的な質問かもしれませんが

HitOverrideをattr別で複数使おうとすると機能しないのですが
良いやり方はないでしょうか?

471blank:2011/01/18(火) 22:36:44
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」は書かなくてもいい

472blank:2011/01/18(火) 23:39:03
Slotなんて知りませんでした
ありがとうございます

473blank:2011/01/20(木) 00:56:22
自分のヘルパーが自分のmid.posより高い位置にいるとき というトリガーを作りたいのですが
trigger1 = Const(size.mid.pos.y) < Pos Y と書いたのですが上手くいきません。
良いやり方はないでしょうか?

474blank:2011/01/20(木) 12:11:39
ヘルパー側のトリガーにするなら
trigger1 = Root,Const(Size.Mid.Pos.Y)+Root,Pos Y < Pos Y
とかでどうだろう

475blank:2011/01/20(木) 20:46:42
>>474
記述の意味が自分では解読不可能ですがそれを貼ったら上手くいきました。
rootはキャラ本体の値を使うってことだけはわかりました。
感激です。ありがとうございました!

476blank:2011/01/21(金) 00:30:43
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ってのは本体からの距離ね

477blank:2011/01/21(金) 22:47:53
なるほど Mid.Posはジャンプしても変わらないんですか
だから変化が無かったんですね
詳しくありがとうございます

478デリンジャー:2011/01/23(日) 23:59:52
割り込み失礼します
現在製作中のキャラのサイズを図ってみたところだいぶ小さいと言うことになって
しまったのですこし大きくしようと思うのですがedgeに拡大して保存するような機能
があったはずなのですが忘れてしまいました
どなたか分かる方がいらっしゃれば教えていただけないでしょうか?

479Azuma:2011/01/24(月) 13:01:09
イメージ>拡大縮小>倍率設定
拡大された絵を保存、これでOK

念のために言うと
edgeとかで絵を拡大しても描きなおししない限りドットは荒いまま
なので「CNS側で拡大表示設定する」のと結果は変わらない(むしろ手間の分無駄)

480デリンジャー:2011/01/24(月) 21:18:47
Azuma様教えていただき感謝いたします
試してみたところドットが荒くなってしまいました・・・
サイズはそのままでCNSでサイズを調整したほうが早そうなのでドット自体を大きく
するのはやめようと思います
教えていただき本当にありがとうございました

481wolf:2011/01/25(火) 19:29:34
横からおせっかいながら
倍率を上げて荒くなった部分を修正するのであれば早いほうがいいですよ
もし、まだ立ち絵ぐらいしか書いてない!とかであればなおさら
完成した枚数が多ければ多いほど、あとから修正しようと思ったら大変ですしね

482Azuma:2011/01/26(水) 18:59:44
長方形の画像をひし形に「斜めに歪める」ツールってあるのでしょうか?
__
|  |
 ̄ ̄
 ↓
 _
/ /
  ̄

こんな感じに…回転ではなく角度をつけて歪めるイメージなんですけど…

483blank:2011/01/26(水) 23:21:12
一応ペイントでできる

484Azuma:2011/01/27(木) 18:29:34
確認しました、ありがとうございます!

485blank:2011/01/30(日) 19:43:31
常時監視でattackmulsetを複数使いたいのですが
複数のattackmulsetの条件が一致したときに効果を重複させるにはどうすればいいでしょうか?
例えば1つの条件で攻撃力1.5倍、もう1つの違う条件で攻撃力1.5倍
2つとも条件が一致したときに1.5×1.5で2.25倍になるようにしたいです。
それぞれ常時監視に書いただけでは重複されませんでした。

486Yes:2011/01/30(日) 20:23:55
attackmulsetをvalue = var(?)にしておいて
var(?)を弄繰り回す。

効果を重複させるのは‥‥
無理だったような‥

気がします。

487blank:2011/01/30(日) 23:53:25
一応言っとくとVar→FVarだね
FVar余ってるならFVar2つ使ってFVar(1)*FVar(2)みたいにするのが楽
片方だけ条件満たしてない時は対応するFVarを1にしとくだけでいいし

488blank:2011/02/01(火) 01:11:57
>>486
>>487
仰る通りにしたらできました。
ありがとうございます。

489blank:2011/02/02(水) 20:48:40
ヘルパーにダメージ補正をつけたいと思い常時監視にあるコンボ補正の数値を別のFVarに格納して
ヘルパーのHitDefのdamageに
damage = 元の数値*root,FVar(補正値)と記述したのですが
FVar(補正値)の値がヘルパーを出したときのコンボ数から変わらなくて困っています。
例えば10ヒット中にこのヘルパーを出してコンボが終わった後にヒットしても10ヒットした時のままの補正値になってしまいます。
FVar(補正値)を現在のヒット数にあわせてリアルタイムに変化させる方法はありますでしょうか?

490blank:2011/02/02(水) 23:35:30
HitDefのTriggerを!MoveContact&&!MoveReversedにする

HitDefは実行したら当たる(ガード・当て身含む)か別のHitDefまたはReversalDefで上書きしない限り有効なんだけど
パラメータに変数使っても実行したときの値で計算されてるから
Trigger1 = Time = 0みたいな実行の仕方だとTime = 0のときにパラメータの値が確定して
Time = 6に当たろうがTime = 9999に当たろうが上書きしない限りはTime = 0のときに計算した値で処理される

491Azuma:2011/02/03(木) 21:02:27
P2Nameによる特殊演出を仕込みたいんですけど対象となるキャラが複数体存在しており、公開停止になってるわけではないけど海外製作者だったり色々でデータが入手できないキャラがいます。
「演出発生しなかったよ!」って報告貰わない限りOKって考え方もアリでしょうけど、そもそも公開後に報告来ることも稀ですし…製作者として責任持って設定しておきたいところ。

この手の問題ってキャラ製作してると結構頻発しそうなもんですけど、皆さんはどう解決されているのでしょうか?



…P2Nameの一覧みたいなの公開してるサイトとか無いんでしょかね?

492blank:2011/02/03(木) 23:48:43
P2Nameの一覧サイトは知らんけどP2Nameの一覧と化してるキャラはいるから
cns覗かせてもらうといいんじゃない?

どういうキャラを対象としてるか分からんが、
無数にキャラがいるMUGENで対象全員に対応するのはほぼ不可能だから
把握してる範囲だけの対応でもいいと思うけどね

493blank:2011/02/04(金) 01:03:06
>>490
少しムラはあるけどできました!
ありがとうございます。

494Azuma:2011/02/07(月) 13:37:08
なるほど、ある程度は諦めるしかないということですね。

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

495デグレ:2011/02/09(水) 21:46:35
東方仗助を作っているのですが、
絵をMUGENに取り込む際、
ジョジョキャラは横83.3%、縦107%という
特殊な縮尺にする必要があるのですが、
そうすると立ちとしゃがみが顔が全く違ってしまいます。
何か良い方法はありますでしょうか?

496Azuma:2011/02/10(木) 09:45:47
原作再現系のジョジョキャラにある、その縮尺は元ゲーの画面サイズ比がMUGEN比較で異なるから
そのまま1:1で表示すると横長のドットになっちゃうのを防ぐ意味で行われてるんだよね。

オリジナルでドット絵を描くんだったら横長のドットになんぞなるわけないんだから
気にせず普通に描いて1:1の縮尺で表示させればいいわけ。

497デグレ:2011/02/11(金) 16:36:37
>>496
>1:1の縮尺で表示させればいいわけ。
そうなると今までの奴を全部書き直す必要が・・・。
なんかそうしないとジョジョらしくないですし・・・。
諦めて書き直すべきなのか・・・、
それとも別の方法を模索すべきなのか・・・。

498Jaldabaoth:2011/02/11(金) 21:50:12
>>497
横から失礼します。
カプコンドットは縮尺が特殊なので、改変に使用する前に改変元スプライトを
MUGEN表示時のサイズ(1:1)に画像編集ソフトで補正してから改変してみては
いかがですか?
私がカプコンドットを何らかの形で使用する際はそうしています。

…今までの作られたドットに関しては1:1サイズに補正してから
細部を打ち直す、という作業が残念ながら必要になっちゃいますが、
それと引換にこれからは動作ごとに顔や他のパーツの整合性が狂うことはなくなりますよ。

499ミネアの人:2011/02/12(土) 04:09:08
>>497
1:1でも1.07:83.3でも自分が描きやすい方を選ぶのが一番ですが、
手描きジョジョは製作者さんが沢山おられるようなので、
サイズ等はそちらを参考にしてみてはいかがでしょうか。

どちらにせよ、早い内に方向性をしっかり定めておかないと
うちのミネアのように修正関係が大変になってえらい事に・・・。

500デグレ:2011/02/12(土) 10:30:56
>>499
オリジナルもほとんどが1.07:0.833です。
けど、そのオリジナルだと
顔がほとんど崩れていないんですよね・・・。

501Yes:2011/02/13(日) 00:29:07
>>500
気のせいですよ。
1:1で補正の入らない素のままの自分のドットを信じて
製作を進めてください。

502Peke:2011/02/14(月) 12:59:04
ttp://muvluv-alternative.game-server.cc/cgi-bin/mugen-up/upload.cgi?mode=dl&file=1160
pass=flygon
空中ダッシュとやらを作ってみたのですが
記述とか匙加減はこんな感じでいいのかな・・・?
(コピペするには長いのでtxt入ってます)

503blank:2011/02/14(月) 23:15:01
Physics=Nのy速度0で水平移動して
途中からStateTypeSetのPhysics=Aで重力付加した方が自然かな




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