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

製作お助け掲示板

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

362wolf:2010/10/11(月) 13:56:08
質問があります!
相手キャラをKOした場合に、
相手のKOモーション(ボイス)を経由せずに、KO状態にして、
さらにKO後のアニメを変更する方法ってあるのでしょうか?

363Yes:2010/10/11(月) 18:34:33
確か出来たと思います。

攻撃がヒットした瞬間、相手のstateを奪うと
stateを返すまで、相手のライフが0になってKO表示が出ても
KOモーションのstateに飛ばなかったような覚えがあります。
それで、ライフ0になったときようの場合分けをしたような‥しなかったような‥

>KO後のアニメの変更
この部分ちょっとあやしい。
stateを奪ったままでも時間が経てば
次のラウンドに進んだような気がするので
たぶん大丈夫じゃないですか?

364blank:2010/10/11(月) 20:28:50
負けた側はどんな状態でもRoundState進むからステート奪っておk
ただ、11,0に登録されてるKOボイスはcnsに依存せずMUGEN本体が勝手に再生しちゃうし
-2でLifeとかAliveとかを条件にPlaySndしてるキャラも例えステート奪おうと再生しちゃう
まあ無音Sndで飽和させれば再生中のKOボイス掻き消すことは可能だけどね

365名無し:2010/10/11(月) 22:24:02
すみません質問があります。
ヘルパー式の飛び道具にジャグルを設定したとしても、
攻撃がヒットした時プレイヤーのジャグルポイントが減らない様なんですが、
これはどうやって対処したらよいでしょうか?

といいますか、ヘルパー式の飛び道具の場合、
ジャグルは設定しないのが普通なんですかね?

366blank:2010/10/12(火) 00:02:01
確かヘルパーのは別個勘定だったと思う
わかんないけどそれっぽいのやりたいのなら
自分が知ってるのはvarでやるぐらいかなぁ

多分ね

367wolf:2010/10/12(火) 21:13:48
ありがとうございます!

なんとかなりました!

368名無し:2010/10/13(水) 12:36:12
>>366
アドバイスありがとうございます
やっぱり変数とかを使うしかないみたいですね

369Azuma:2010/10/18(月) 12:50:06
ttp://loda.jp/dteit009/?id=184
上記テキストにあるCNSで、特殊敗北演出を実行したいです(具体的には初代餓狼ギースのビル落下っぽいの)
理想の流れは書いてある通りなのですが処理の発想自体が悪いのか上手く作れませんでした。

現在の記述ですと
「250FのPause中」に「ヘルパーが150F目になった」ことを「本体が認識」して「LifeSetさせる」処理が機能しません。
詳しい方がいらっしゃいましたら解決策を教えて頂けますよう、よろしくお願い申し上げます。


ひょっとしなくても根源的な処理の発想が悪いorトリガーの無駄が多いとも思いますので
そういった指摘もお願い致します。

370blank:2010/10/18(月) 14:50:48
Pause中は-2を実行できないからね
やるとしたらPauseを150と100の2つに分けて100の方をLifeSetの下に持っていくか
ヘルパーがAffectTeam=Fで本体のタゲ取ってTargetLifeAddかな
後者やるならタゲ取る時に巻き込まないよう地中深い座標とかでClsn処理すべきだけど

371なだげつ:2010/10/21(木) 10:03:57
>>351-353
レスが遅れましたがありがとうございました。
とりあえず島村さんの言う方法をやってみたいと思います。
人間はまだ難しそうなので簡単な形のキャラから初めていこうかな、と

372Azuma:2010/10/21(木) 10:36:44
ちょっと気になる点は残りましたが、処理自体は上手く行きました!
ありがとうございましたー

373デグレ:2010/10/24(日) 13:18:50
製作中のリンクをMUGENで動かしてみたのですが、
歩きがちゃんとした形になりません。
下のURLの動画のようなダサい形になってしまいます。
ttp://www.nicovideo.jp/watch/sm12525671
どうすればよろしいのでしょうか?

GIFアニメ。
ttp://www42.tok2.com/home/mugenyes/uploda/src/file349.gif

374島村鰐:2010/10/25(月) 00:00:51
ダサい、というのも人それぞれなので何を以ってダサいと感じているのかって問題もありますがまあそれはさておき…
製作中の歩き方はおそらくバーチャファイターとかの3D格ゲーに良くあるすり足をイメージしてと思われますが、
それにしてはテンポが速いのと両足が地面から離れているのでぴょんぴょんと立ちポーズのまま跳ねて移動しているように見え、
主に後者のせいですり足移動の慎重なイメージとそぐわないのでおかしなことになっているのです。
足の位置を換えずにすり足でじりじり移動するのですから、両足を地面につけたまま右足を少し踏み出しては左足を引きずって引き寄せ、
左足をひきつけたら左足を踏みしめて右足をズズズッと前にすり出す…という感じで。
上下に跳ねてはいけません。
逆にテンポよくスピーディに移動したいなら、やはりちゃんと足の前後を入れ替えながら普通に歩くべきで、
専用の歩行パターンをちゃんと書き起こした方がよかろうかと思います。
足の前後位置を固定したままぴょんぴょんと跳ねていくというのはやはりないかと。

375blank:2010/10/25(月) 00:48:06
鉄拳システムのキャラ作るにあたって質問なのですが、
mugenでも地上9Aコマンドや立ち3Aコマンドって作れるもんなのでしょうか?どなたかご教授願います

376Yes:2010/10/25(月) 16:43:00
しゃがみ以降中や、ジャンプ移行中に出す形で作れますよ。

377Yes:2010/10/25(月) 19:06:49
>>373
移動速度とアニメーションの表示フレームを
色々と弄ってみては如何でしょうか。

378blank:2010/11/07(日) 18:15:14
手描きのキャラをつくるときに>>353に似たやり方でスキャナで取り込んだ後のものを
大きさを合わせた後トレスする感じで作りたいのですが
トレスに最適なソフトって何がいいのでしょうか…?ちなみにD4サイズです。

379otoshigo:2010/11/11(木) 14:48:54
失礼します。今の内から少しずつ記述的な事も勉強しておきたいと思っているので質問させてください。
必殺技で構えを変更する技を作ろうと思うのですが、それはCNSの基礎を勉強していけばおのずと作れる
ものなのでしょうか?普通の必殺技であれば教えて下さっている製作指南サイトもあるかと思うのですが・・・
よろしければ教えていただけないでしょうか。お願い致します。

380Yes:2010/11/11(木) 17:02:13
>>378
レイヤが使えるソフトならどれでも大丈夫だと思いますよ。
スキャナで取り込んだ画像だと、たぶん減色が必要なので
若干使い辛いですがDPixedが良いんじゃないですか。
自信ないんで、詳しい人補足してください。

>>379
おのずと作れると思います。
VarとChangeAnimを研究してください。
駄目だったら解説ページを作りますよ。

381otoshigo:2010/11/11(木) 18:21:08
>>380
VarとChangeAnimですね・・わかりました。これから一つずつ憶えていきたいと思います。
教えていただきありがとうございました!

382ケットシー:2010/11/12(金) 22:26:46
 ジャグル値がオーバーしたらエフェクトが出るようにしようと思いトリガー一覧見てたが・・・あれ?ない?
だめもとで以下の記述をしたらエラーが。もしかしてjuggleってトリガーに出来ないんですか?
[State -2];じゃぐるオーバーera-?
type =explod
trigger1 = juggle > 14
trigger1 = NumExplod(10002) < 1
anim = 10002
pos = 0,50
postype = p2
facing = 1
vfacing = 1
scale = 0.5,0.5
sprpriority = 2
ownpal = 0
ontop = 1
removeongethit = 0
bindtime =-1 ;0にするとエフェクトが出ない。
removetime = -1
vel = 0,0
id = 10002

[state -2];ジャグルオーバー消失
type = RemoveExplod
trigger1 = juggle = [0,14]
ID = 10002

383blank:2010/11/12(金) 22:36:44
できないよ

384ケットシー:2010/11/12(金) 23:41:57
>blankさん
 お早いレスありがとうございます。ううんジャグル値オーバーが画面でわかるようになれば楽でいいんだけど・・。
空中の敵に攻撃がhitもしくは地上の敵に当たったら浮く攻撃でveraddで代用できるませんかね?

385blank:2010/11/13(土) 09:32:55
P2StateType とか StateNo とか MoveHit
あたりを条件にして変数を加算していけばどうだろう

386blank:2010/11/13(土) 09:52:31
juggleは使い勝手悪過ぎてVarで代用してる人が多いから
どうにもわからなかったらjuggleタイプのコンボ制限あるキャラ覗いてみては?

387ケットシー:2010/11/13(土) 12:20:00
なんとか完成?まあそのうちなにか不具合でそうな気もしなくもないが。(タッグとかだとなんかバグりそう)
[State -2, ジャグル代わり1]
type = varadd
triggerall = movehit = 1
triggerall = p2statetype = A
trigger1 = stateno = [200,240]
trigger2 = stateno = [400,640]
trigger3 = stateno = [1000,1150]
trigger4 = stateno = [3100,3201]
v = 9
value = 1

[State -2, ジャグル代わり3];浮く攻撃
type = varadd
triggerall = movehit = 1
trigger1 = stateno = [250,280]
trigger2 = stateno = [1200,1240]
v = 9
value = 3

[state -2,ジャグル代わり7]
type = varadd
trigger1 = stateno = 810
trigger1 = time = 0
v = 9
value = 7

[state -2,じゃぐる0]
type = varset
trigger1 = p2movetype != H
trigger2 = enemy,GethitVar(hitcount) = 0
v = 9
value = 0

[state -2,ジャグルオーバー]
type = explod
trigger1 = var(9) > 14
trigger1 = NumExplod(10002) < 1
anim = 10002
ID = 10002
pos = 0,-40
postype = p2
facing = 1
vfacing = 1
scale = 0.5,0.5
sprpriority = 2
ownpal = 0
ontop = 1
removeongethit = 0
bindtime =-1 ;0にするとエフェクトが出ない。
removetime = -1
vel = 0,0
id = 10002

[state -2];ジャグルオーバー消失
type = RemoveExplod
trigger1 = var(9) = [0,14]
ID = 10002

388デグレ:2010/11/18(木) 23:04:42
Gororiさん
ドット絵板でいただいた3Dモデルのアドバイスなのですが、
詳しいことが分からないのでご教授お願いします。

とりあえず色々しらべて、フリー素材を
入手するところまではうまくいったのですが、
手に入れたファイルを開くことが出来ません。
拡張子は3dsとあるのですが、いくら調べても
開く方法が分からず・・・。

389Gorori:2010/11/19(金) 01:08:01
3ds形式は3D STUDIO MAXというハイエンドソフトの形式です。
開くのは少しいいソフトが必要です。

OBJ形式という一般的な3Dソフトで扱えるファイルも一緒にダウンロードできたと思いますが
ただ開くだけだとテクスチャなどの再設定が必要なので
いじらなくても使えるようにした状態でOBJ形式になおしたものを
旧アップローダーに上げました。パスは"link"です""の中の文字だけ。

拡張子がobjが3Dソフトで開くべきファイル。mtlなどはテクスチャ設定などの情報。jpgなどはテクスチャ

7Zipなので解凍してつかってください。

390デグレ:2010/11/19(金) 20:53:57
>>389
どうやって開ければいいのか分かりません。
何しろ3Dソフトを検索するとたくさん出てきて
何を使えばいいのか・・・。
一応Toystudioとblenderという2つのソフトで
開こうとしたのですが、Toystudioは
開こうとするとフリーズし、blenderでは
「このファイルは開けません」と出てきます。
どうすればよろしいのでしょうか?

後、OBJ形式のフリー素材が見つかりませんでした。
3ds形式は下のURLのサイトにあったのですが・・・。

ttp://www.zeldacapital.com/index.php

391デグレ:2010/11/19(金) 22:38:07
連投申し訳ありません。
今東方仗助も作っているのですが、中々うまくいきません。
一体どうすればよろしいのでしょうか?

問題点は以下の通りです。

1.ジョジョキャラ特有の顔や影、服のしわをどうやって作ればいいのかわからない。
2. 改変で作ろうとしているが、改変可能で仗助に使えそうなキャラクターがいない。
  (本当は承太郎と遠野志貴の改変で作りたいのですが、今現在承太郎で
  改変可能なキャラがおらず、遠野志貴も改変可能なキャラが見つからない。)

方向性としては他のジョジョキャラと比べても違和感の無いのを作りたいのですが・・・。
今現在の成果は下のURLでご確認ください。本当はドット絵板に投稿するべきなのでしょうが、
まだ投稿できそうな完成度に達していない・・・。
今はリンクが一時的に作れない時に東方仗助の製作を進める予定です。
東方仗助を作ることでリンクでは学べないことをいろいろ学べそうです。

ttp://www42.tok2.com/home/mugenyes/uploda/src/file379.png

392Gorori:2010/11/19(金) 22:58:14
3Dのソフトでファイルを開くというのはそのソフト用の形式を開くものが多いので
だいたいのソフトはファイルのインポートがあるのでそれを使ってみるといいよ。
ソフトの使い方まではわかりませんけど。

私が見つけたリンクの3Dは下記です。
ttp://gfx-3d-model.blogspot.com/search/label/3D%20Characters?max-results=4

393Gorori:2010/11/21(日) 02:46:23
デグレさんへ、Toystudioは使ったこと無いのでわかりませんがblenderはボーン(骨組み)が可能だったはず。
ボーンを設定すれば、もしくは可能なソフトで設定すればキャラクターを動かせますよ。
さらに時間軸が設定できるソフトならアニメーション管理も楽ですが。

394wolf:2010/11/22(月) 19:26:25
抽象的な質問になってしまって申し訳ないのですが、
現在、バリアーを持ってるキャラを作成しています。

バリアーはヘルパーで作成していて、自キャラの位置に固定させているのですが、
相手のステートを奪う攻撃をくらったと同時にバリアーの攻撃が相手にあたると
相手にステートを奪われたままの状態になってしまいます。

相手のステート記述を見ると、そのステートに入った場合、次の攻撃を喰らわないと抜けることができない状態でした
こういった状態を回避するのにいい方法はありますでしょうか?

395沫莉:2010/11/22(月) 20:20:24
順序的にはこんな感じでしょうか?
1:相手の攻撃で相手のP2stateへ移行する。
2:直後にこちらが設置したヘルパーによる攻撃発生。相手の攻撃が中断される。
3:本来されていた相手の攻撃が発生しない為、自キャラがP2stateから帰ってこれない。

……この場合、あまり言いたくないですが完全に相手側の不備かな、と言う感じがします。
相手のステートを奪う行動をした以上、本来は必ずステートを奪った相手が自ステートへ回帰できるようにしないといけない筈なのですが。
(最悪、中断される可能性がある技なら失敗時に相手が復帰できるようにしておかないと)

どうしても対策が必要な場合、相手のNameとStateNoを条件に、加えてステートを奪われて一定時間後に
本来の流れになっていない場合は常時監視でステート変更して強制回帰させる手もあるんでしょうが、
確実に不具合の温床になるのでお勧めはできません。神だとか論外だとかは正直別の話として、
相手のステートを奪ったまま放置するのも、相手にステートを奪われてる状態から勝手に回帰するのも
あまり良い印象はないやり方ですからね。

396wolf:2010/11/25(木) 23:07:26
>沫莉さん
>1:相手の攻撃で相手のP2stateへ移行する。
>2:直後にこちらが設置したヘルパーによる攻撃発生。相手の攻撃が中断される。
>3:本来されていた相手の攻撃が発生しない為、自キャラがP2stateから帰ってこれない。
そんな感じです!

やっぱやるとしたらステ抜けしかないんですかね・・・
ありがとうございました!

397ケットシー:2010/11/29(月) 23:38:56
KOされた時に猫の鳴き声がなるようにしたんですがBGMがあると聞き取りにくいので音量あげようと思ってたので
→キャラのCNSにそれらしいステートがない→ふむ?commonステートかな?→開いてplaysndで検索→ない?

KOされたときの音(SND11)の音量を上げたい時はどうすればいいのでしょうか?

398Yes:2010/11/30(火) 00:37:18
playsndで音量を上げても
音量の違いは人間ではわからないレベルです。
機能してない説もある。

playsndを2つ3つ重ねるのも他の音が消えやすくなってしまうので
お勧めできません。
あと、気持ち重くなるような気がする。(気のせいかも)

ので
SoundEngineなどを使ってsndファイルに入れる前の
wavファイルの音量を大きくするのがいいと思います。

SND11がどこで鳴らされているのかは僕も分からないです。

399blank:2010/11/30(火) 01:29:10
既に答えられてるけど
11,0に入れる「猫の鳴き声」のwav自体の音量を上げればいい
ただ、音声の加工はソフトによっては音質が劣化する可能性があるから注意
上で挙がってるSoundEngineは結構お勧め

それか、発想の逆転でAssertSpecialのNoMusic使ってBGMを一時的に消すとか

400ケットシー:2010/12/01(水) 23:56:43
>SoundEngine
 音量上がりました。ありがとうございます。ソフトの使い方はまだぜんぜん飲み込めてませんが。

 キャラ製作での難点の一つは複数のソフトの使い方を覚えないといけないこと・・・。

401Azuma:2010/12/09(木) 17:09:56
イントロ演出中([Intro]状態になるようにAssertSpecialを組んでいる)に、Pauseステコンを演出に用いることは不可能なのでしょうか?
スローモーション演出をしてみようとしたところ、キャラの動作は問題ないもののラウンドコールが連呼されるようになってしまいまして…

402Yes:2010/12/12(日) 01:54:14
>>401
AssertSpecialをヘルパーに記述して
Pauseの発動している時間が
AssertSpecialの発動している時間の中に納まっていれば
大丈夫です。

statedef-3にAssertSpecialを入れても
何とかなるかもしれません。

403Azuma:2010/12/12(日) 13:17:39
ヘルパー式のは既に試してみましたが、上手くいきませんでした。

改めて調べたところ
Pause中に本体同様「止まっている」ために1Fのみ有効のAssertSpecialの発動が切れているのが原因のようです。


[State 6420, Helper]
type = Helper
trigger1= Time = 0
trigger1=!NumHelper(6425)
name = "Intro_AssertSpecial"
stateno = 6425
ID = 6425
pos = 0,0
postye = p1
pausemovetime = 99999
supermovetime = 99999

で、呼び出しているのですが…何故止まるのだろう(=ω=;)

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見たら違うかもしれん

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




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