7th arc

mugenキャラ製作日記

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 |

剣気ゲージと怒りゲージを作る

ikari
とりあえず見た目こんなもん


仕込みとして通常攻撃は攻撃が出た次のフレームくらいに
剣気ゲージをVaraddで減らします。

小斬りは-4
中斬りは-7
大斬りは-14
超斬りは-150

一律システム化しておきましょう(めんどうなので)。
二段攻撃は合計でこれより少し多くなるくらい。

Hitdefのダメージの項目には数値+Fvar(補正)を書いておく。


↓どうでもいいけど-2のCNSメモ



剣気ゲージと怒りゲージを作る…の続きを読む
スポンサーサイト
いろは_X | コメント:0 | トラックバック:0 |

怒りゲージ

怒りスピリッツ時の怒りゲージについて


概要
ダメージをくらうとゲージが上昇し
MAXになると一定時間剣気ゲージ1.5倍


どうやら怒りゲージの最大値は85らしい。
合計85ダメージをくらうと怒り状態になるということですね。

怒り状態は395Fくらいで0に戻ります。



ここまではいいんですが、
剣サムって最大体力が300くらいしかないっぽい?
もっと少ないかもですが
それだとダメージ値そのままでは非力すぎるので
3.2倍くらいは常時上げといたほうがよさそうですね。

同時に怒りゲージの上昇も食らったダメージの/3.2だけゲージが上がるようにしましょう。



追記
実際計ってみると300どころか200ちょいしか体力なかった・・・

攻撃力は5倍、怒りゲージが溜まる量は1/5で。







いろは_X | コメント:2 | トラックバック:0 |

剣気ゲージ

原作の剣気ゲージを少し調べてみます。


概要は
攻撃を振るとゲージが減り、与えれるダメージも割合で減っていくというもの。
攻撃以外の動作中に時間と共にゲージは回復します。
怒りゲージがMAXになると剣気ゲージの最大値が増え、
ダメージがさらに大きくなります。

与えるダメージはゲージによってどう変わるのか
具体的に見てみると。

例えば遠距離立ち大斬り
100% 30
  0% 8
150% 45

超斬りだと
47
13
71

100と150は分かりやすいですけど
下限が30%ということなのでしょうか。



剣気ゲージほ消費について見てみると
斬り攻撃は振った時+当たった時
打撃や蹴りは当たった時
減っていくもようで

小斬りは25回連続で振るとゲージが0に
中斬りは13
大斬りは7
超斬りは1

ヒット時はこれ+?値が引かれるようですが
詳しく調べると恐ろしく時間がかかってしまいそうなので
一律5%くらい減らしておきましょうw



ゲージは0から100%に戻るまで320Fくらいかかるようです。
意外と早いか。


あとは調べてない



いろは_X | コメント:0 | トラックバック:0 |

きょうふのみそ汁

dc「今日は“きょうふのみそ汁”の話をしようと思う」
as「突然すぎるよ・・・」
je「しかも題名でだいたい内容がわかってしまうんじゃな」
dc「つべこべうるせーぞ。俺の話を聞け」




きょうふのみそ汁…の続きを読む
今日の毒チーズ | コメント:2 | トラックバック:0 |

一足飛び

あんまり書くことがないので基本的なことでも・・・

1からキャラを作る場合何からやっていいのか迷ってしまいますけど
とりあえず方向キーだけで出来る動作を仕上げまでやることに。

移動のスピードやジャンプの高さなどの基本データを
CNSにある程度調整して記述。

いろはの場合ダッシュが一足飛びなのでここだけ作り直します。

common1.cnsをMUGENのdateから持ってきます。
State100だけ別のファイルに作ってもいいのかな?
武器有る無しを-2でChangeAnimさせるか各ステートでやるか決めてないので
まだ何とも・・・

Statedef 105~106をコピペしてvelocity.run.back.xをvelocity.run.fwd.xに替えて終わり。

・・・

と行きたいところですが

[Statedef 100]
type = A
physics = A

これだと地面に着いたとき自動的に着地ステート52に行ってしまい
独自の着地ステートに行けません。
なので

[Statedef 100]
type = A
physics = N;←ここをNに
ctrl = 0
anim = 100
sprpriority = 1

[State 105, 1]
type = VelSet
trigger1 = Time = 0
x = const(velocity.run.fwd.x)
y = const(velocity.run.fwd.y)

[State 105, 1]
type = Gravity
trigger1 = AnimElemTime(3) >= 0

[State 105, 3]
type = ChangeState
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 0
value = 101


途中からGravityをかけて着地させればいいんですね。
良かった良かった(o^∇^o)ノ

・・・

ホントに基本だぁ


ついでに-2で各ステートで鳴らす音を設定。

;ダッシュの着地にエフェクト
[State エフェクト]
type = Explod
triggerall = Time = 1
trigger1 = StateNo = 101
anim = 8050
pos = 20, 0
postype = p1
bindtime = 1
vel = .4, 0
removetime = -2
supermovetime = -1
pausemovetime = -1
scale = 1,1
sprpriority = 10
shadow = 0, 0, 0
ownpal = 1
trans = AddAlpha
alpha = 256,256
IgnoreHitPause = 1
Persistent = 0

;ジャンプ開始
[State 音を鳴らす]
type = PlaySnd
triggerall = Time = 1
trigger1 = stateno = 40
value = s4, 19

;着地
[State 音を鳴らす]
type = PlaySnd
triggerall = Time = 1
trigger1 = stateno = 52
value = s4, 33

;ダッシュ、二段ジャンプ
[State 音を鳴らす]
type = PlaySnd
triggerall = Time = 1
trigger1 = stateno = 100
trigger2 = stateno = 105
trigger3 = stateno = 45
value = s5, 0

;やられボイス
;ステート5000から5035までのアニメになったら
;SNDの2,0~2,8をランダムで鳴らします。
[State -2, 6]
type = PlaySnd
triggerall = time = 1
triggerall = alive
trigger1 = stateno = [5000,5035]
value = s2,0 + (Random % 8)
channel = 0
persistent=0



これだけでもそれっぽくなるよね。


いろは_X | コメント:2 | トラックバック:0 |

PCSX2って動画撮れるんだ・・・

pcsx2設定
バージョンにもよるみたいですけどF12押したら動画撮れるんだね・・・


ほぼブレなくそのままのFPSで・・・

ただしやはりFPSは落ちるだろうけど。


うちのPCでは普通に動かしているだけでCPU8割近く持ってかれるので
320*240くらいで撮らないとキツそうだ



ちなみに後ろの水車?はエミュの都合で何故か手前に出てきてますね
ステージ作ったときこれが普通だと思ってこのまま作ってたのは秘密だぞ!



未分類 | コメント:0 | トラックバック:0 |

フレーム調べるの分からん

PS2のエミュをカハマルカの瞳を使って録画。

これ30Fまでしか録れないし、エミュのFPS微妙に下がるし
あんまり上手くはいかないんだけど
1コマが2Fとして見れば大体はそれらしくなるはず。


ちなみに今までは本体と武器別のスプライトでしたけど
プライオリティを合わせられないということで
一枚にくっつけてSFFを作ることに。


あとは剣気ゲージやらスピリッツセレクトどーすんの、これ

とりあえず怒モードで動くやつを目指してみよっかな(・ω・)




剣気ゲージは怒モードで調べると
しゃがみ大斬りのダメージが

100%=30
  0%=8
怒り=45

だそうで・・・
大斬り7回連続で使うと100%→0%
怒り状態では12回で0%になったみたい


つまり・・・


どういうこと?


いろは_X | コメント:0 | トラックバック:0 |

武器ありキャラの5000番台

相手にステートを奪われるとアニメは相手側のAIRを参照しますけど
画像はこちらの必須を使うわけですね。

武器ありなしのキャラや変身キャラだと
いきなり変身が解けて見えたりと
MUGENでの鬼門と言ってもいい所です。


SprnoというトリガーとChangeSprというステコンさえあれば・・・
とは思いますが今のところ見て見ぬふりをするしかないですね。
RC版でこの先対応してもらえるのを期待したいですが。


しかしサムスピのような武器ありキャラだと
必須にありなしどっちを登録すればいいんでしょうかね?

基本は武器ありなんだし、武器ありになるのかな?


未分類 | コメント:4 | トラックバック:0 |

ミス

RC5版エラ-メッセージ出てましたね。
小数になってはいけない所で計算したあと
結局小数になっちゃってたみたいです(汗


それと追加された勝利メッセージを
相手に対してランダム、固定を選択するには

1~9ランダム
10ユリ固定

にしておく場合

[State 180]
Type = Victoryquote
trigger1 = Time = 0
value = 1 + (Random % 9)

[State 180]
Type = Victoryquote
triggerAll = Time = 1
trigger1 = Enemy, Name = "Yuri Sakazaki" || Enemy, Name = "Yuri" || Enemy, Name = "cvsyuri" || Enemy, Name = "Yuri sakazaki 96" || Enemy, Name = "yukuriyuri"
trigger2 = Enemy, Name = "Yuri Sakazaki" || Enemy, Name = "Yuri" || Enemy, Name = "cvsyuri" || Enemy, Name = "Yuri sakazaki 96" || Enemy, Name = "yukuriyuri"
trigger3 = Enemy, Name = "yuri_S"
trigger4 = Enemy, Name = "yuri_S"
value = 10

こんなんでいいかな。


wind_MCX | コメント:0 | トラックバック:0 |

AILevel

そういえばRCになってAILevelというトリガーも付いたんでしたね。
これでAI起動が無条件で可能になったと言う感じでしょうか。

CPU操作時にはオプションで設定されたDifficultyの数値が
このトリガーに常に代入されてるわけですな~。

ちなみにトレーニングモードのポーズメニューでのAILevelも常に反映しているとか。
操作を人操作に替えると動きも止まります。


今までのAIレベルとの互換は


[State -3, 1]
type = Varset
triggerall = !Var(59)
triggerall = RoundState <= 2
trigger1 = AILevel = [1,8]
var(59) = AILevel + 2
IgnoreHitPause = 1

[State -3, 1]
type = Varset
triggerall = Var(59)
triggerall = RoundState <= 2
trigger1 = AILevel = 0
var(59) = 0
IgnoreHitPause = 1

こんな感じで。


というわけでちょっぴりRC5版でも


mugen | コメント:0 | トラックバック:0 |

アス比

さて前回は画面下のポジションから配置する方法を考えてみましたが
今回は全画面の画像をどう配置するか考えてみます。

ワイドのテレビで4:3の番組を見るのと同じで
画面の左右を切って画像を全て映すか
画像の上下を切って画面全体に映すか

画面の左右を切った場合画像は0.75倍に縮小され
画像の上下を切った場合上下30ずつ見えなくなります。


ノーマル
↑これを
フル
↑画面の左右を切る
ズーム
↑画像の上下を切る


ケースバイケースですが文字などの全体が見えないとおかしい場合以外は
画像の上下を切った方が良いでしょうね。


記述の一例を見てみましょう。

[State -2, エフェクト表示]
type = Explod
triggerall = NumExplod(8200) = 0
trigger1 = 1
id =8200
anim = 8200
scale= 1,1
postype = left
pos = 0,0

↑特に何もやってない状態です


[State -2, エフェクト表示]
type = Explod
triggerall = NumExplod(8200) = 0
trigger1 = 1
id =8200
anim = 8200
scale = ifelse(floor(GameWidth/4 = GameHeight/3),1,.75),ifelse(floor(GameWidth/4 = GameHeight/3),1,.75)
postype = left
pos = floor(0 * (ifelse((GameWidth/4 = GameHeight/3),1,.75)) + (ifelse((GameWidth/4 = GameHeight/3),0,GameWidth/8))),floor(0 * (ifelse((GameWidth/4 = GameHeight/3),1,.75)))

↑画面の左右を切って中央に画像を縮小して表示。
画面比4:3かどうかで分岐。
scaleは1の場合0.75で、0.5の場合は0.375
posは0,0の場合は必要ないんですが数値が入るとやはり0.75倍し
x軸にGameWidthの1/8を足します。


[State -2, エフェクト表示]
type = Explod
triggerall = NumExplod(8200) = 0
trigger1 = 1
id =8200
anim = 8200
scale= 1,1
postype = left
pos = 0,0 - floor(ifelse((GameWidth/4 = GameHeight/3),0,30))

↑画像の上下を切る場合。
こっちは簡単でy軸から30を引けば中心にもっていけるはず。


間違えてるかもしれないので話半分で聞いてね(><)

追記
ちょっと訂正









製作の小技 | コメント:0 | トラックバック:0 |

アス比

Explod等でpostypeがleft、 right、front、backの場合。
画面下に置いたアイコンやゲージがアス比によって隠れてしまう場合があります。
そういう場合は

pos = (ifelse((teamside = 1),10,310)),185

だったら

postype = left
pos = (ifelse((teamside = 1),10,310)),floor(GameHeight)-(240-185);←55でもいい

というふうに書けば解像度が何でも画面下から位置を測る事ができそうですね!

16:9

製作の小技 | コメント:0 | トラックバック:0 |

mugenversion =1.0


RC5でdefのmugenversionを1.0にしてMCXXを使ってみようとしたら
エラー吐きまくってびびった。


どうやらHitdefの
snap = 26, 0;, 0, 1
という後2つの部分と

Statedefの宣言の
velset = 0,0;,0
の3つ目の部分が悪いみたい。


確かに普通に意味が分からない記述のような気も・・・

で、新トリガーの中身を調べようと
[State -1]
type = DisplayToClipboard
trigger1 = 1
text = "%f %f %f %f %d\n"
params = (GameWidth),(GameHeight),(FVar(18)),(FVar(1)),(enemynear,GetHitVar(hitcount))

を-1に書いてみたら

320*180
1280*720のサイズで320 180と出てきた。

つまり実際の画面の大きさではなく
キャラのlocalcoordの比率で出てくるってことですか?

320*240
640*480だと320 240。


GameHeightの180と240でPOS変えればいいのかしら。



mugen | コメント:0 | トラックバック:0 |
| HOME |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。