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

製作お助け掲示板

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

721名無っしん:2011/08/20(土) 11:28:24
今作ってる技(空中竜巻旋風脚みたいな技)のステートをどういう記述にすればいいかわかりません

ttp://www42.tok2.com/home/mugendteita/Suploda/uploda/src/file1000.png
(上昇時に発動すると空中竜巻のように高く飛ぶ)
↑こういうふうにしたいんですが
veladdだけを使うと空中で一度止まってから浮く感じになってしまいます
何を使えばいいんでしょうか?

722blank:2011/08/20(土) 13:19:59
Physics = Aになってるのかな?
Aだと自動で重力かかるからNにした上でVelAddした方が良い

Nにした場合は着地の内部処理(ChangeStateのValue = 52)が働かなくなるから
低空で「下降中に発動」した場合にPos y >= 0とVel y > 0でChangeState用意する必要があるけど

723名無っしん:2011/08/21(日) 11:44:01
Physics = Nにしても上昇中に発動すると一度止まってから動き出します・・・
「上昇中に発動」と「下降中に発動」でステート分けたほうがいいのかな

724blank:2011/08/21(日) 12:03:50
もしかして
[Statedef ****]
Type = A
VelSet = 0,0
とかになってない?
ここにVelSetがあると、そのステート読み込んだ瞬間に速度上書きされるよ

そうでないなら記述コピペしてもらった方が解決早いかも

725名無っしん:2011/08/21(日) 12:35:31
2行目訂正

「上昇中に発動したとき」と「下降中に発動したとき」でステートを分けてveladdの数値を別にすればいいのかな

726名無っしん:2011/08/21(日) 12:41:25
あ!できました!
VelSet = 0,0消したらできました!ありがとうございます!

727ケットシー:2011/08/22(月) 12:01:32
突進攻撃兼突進当身技を作ろうとしたのですがReversalDefを書き込んだらhitidefが昨日しなくなりました。もしかしてこの二つは同時に機能しないのでしょうか?
CNSは
[Statedef 3300];猫の足音
type = S
movetype= A
physics = S
juggle = 0
poweradd= 0
ctrl = 0
velset = 0,0
anim = 3300
sprpriority = 2

[State 3300, 超必殺技暗転時間停止]
type = SuperPause
trigger1 = time = 0
anim = 100 ;超必エフェクトのアクションナンバー。通常は「fightfx.air」のアニメを使うが、
;左に「s」を付ければ「自分のairファイル」のアクションナンバーが使える。
pos = 25, -57 ;超必エフェクトの座標(X軸,Y軸)
sound = 20, 0 ;超必発動サウンド。通常は「common.snd」の音を使うが、
;左に「s」を付ければ「自分のsndファイル」の音が使える。
poweradd = -2000 ;パワーゲージ増減量
time = 33 ;ポーズする時間(フレーム)
movetime = 0 ;ポーズ中に動ける時間。timeよりも多いとバグる(デフォルトは0)
;darken = 1 ;ポーズ中画面を暗転するか否か(0=しない・1=する)
;暗転する色は「ownpal」の有無により「Explod」や「ヘルパー」にも影響するので注意。
p2defmul = 1.0 ;直前のステートを「SuperPauseを設置したステート」でキャンセルした場合、
;『相手に一時的に与える防御力乗算値(float)』。
;デフォルトは0。(相手の防御力が上がり、ダメージ量に下方修正が掛かる)
;1にすれば『ダメージ補正が掛からなくなる』事になる。
;相手が食らい状態以外(相手のMoveTypeが「H」以外)になれば解除される。
unhittable = 1 ;ポーズ中自分を無敵状態にするか否か(0=しない・1=する)
;デフォルトは1。

[State すり抜け]
Type = PlayerPush
Trigger1 = time > 3
Value = 0

[State 3300, 物理的なキャラの幅]
type = Width
trigger1 = (AnimElemTime (2) >= 0)
value = 15,0 ;この場合キャラの幅を一時的に前に15ピクセル伸ばす事になる。
;値の意味は「前方のピクセル増減量,後方のピクセル増減量」

[State 2];速度を与える
type = Velset
trigger1 = time = 3
x = 40
y = 0

[State 3300]
type = varset
trigger1 = movehit = 1
var(13) = 1

[State 減速]
Type = VelAdd
Trigger1 = time < 30
Trigger1 = Vel X > 0
X = -0.5

728ケットシー:2011/08/22(月) 12:02:02
 続きです。

[State 3300, ヒット定義]
type = HitDef
trigger1 = (AnimElemTime (2) >= 0)
attr = S, HA
damage = 200, 20
animtype = Hard
guardflag = L
hitflag = MAF
getpower = 0,0
priority = 7, Hit
pausetime = 0, 0
sparkno = 0
sparkxy = -10, -76
hitsound = 5, 0
guardsound = 6, 0
ground.type = low
ground.slidetime = 10
ground.hittime = 10
ground.velocity = -1,0
air.type = High
air.velocity = -1.-5
air.fall = 1
fall.recover = 0
air.juggle = 1
p2stateno = 3111

[State 1105]
type = ReversalDef
trigger1 = (AnimElemTime (2) >= 0)
reversal.attr = SC,NA,NT
pausetime = 10,10
p1stateno = 1107
p2stateno = 1109


[State 2];速度を与える
type = Velset
trigger1 = movehit = 6
x = 0
y = 0

[State 3100, ステート変更]
type = ChangeState
trigger1 = movehit = 7
value = 3101
ctrl = 0
[State 3300];停止stateに移行
type = ChangeState
trigger1 = time > 11
trigger1 = Vel x < 7
trigger1 = var(13) = 0
value = 1106

729blank:2011/08/22(月) 22:51:19
ReversalDefとHitDefはお互いに上書きし合う関係だから
同一フレームで両者が機能することはない
後に読み込んだ方が機能するから同じステート内なら下に記述した方が、
常時監視と個別ステートなら個別ステートに記述した方がそれぞれ機能する

どうしても両方機能させたいなら片方をヘルパーに肩代わりさせるしかない

730blank:2011/08/25(木) 01:28:49
上の方から降りてくるイントロを作りたいんですが、どの様な記述をすればいいんでしょうか?
velsetやveladdを使っても奇妙な動きをしてしまいます。

731blank:2011/08/25(木) 02:38:47
[Statedef 190]のパラメータとしてPhysics = Nを付けるか
StateTypeSetステコンでPhysics = Nに設定すれば
内部処理の重力・摩擦がかからないからVelSetやVelAddで設定した通りの動きになる
有翼キャラとかがゆっくり下降してくる感じなら
最初にVelSetしてPos y >= 0になった時点でVelSetとPosSetのy = 0で着地

あとはScreenBoundステコンのMoveCamera = 0,0でカメラが自キャラを追わないようにしたり
PlayerPushステコン使ったりClsn2に何も設定しないことで相手との押し戻しを避けたりして
動きの妨げになる原因を減らすことも割と重要

732ケットシー:2011/08/25(木) 19:25:43
>729
>どうしても両方機能させたいなら片方をヘルパーに肩代わりさせるしかない
 なんとか出来上がりました。アドバイスありがとうございます。(なんかまだ不具合でそうだけど)
 流れとしてはヘルパーと本体攻撃判定をだす→ヘルパーに攻撃当たったら相手を木偶ステート→同時に本体に本体に変数返してそれをトリガーに反撃ステートへ
 という流れになっています。

733初歩的な質問で申し訳ないです・・・:2011/08/26(金) 23:47:17
小ポトレ(9000,0)を登録したのですが、
キャラセレクトでは正しく表示されますが
戦闘中は黒く潰されてしまいます
(※ただ透過色に設定している箇所は正しく抜けています)
これはどうすれば正しく表示されるでしょうか…?

734Peke:2011/08/27(土) 00:10:49
パレット共有に失敗してるかもしれません
9000,0は本体色変更(palfx)と連動するため強制的に本体とパレット共有されます
なので本体と同じパレット構成にすれば大丈夫かと

具体的には0,0をbmpで保存してペイント等で開き、(win7のペイントはクリップボードの画像を強制で24bit変換する欠陥品なので×)
9000,0を貼り付けて別名保存したあとsffの本体画像の隣に再登録
です

735初歩的な質問で申し訳ないです・・・:2011/08/27(土) 13:38:18
>Peke様 
お答えいただきありがとうございました。
しかし…現状うまくいっておりません…。
本体パレットと小ポトレのカラーを共有化させ、
登録スプライトの順番を
「小ポトレ」「大」「0,0」で登録しましたがやはりうまくいかず…
またFighter Factory Ultimateというツールを使っていますが、
こちらでbmp(またはpng)の画像を開くと「黒く」色化けされて表示されます。
確信はありませんが、おそらくここが修正されればうまくいく気もするのですが…
良い方法がございましたらお教えください…

736blank:2011/08/27(土) 15:04:46
対戦画面上の小ポトレはact読み込むから
actで色指定してないパレット番号を小ポトレの画像で使ってるとシルエット状になる
小ポトレ画像からact作ってそれをdefで指定すればいける筈

あと、大ポトレは一般的にパレット共有しないから
小ポトレと0,0の間に挟むのはよろしくない

737Peke:2011/08/28(日) 17:52:16
申し訳ない
自分はSAEしか分かりませぬ…

本体とパレット合わせても化けるなら
小ポトレが本体スプライトの共有範囲外に並んでいるのが原因です

SAEならすぐ直せます
SAE起動してsffを開き、小ウィンドウの小ポトレのコマを切り取って本体共有範囲内に挿入(本体スプライト上書き注意)
もしくは小ポトレのbmpを共有範囲内に共有チェックボックスonにして番号9000,0で挿入すればいけるかと
座標は小ポトレの左上がメインウィンドウの十字線中央です

738Peke:2011/08/28(日) 19:37:02
おっと失礼
小ポトレのみ強制共有なのでsff側の共有設定はどっちでもいいんでした
うちの子のsffだとこんな具合↓
ttp://www42.tok2.com/home/mugendteita/Suploda/uploda/src/file1005.PNG
大ポトレは一番下側の非共有コマ部分に独自パレットで入ってます

739初歩的な質問で申し訳ないです・・・:2011/08/29(月) 22:19:29
アドバイスしていただいた皆様ありがとうございます。
またpeke様は丁寧な図解までしていただいて真にありがとうございます。
私のほうでもツールを変えながら皆さんのご意見を参考に設定してみようと思います。

740*-*:2011/08/30(火) 03:44:01
小ポトレや SAEなどのツールの話題が出たところで・・・
ちゃりこん(charicon)というソフトがあり
キャラのフォルダーに小ポトレのアイコンを作成してくれるのですが
SAE以外で作成したSFFからは、アイコンが作成出来ません。
上記の話題に上がった ポトレの差し込む位置や パレット共有などは
各ソフトで、"クセ"が出ますので注意されたし。

741初歩的な質問で申し訳ないです・・・:2011/08/30(火) 21:41:39
小ポトレ直りました〜!!!!!!!!!
皆様にはもう足を向けて寝ることが出来ません…。
本当に本当にありがとうございました!!

742古宮:2011/09/03(土) 20:08:34
どうも、ネコマタを作ろうとしている者です。
ひとまず必須をMUGEN上で見とこうと思い、地球氏のKFMのスプライト入れ替えた
のですが、何故かしゃがみがMUGEN上でほんの僅かに前後にガクガク動きます。
現物もニコろだに上げときます。3406のpass「女神転生」です。
教えていただけると助かります。

743blank:2011/09/03(土) 20:19:56
11-0、11-1、11-2、11-3のx軸がsffの時点で合ってないよ

744古宮:2011/09/03(土) 20:56:53
>blakさん
SAEでairを見る限りではずれてないよう見えるのですがそれとはまた別ということでしょうか?
sffの時点で揃ってないといけないということですか?

745古宮:2011/09/03(土) 21:26:26
ひとまずSAE以外で試してみます。
ありがとうございました。

746blank:2011/09/03(土) 21:59:38
defで指定してるnekomata.airの方をSAEに読ませてるよね?
kfm.airも一緒に入ってたけど・・・

747nemesisfate:2011/09/06(火) 21:38:10
■Sprite Database
ttp://sdb.drshnaps.com/
■The Spriters Resource
ttp://spriters-resource.com/
■RetroGameZone
ttp://retrogamezone.co.uk/
■GSA−GameSpriteArchives
ttp://www.gsarchives.net/index2.php
■deviantART: where ART meets application!
ttp://www.deviantart.com/
■Pixel Warehouse
ttp://pixel.garoux.net/
■Streets of Rage Online
ttp://www.streetsofrage.net/
■Sprites INC
ttp://www.sprites-inc.co.uk/

748blank:2011/09/10(土) 14:09:10
途中送信すいません汗
キャラにヘルパーつけようと思うんですけど、サイズは揃えた方がいいんですかね?
ヘルパーだけ0.25倍表示とかできるといいのになー

749blank:2011/09/10(土) 21:48:05
Type = Helperのパラメータに
Size.xScale = .25
Size.yScale = .25
付ければおk

750blank:2011/09/10(土) 22:44:58
>>749
すいません、ありがとうございます!
何故気付かなかったし…

751ケットシー:2011/09/19(月) 07:45:07
イントロで、タオカカよろしくドアップカメラ目線→画面外から走ってくるというのにしようと思ったのですがなかなか上手くいきません
 現状CNSは
;イントロ(試合開始前の登場演出アクション)
[Statedef 191]
type = S
ctrl = 0
anim = 190
velset = 0,0



[state 191]
type = varset
trigger1 = time = 0
fvar(3) = BackEdgeBodyDist

[state 191]
type = posset
trigger1 = time = 190
x = -80

[state 191];加速
type = veladd
trigger1 = time = 190
x = 15

[state 191];停止
type = velset
trigger1 = BackEdgeBodyDist = fvar(3)
x = 0

[State 191, 特殊効果];試合が開始するまではこのコントローラを使おう(※2)
type = AssertSpecial
trigger1 = 1
flag = Intro ;イントロの状態


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

という風になっています。どなたかアドバイスお願いいたします。

752blank:2011/09/19(月) 11:18:46
どう上手くいってないのか分からないことには…

PhysicsがSになってて摩擦が働いてるせいで勝手に減速してるとか?
それならStateDefのとこかStateTypeSetでPhysics = Nにすれば直る

あと、VelSetとChangeStateの条件が厳し過ぎるから
Trigger1 = BackEdgeBodyDist = FVar(3)じゃなくてTrigger1 = BackEdgeBodyDist-FVar(3) = [-7.8,7.8]
とかにしないと滅多に成立しないと思う
7.8ずつ幅を持たせてるのは速度が15だから7.5ずつに少しゆとりをつけておく感じで

さらに、ScreenBoundで画面外に出られるように設定しないと駄目だと思う


190番Animの190F目まではドアップカメラ目線のデカイ画像で191F目以降は走りモーションが登録されてるんだよね?
それよりは
[State ]
Type = ChangeAnim
Trigger1 = Time = 190
Value = 100;走りモーション
[State ]
Type = PosSet
Trigger1 = Anim = 100
x = -80;Pos xは画面中央基準だから-80だと画面内じゃないか?
Persistent = 0
[State ]
Type = VelSet
Trigger1 = Anim = 100
x = 15
Persistent = 0
として
ChangeStateの2番目のTrigger1をTime>200じゃなくてAnim=100にした方が管理が楽だよ

753ケットシー:2011/09/20(火) 22:25:33
>752
>どう上手くいってないのか分からないことには…
 失礼しました。何故か停止してくれのが問題でした。

 で、VelSetとChangeStateの条件をご指摘の通り変更したのですが、何故か2p側だととまるのに1p側だち走り続けるという状態に??

[Statedef 191]
type = S
ctrl = 0
anim = 190
velset = 0,0



[state 191]
type = varset
trigger1 = time = 0
fvar(3) = BackEdgeBodyDist

[State ]
Type = ChangeAnim
Trigger1 = Time = 190
Value = 1230

[state ]
type = ScreenBound
trigger1 = 1
value = 0
movecamera = 0,0


[state 191]
type = posset
trigger1 = anim = 1230
trigger1 = TeamSide = 2
x = 300
Persistent = 0

[state 191]
type = posset
trigger1 = anim = 1230
trigger1 = TeamSide = 1
x = -300
Persistent = 0

[state 191];加速
type = veladd
trigger1 = anim = 1230
x = 8
Persistent = 0

[state 191];停止
type = velset
trigger1 = backedgebodydist - fvar(3) = [-7.8,7.8]
x = 0


[State 191, 特殊効果];試合が開始するまではこのコントローラを使おう(※2)
type = AssertSpecial
trigger1 = 1
flag = Intro ;イントロの状態


[State 191, ステート変更];アニメーションが終われば「通常立ち」のステートに変更する
type = ChangeState
trigger1 = backedgebodydist - fvar(3) = [-7.8,7.8]
trigger1 = anim = 1230
value = 0

backedgebodydistって1p側と2p側だと違う値を返すのでしょうか?

754blank:2011/09/20(火) 23:36:28
TurnとかとかFacingとかFaceP2関係は使ってない?
Time = 0で記憶した「BackEdge」と、停止するか否かを判断するときの「BackEdge」が同じ側じゃないと計算狂うよ
BackEdgeBodyDistは「その時点で背を向けてる側のステージ端から自分までの距離」だからね

755Peke:2011/09/21(水) 00:03:19
鬱姫のイントロ移植してもいいのよ?

自分のはのりもののイントロを参考に開始と同時に本体透明にしてexplodでやりくりしてます

756ケットシー:2011/09/21(水) 02:19:15
>peke2さん
>鬱姫のイントロ移植してもいいのよ?
 お言葉に甘えさせていただきました。これでα版公開できます。

757レベッカ:2011/10/04(火) 09:47:30
現在突進技を作っていますが、
連続ヒットとして設定するとどうしても2発目以降がガードできず
実質ガード不可のようになってしまいます。
これを2発目以降もガードできるようにするにはどうしたらよいでしょうか?

[State 1320,HitDef]
type = HitDef
Trigger1 = time = 2
Trigger2 = time = 4
Trigger3 = time = 6
Trigger4 = time = 8
Trigger5 = time = 10
attr = S, HA
animtype = Hard
air.animtype = UP
damage = 30
getpower = 0
givepower = 35, 35
guardflag = M
hitflag = MAF
pausetime = 5,5
sparkno = S8000
guard.sparkno = 0
sparkxy = 0, -30
hitsound = s1,30
guardsound = s4,0
ground.type = Low
ground.slidetime = 20
ground.hittime = 20
ground.velocity = -8
air.velocity = -4.5,-7
yaccel = .5
air.fall = 1
fall.recover = 0
ground.cornerpush.veloff = 0
air.cornerpush.veloff = 0
envshake.time = 10
envshake.ampl = 2
forcestand = 1

758デグレ:2011/10/04(火) 22:07:07
アニメーションって下書きを作るのと
初めから一気に書くの、どちらが効率が良いのでしょうか?

今一気に書いているのですが、どうも先が見えず、
かといって下書きを作るのも手間が・・・・。

759blank:2011/10/04(火) 22:39:07
製作というかわかりませんが自分のキャラをみなぎってきたトーナメントみたいにみなぎらせたいのですが、
huwahuwa氏のみなぎらせ方の説明書を見てもあまりわかりづらいので誰か詳しく教えていただけないでしょうか?
(ちなみにみなぎらせたいキャラはシエルとスバルです)

760blank:2011/10/04(火) 23:27:20
>>757
ステ番とAttrから察するに超必だと思うけど、SuperPauseか何か使ってる?
止められてる最中に2発以上の攻撃を受けると
1発目で150に飛ばされた後、2発目を150のTime=0で受けることになって
ガード処理が実行できずに5000に飛ばされる(StateType=Sの場合)
だから暗転中に2段以上ヒットさせるような技は実質ガー不

あまり良い手ではないけど、どうしても暗転中に攻撃させたい場合は
相手のStateNoやCommandとCtrlでガード中か否かを判定して、
ガード中ならP2StateNo=150+2*(P2StateType=C)+4*(P2StateType=A)で
ガードステートに強制移動させるという方法がある

Pause系統使ってないのにガー不になるんだったら>>757の記述だけじゃ原因分からん


>>759
詳細知らんけどwikiで大会ルール見た感じとしては
StateDef -1にあるChangeStateのTrigger全部コメントアウトして
Trigger1 = Random = 1とかで適当に技発動させりゃいいんじゃないの?

761レベッカ:2011/10/06(木) 00:43:49
>>760さん
ありがとうございます。
無事解決できました
尚、ご指摘のとおりSuperPauseを使用していました

762blank:2011/10/08(土) 11:09:27
初歩的ですみませんが
キャラのCNSの内容を更新するためにはわざわざMUGENを再起動させるしかないんでしょうか?
再起動させなくてもCNSが更新されてるっぽい内容の動画を見つけたんですが本当にできるんでしょうか。

763貧乳派:2011/10/08(土) 12:36:22
>>765
試合中であればShift+F4で更新したものを読み込めます。再起動扱いになるはず。

764blank:2011/10/08(土) 12:41:34
知らなかったです。今までずっと再起動してました。ありがとう!

765blank:2011/10/08(土) 13:22:19
763>>そんな方法があったとは・・・。

ところでkanajlo氏の改造新MUGENのように新MUGENのmugen.exeを改造するにはどうすればいいか知っている人はいませんか?

766blank:2011/10/08(土) 14:21:33
逆アセの知識持ってないときついと思うよ
簡単な改造だったらバイナリエディタで根気強く試行錯誤すればできるかもしれんが
改造してる本人に聞くか、プログラミングを勉強した方がここで聞くより確実かと

767blank:2011/10/13(木) 15:49:59
ぐぬぬ
2pカラーで数コマだけ色が戻っちゃうのは何でなんだぜ

768blank:2011/10/13(木) 23:46:10
パレットの共有設定がなされていないから
SFFを適当な編集ソフトで開いて当該画像のパレット共有設定をONにすればおk

769deadhead:2011/10/14(金) 20:23:18
ちょっと自キャラのこれからの制作方針にかかわってくる問題にぶつかったので質問させて頂きます
キャラ本体の画像の他に常時上から透過をかけた画像を表示させたいのですが可能でしょうか?

770blank:2011/10/14(金) 21:11:21
>>768
すいません、ありがとうございます!

771blank:2011/10/14(金) 22:14:35
>>769
炎を纏ったキャラとかバリア張ってるキャラとかのイメージで合ってるならできる
Explod(表示のみ)やHelper(色々可能)やProjectile(攻撃・一部相殺)で本体とは別管理の画像を表示できるからね
airファイルで透過設定できるし、Helperならcns側でも透過設定できる

772島村鰐:2011/10/15(土) 14:25:57
>>769

多分スカートの話ですよね?赤セイバーの
出来ると言えば出来ると思いますけど
はっきり言って最初からスプライトに半透明部分を描きこんだ方が楽ではあるかと
半透明部分を本体と別に作って合わせるとすると動きをあわせる関係上
本体のスプライト枚数と同じだけのスカートを描かなければならないですし
アニメも本体のアニメと同じだけ作らなければならない上に
プログラム上で両者の動きのタイミングや移動もあわせるとなると相当めんどくさいと思うのですよね
最初からスカートの半透明部分を本体に描きこんでおく形なら
単に「透けて下が見えてるように描いてある」擬似透過処理ではありますが
あとから色々いじる際にも余計な手間を生まない(スカートと本体が別だと
例えば技のフレームをいじった際にスカートのフレームもいじらなければならないとか)ので
手間が多分全然変るんじゃなかろうかと…

無論労力は惜しまないということであれば徹底するのもありですが。

773:2011/10/15(土) 15:17:07
どうしてもマジックサーキットのMAX処理がうまく行かぬ…
具体的には
①MAX中にゲージ1000以下になる
②EXエッジ発動
③MAX解除+残ゲージ2000
となる処理の②と③の処理がうまく行かぬのですが何かいいアイディアありませんか?

774:2011/10/15(土) 15:24:33
自己解決しますた

775blank:2011/10/15(土) 17:46:41
スカートか…
ChangeAnim2やAngleDraw使われると本体に合わせて表示するのは厳しいよ

平常時はPause無視のヘルパーをBindToRootで軸合わせしつつ
[State ]
Type = ChangeAnim
Trigger1 = 1
Value = Root,Anim+10000
Elem = Root,AnimElemNo(0)
でアニメーションの同期取れば済む話なんだけど

スプライト番号(≠アニメ番号)読み取るトリガー無いし、回転角読み取るトリガーも無い
状況が限定的とはいえ、P2Nameとかで対応するのも現実的じゃない
ChangeAnim2やAngleDrawに目を瞑るか、最初からスカートを統合した画像を描くかのどっちかかな

776mi:2011/10/15(土) 19:30:38
赤セイバーの透明スカートは赤スカートの内側に着てるから、重ならないように描いた画像をうまくcnsで処理するのは難しそうですね。
元から描いてしまうにしても、透明の表現を描くのはなかなか…(…それは個人の力量の問題か;)
レイヤー効果を使うのが一番楽だったなー

777deadhead:2011/10/15(土) 20:56:22
>>771
>>772
>>775
>>776
レスありがとうございます!
すいません、言葉足らずでした。スカートのことだって言うべきだった
やっぱり、難しいですか…
透過は無しでいくかな、正直現段階でもけっこういっぱいいっぱいなので透過を自分で書き込むのは死にそう
ただmiさんの「レイヤー効果を使う」というのが気になるんですがそれはGaleじゃ無理でしょうか?
PhotoShopとか必要になるのかな…
たびたび質問してすいません

778ragtime:2011/10/16(日) 00:23:00
以前photoshopで合成を試みてみましたけど、できるにはできるもののパレットの色がバラバラになった記憶ががが
Galeにもレイヤーを半透明にする機能はあるみたいですよ。けど使った事あまりないので詳しくは……

779deadhead:2011/10/16(日) 01:44:36
>>778
Galeでもできるんですか!
一応調べてみたんですが出てくるのがオニオンスキンの説明ばっかだったので無理かなって思ってました…
もうちょっと探してみます、ありがとうございました!

780名無っしん:2011/10/16(日) 13:21:26
今けもぅの超必を作っていて、本体の他に砲台をヘルパーにしようと考えているんですが、
プレイヤー本体とヘルパーが重なった部分の影の色が濃くなってしまいます
noshadowだと重なってない部分の影が消えてしまいます
何か対処法は無いでしょうか?

781blank:2011/10/16(日) 14:00:00
影はステージ依存だから無理だと思う
キャラ側では表示するかしないかの「全か無か」しか設定できない
重なりを考慮して欠けたスプライトを用意するわけにもいかないだろうし

782社咲:2011/10/16(日) 15:00:48
ステージ端での壁バウンド技を作っているのですが、行き詰ってしまったので質問させてください・・・
ヘルパーを使ってステージ端の探知は出来ています。
ステートを奪った相手のBackEdgeBodyDistとステージ端にいるヘルパーのPosをトリガーにしてバウンドする処理をしたいのですが、どうも上手くいきません・・・

ステートを奪った相手に、こちらのヘルパーの位置を参照させる方法はないでしょうか?

783blank:2011/10/16(日) 15:47:05
PlayerIDリダイレクトで参照できなくはないけど、
本体Varにヘルパー位置情報を格納してEnemyリダイレクトで相手にそれを参照させた方が楽だよ

784社咲:2011/10/16(日) 16:10:41
>>783
できました〜!
ありがとうございます〜

785名無っしん:2011/10/16(日) 17:09:21
>>782
そうですか・・・わかりました、ありがとうございます

786名無っしん:2011/10/16(日) 17:09:57
アンカーミス
>>782じゃなくて>>781

787ケットシー:2011/10/20(木) 16:11:16
AI製作中にいきなりエラーが出てしまいました。AIトリガー製作後まず弱パンチから製作に入ったのですが

;立ち弱
[state -1];AI立ち弱
Type = ChangeState
Value = 200
TriggerAll = Var(59) = 1
TriggerAll = StateType != A
Trigger1 = Ctrl            ;ここから下の記述でAIの行動を限定させていきます。
Trigger1 = P2StateType != A    ;相手が空中状態以外のとき
Trigger1 = P2MoveType != A     ;相手が攻撃状態以外のとき
Trigger1 = P2BodyDist X = [0,50] ;相手とのX方向の距離が0から50のとき
Trigger1 = Random <= var(58)*100 ;AIレベル差

この記述を消すとエラーが出ない点からAIトリガーには問題がないと思われるのですが原因がよくわかりません。

788ケットシー:2011/10/20(木) 22:11:41
>787
他のテンプレをコピペしたところエラーは出ませんでした。しかし原因はなんなんでしょう?今度はAIスイッチより上に記述したから?

789Peke:2011/10/20(木) 22:55:45
その記述は問題ないと思います
情報不足過ぎて何とも言えませんがその記述で疑うならvar(58)かと
var(59)がスイッチのようなので
var(58)の計算式がおかしいか定義してないのでは?

それと
triggerall = alive = 1 ;タッグ時ゾンビ化する
triggerall = roundstate = 2 ;無いとフライングする
この2個は入れといた方がいいですよ

trigger1 = p2statetype != L ;無いと相手がダウン中でも無駄に振る
技次第ではこれも

790blank:2011/10/20(木) 23:00:24
コメントアウトより左側に全角スペースがあるのを全部消すか半角にしてみたら?
内容そのものに問題があるようには見えないから全角スペース読ませなくすれば多分エラー消える

791blank:2011/10/20(木) 23:12:17
RoundState=2はフライングの抑制にはなるけど防止にはならないから注意
RoundState=2になるタイミングとStateNo=0かつCtrlになるタイミングはアドオン次第で異なるからね

(StateNo=0)*(Ctrl)+((StateNo=10)+(StateNo=20)+(StateNo=40))*(PrevStateNo=0)
あたりで試合開始を感知してフラグ立てた方がフライング防止には確実
開幕前行動のあるキャラは更に工夫が必要になるけどね
フラグはVar(59)の正負使えば(正でフラグON、負でフラグOFF)変数増やさなくて済むし

792ケットシー:2011/10/20(木) 23:35:57
しゃがみ通常攻撃のAI用記述を入れたので試しにVSモードでAI入れて密着してみたのですがあれ?2弱振ってこない?

;しゃがみ弱パンチ
[State -1, Crouching Light Punch]
type = ChangeState
value = 400
triggerall = var(59) = 1 && RoundState = 2
triggerall = alive = 1
triggerall = statetype != A && (p2statetype = S || p2statetype = C)
triggerall = ctrl && (P2BodyDist X = [20,45]) && random <=50*var(58)
triggerall = ctrl && (P2BodyDist X = [0,20]) && random <=100*var(58)
trigger1 = p2movetype != A
trigger2 = p2movetype = A && life >= lifemax / 2

 P2BodyDist X が20以下のAI記述はまだこれしか書いてないので密着すれば即これ振ってくるはずなのに?まだ歩きとかジャンプの
AI用記述がないからでしょうか?それともAIスイッチがまずいのでしょうか?

[State -1, AIフラグセット]
type = VarSet
triggerall = !var(59)
triggerall = RoundState = [1,2]
trigger1 = Command = "AI0"
trigger2 = Command = "AI1"
trigger3 = Command = "AI2"
trigger4 = Command = "AI3"
(中略)
trigger49 = Command = "AI48"
trigger50 = Command = "AI49"
trigger51 = Command = "AI50"
var(59) = 1
var(58) = 10 ;AIlevel


>triggerall = alive = 1
>trigger1 = p2statetype != L ;無いと相手がダウン中でも無駄に振る
 記述追加しておきました。

793blank:2011/10/20(木) 23:59:16
P2BodyDist Xは自分の前端から相手の前端(向き合ってる時)または後端(そっぽ向かれてる時)までの距離
Ground.FrontとClsn2次第では密着するとマイナスの値にもなり得るよ(つか密着してたら大抵負の値)

794blank:2011/10/21(金) 00:37:27
あと、TriggerAllの4つ目と5つ目のせいでP2BodyDist Xが丁度20の時しか条件満たさなくなってるよ

795ケットシー:2011/10/21(金) 09:02:37
>793
>P2BodyDist Xは自分の前端から相手の前端(向き合ってる時)または後端(そっぽ向かれてる時)までの距離
>Ground.FrontとClsn2次第では密着するとマイナスの値にもなり得るよ(つか密着してたら大抵負の値)
 
ground.front = 16
 ニュートラルのClsn2先端が15(30×0.5〔D4〕)
 しゃがみがのClsn2先端が37.5(75×0.5〔D4〕)
でCMDに

;しゃがみ弱パンチ
[State -1, Crouching Light Punch]
type = ChangeState
value = 400
triggerall = var(59) = 1 && RoundState = 2
triggerall = alive = 1
triggerall = statetype != A && (p2statetype = S || p2statetype = C)
trigger1 = p2movetype != A
trigger1 = ctrl && (P2BodyDist X = [0,45]) && random <=50*var(58)
trigger2 = p2movetype != A
trigger2 = ctrl && (P2BodyDist X = [-35,0]) && random <=100*var(58)
trigger3 = p2movetype = A && life >= lifemax / 2
trigger3 = ctrl && (P2BodyDist X = [-35,0]) && random <=100*var(58)

 と記述したのですがこれでもたまにしか弱パンチふってきません。-35をー100くらいにしても反応しない??

796blank:2011/10/22(土) 00:05:47
取り敢えず「&& random〜」の部分コメントアウトして乱数要素排除した状態で
P2BodyDistの代わりにP2Dist使った場合とP2BodyDistのままの場合で上手くいくか試してみて
P2Distに変える場合は基準点が違うから-35,0,45の値も変えないといけないけど

あとは
[State ]
Type = DisplayToClipboard
Trigger1 = 1
Text = "P2BodyDist X = %f"
Params = P2BodyDist X
でデバッグ表示してみると原因解明の助けになるかも

797ケットシー:2011/10/22(土) 19:13:04
>796
>取り敢えず「&& random〜」の部分コメントアウトして乱数要素排除した状態で
 「&& random〜を除外したところ弱パン振ってくるようになりました。それにしてもなんで乱数が上手く機能しなかったのでしょうか?
var(59) AIスイッチとvar(58)AIレベル は同じstate -1で処理してるからAIスイッチが入ればAIレベルも機能するはずなんですが?

798blank:2011/10/22(土) 21:09:29
var(x) =の代替書式使ったこと無いから分からんけど、同じステコン中に2つ書いて両方機能するものなの?
上に書いた方のみが機能して下に書いた方は無視されるような印象なんだけど

改善案としては「var(59) = 1」を消して「var(58) = 10 ;AIlevel」を「var(58) = (Var(59):=1)*10 ;AIlevel」に変更すれば
ステコン自身の処理でvar(58)に1*10が格納されて、「:=」の機能でvar(59)に1が代入されるようになるよ

799ケットシー:2011/10/22(土) 22:35:08
>796
>var(58) = (Var(59):=1)*10 ;AIlevel
 見事機能しました。ありがとうございます。

 ええ連投気味で申し訳ないのですが立ち弱のAI記述追加をしたらしゃがみ弱を全く振らなくなってしまいました。
triggerは一部違うしrandomも含めているのですが?

記述は以下の通りです。
[State -1, 5弱]
type = ChangeState
value = 200
triggerall = var(59) = 1 && RoundState = 2
triggerall = alive = 1
triggerall = statetype != A && (p2statetype = S || p2statetype = C)
triggerall = p2statetype != L
triggerall = ctrl && (P2BodyDist X = [0,40])
triggerall = Const(size.head.pos.y) < -40
triggerall = P2Dist Y >= -20
trigger1 = p2movetype != A
trigger1 = random < var(58)*50
trigger2 = p2movetype = A && life >= lifemax / 2
trigger2 = random < var(58)*50

;------------------------------------------------------------------------------

[State -1, Crouching Light Punch]
type = ChangeState
value = 400
triggerall = var(59) = 1 && RoundState = 2
triggerall = alive = 1
triggerall = statetype != A && (p2statetype = S || p2statetype = C)
triggerall = statetype != L
triggerall = p2statetype != L
triggerall = p2statetype ! = A
triggerall = Const(size.head.pos.y) >= -40
trigger1 = p2movetype != A
trigger1 = ctrl && (P2BodyDist X = [0,45])
trigger1 = random < 500
trigger2 = p2movetype = A && life >= lifemax / 2
trigger2 = ctrl && (P2Dist X = [0,45])
trigger2 = random < 500
trigger3 = p2movetype != A
trigger3 = ctrl && (P2Dist X = [-35,0])
trigger4 = p2movetype = A && life >= lifemax / 2
trigger4 = ctrl && (P2Dist X = [-35,0])

800blank:2011/10/23(日) 00:24:16
Constは文字通り定数だからConst(size.head.pos.y)は常にcnsの[Size]のHead.Posに書いた値しかとらないよ
Const(size.head.pos.y)は基点(大抵のキャラは足元)から頭までの距離ね

triggerall = Const(size.head.pos.y) < -40を満たしてるなら、その試合中どう足掻いても
triggerall = Const(size.head.pos.y) >= -40を満たすことは無い

801blank:2011/10/23(日) 07:29:23
質問です。
キャラ側からステージBGMの速度を変えることは出来るものですか?

802ケットシー:2011/10/24(月) 00:02:18
>Const(size.head.pos.y)
ちびキャラ判別ように記述しました。まあ、立ち弱は至近距離対空用にしたので結局Const(size.head.pos.y)にしました。
通常技と投げのAI記述終わりましたが、強いだけのAIなら数日でできるってのがよくわかりました。(しゃがんだ瞬間中段、投げ間合いに入ると即投げられる)

803blank:2011/10/24(月) 00:08:23
>>801
不可能

>>802
ちびキャラ判別ならEnemyNear,Const(Size.Head.Pos.y)じゃない?

804801:2011/10/24(月) 01:00:15
>>803
そうですか、分かりました。
クイックタイムやメイド・イン・ヘブンは作れないのか…

805blank:2011/10/25(火) 09:17:08
>>804
螺旋アッシュみたいに背景もBGMもキャラで準備するようにしたらそれっぽいのは出来るはず。
ステージとの兼ね合いは必要ですが。

806blank:2011/10/26(水) 00:28:05
BGM自分で用意しても鳴っているsnd弄ることはできないし、snd途中から再生できないから
効果発動時に鳴っているsnd止めて、丁度その続きから始まるsndを変速再生して
効果が切れたら変速再生してるsnd止めて、丁度その続きから始まるsndを通常再生しなきゃいけない

短いループのBGMであればぎこちない程度にはできないことはないけど、現実的ではないと思うよ
単音のSEをsndに沢山登録しといてcns側でそれらをタイミングよく鳴らして演奏するなら
↑みたいな煩わしいことしなくていいけど、演奏自体が結構面倒だろうし

807ケットシー:2011/10/26(水) 22:58:26
AIに相手が飛び道具を売ったさいに飛び道具無敵技を出させたいのですが、何かいいトリガーはありませんでしょうか?
enemynear,NumProj > 0 はエラーこそでませんがトリガーとしてきちんと機能してないような?

現在このような記述をしていますが上手く機能していません。
[State -1, 6Dダンシング肉球]
type = ChangeState
value = 1105
triggerall = var(59) = 1
triggerall = statetype ! = A
triggerall = power > 330
TriggerAll=EnemyNear,StateType != L
TriggerAll=EnemyNear,Alive
trigger1 = ctrl
Trigger1 = Random < (58)*100
trigger1 = p2movetype = A
trigger1 = enemynear,NumProj > 0
trigger1 = p2statetype != A

808blank:2011/10/26(水) 23:51:47
飛び道具といってもProjectileじゃなくてHelperにHitDef撃たせてる場合もあるから
相手の飛び道具タイプをちゃんと見た方がいいよ

EnemyNear,NumProj自体はきちんと機能する筈だから相手がProj出してないか、ほかのTrigger満たしてないかのどっちか
あと、Projは例えばステージ端を検知するのにも使ったりするからNumProjに頼りすぎるのも考えもの

809社咲:2011/10/28(金) 18:08:16
連続ヒット攻撃の補正関係を作っているのですが、各段で補正が違う攻撃のステートです。

[State 200 , コンボ補正・乗算1]
Type = VarSet
Triggerall = movehit
trigger1 =!(var(6) & 262144)
trigger1 = AnimElem = 3
fvar(0) = fvar(0) * 0.85 + fvar(6)
IgnoreHitPause = 1
persistent= 0

[State 200 , コンボ補正・乗算+1]
Type = VarAdd
trigger1 =!(var(6) & 262144)
trigger1 = AnimElem = 3
fvar(6) = 0.05
IgnoreHitPause = 1
persistent= 0

このような感じにAnimElemの値を1ずつ増やして、後半のほうになると補正があがるようになっています。
ただ、たとえば初段があたって途中の攻撃があたらなかったりすると、movehitのトリガーが働いてしまっているので、そのアニメ番号になると勝手に補正が計算されてしまいます。

movehit系のトリガーのフラグをリセットしたいのですが、同一ステート内でのリセットは可能でしょうか?

810ケットシー:2011/10/28(金) 19:06:29
>808
 飛び道具無敵技の無敵記述にミスがあったのが原因でした。

811blank:2011/10/29(土) 15:21:44
>>809
MoveHitResetというステコンがある

Move系は接触した次のFで1になってPauseTime中ずっと1、PauseTime解けたら2からカウントアップという仕様だから
IgnoreHitPause=1とPersistent=0付けてるならTriggerAll=MoveHit=1に変えるだけで解決できるんじゃないかな

812Azuma:2011/10/31(月) 23:33:27
瀕死時限定の技を作りたく、CMDの発動条件に変数を使用しています。
その記述がこちらなのですが

[State -2, VarSet]
type = VarSet
triggerAll = Var(50) = 3
triggerAll = 0.4 >(1.0*(Life)/(LifeMax))
trigger1= Power >= 3000
trigger2= 0.2 >(1.0*(Life)/(LifeMax))
trigger2= Power >= 2000
trigger3= 0.1 >(1.0*(Life)/(LifeMax))
trigger3= Power >= 1000
trigger4= 0.01<(1.0*(Life)/(LifeMax))
var(50) = 4

[State -2, VarSet]
type = VarSet
triggerAll = Var(50) >= 4
trigger1= 0.4 <(1.0*(Life)/(LifeMax))
trigger1= Power < 3000
trigger2= 0.2 <(1.0*(Life)/(LifeMax))
trigger2= Power < 2000
trigger3= 0.1 <(1.0*(Life)/(LifeMax))
trigger3= Power < 1000
var(50) = 3



目指したいのは
「ライフ40%未満で3ゲージある場合」
「ライフ20%未満で2ゲージある場合」
「ライフ10%未満で1ゲージある場合」
「ライフ 1%未満」

……の条件を満たした際に変数を「4」にして
相手のライフが回復する、自分がゲージを消費するなどで条件を満たさなくなった場合には、変数を「3」に戻すという記述です。

ところが、ゲージを消費しても変数が「4」のままであるなどのバグが発生しています。
論理式に隙があるのではないかと思うのですが、どこを直すと良いのでしょうか?

813blank:2011/11/01(火) 00:04:23
trigger4の不等号が逆だね

814Azuma:2011/11/03(木) 09:10:49
修正しました、しかしまだ発生する…
なぜゲージがゼロになってもvar(50)=4のままなのだろうorz

815blank:2011/11/03(木) 11:56:38
[State -2, VarSet]
type = VarSet
triggerAll = Var(50) >= 4
trigger1= 0.4 <=(1.0*(Life)/(LifeMax));ライフ40%以上ならゲージ無関係に解除
trigger2= Power < 3000;3ゲージ未満なら
trigger2= 0.2 <=(1.0*(Life)/(LifeMax));ライフ20%以上のときのみ解除
trigger3= Power < 2000;2ゲージ未満なら
trigger3= 0.1 <=(1.0*(Life)/(LifeMax));ライフ10%以上のときのみ解除
trigger4= Power < 1000;1ゲージ未満なら
trigger4= 0.01 <=(1.0*(Life)/(LifeMax));ライフ1%以上のときのみ解除
var(50) = 3
目指したい条件見るにこうだと思う

あとはVar被りのチェックかな

816Azuma:2011/11/03(木) 12:54:32
直りました!
ありがとうございます!

817blank:2011/11/05(土) 23:27:24
>>811
movehitresetを使うとmove〜トリガーを使ったキャンセルができなくなるので注意

818社咲:2011/11/06(日) 03:05:30
返事が遅くなってすみません・・・

>>811
>>817
結局使っても上手くいかなかったので、一段ごとにステートを分ける形で連続技としました。
すみませんです・・・

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

819blank:2011/11/06(日) 12:01:56
MoveHit = 1に変えてもダメだったの?
あとHitDefは実行した時点での値で処理されるから
コンボ補正用のVarの値が変わる度にHitDef実行し直さないと反映されないよ

まあ解決できたならいいけど

820blank:2011/11/07(月) 23:32:16
HitDefでD4ヒットエフェクトを使うと画像が小さくならないので
攻撃がヒットしたときにExplodを使ってtrigger1 = movehitで表示させていますが
同じステート内の連続攻撃だと最初の1回目だけしか表示されないです。
多分>>811さんの言ってることが原因だと思いますが・・・
連続攻撃でD4エフェクトを表示させる良い方法はないでしょうか?




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