やってるゲームとかの雑記
a_20140524212650269.png

とりあえずハイジャンプの実装関連とかをちょこちょことやりました。
ハイジャンプと言ってもまず一二三のジャンプ力が非常に低いので、ハイジャンプと言っても
「普通のキャラのジャンプ」ぐらいなのでハイとはなんだったのか(哲学)という感じですが。

以下CNSのメモ。CNSに関しては地球さんが公開されてる教材用カンフーマンの改造と
MUGEN研究所でAkagiKさんが公開されてるハイジャンプの方式の組み合わせ。

◆cmdエントリー部に書くもの ;---------------------------------------------------------------------------
;ハイジャンプ関連
;---------------------------------------------------------------------------
[Command];ハイジャンプ
name = "HJ"
command = ~$D, $U
time = 8 ;入力猶予は8F(それ以下で操作した時に暴発しないように)

[Command];ハイジャンプ暴発防止用
name = "NHJ"
command = ~12$D, $U
time = 8
;下要素がずっと入ってる状態で上を入れてもハイジャンプを暴発させない

[Command];ハイジャンプ暴発防止用
name = "NHJ"
command = /$D
time = 12

ハイジャンプ関連は完全にAkagiKさんが公開されているもののパクリです。
とりあえずこれをねじ込んで「ハイジャンプ」のコマンドをエントリーさせて、cmdファイルの下の方にも追記。

◆cmdの下部に書く物[State -1,ハイジャンプセット]
type = Varset
trigger1 = command = "HJ"
trigger1 = command != "NHJ";不正入力排除
trigger1 = statetype != A
trigger1 = ctrl = 1
v = 0
value = 1


ハイジャンプの入力が成された時(かつ、ハイジャンプではない不正な入力が入った時はそれを弾き)、
任意の変数に1を代入してスイッチとして使います(ここではとりあえずvar(0)をスイッチにしました)。
cmd側でやってることは、「ハイジャンプの入力とスイッチの操作」だけ。
あとの事はcnsの-3ステートに書きます。

◆本体CNS、-3の中に書くステート;---------------------------------------------------------------------------
;ハイジャンプ関連
;---------------------------------------------------------------------------
[State -3,ハイジャンプスイッチオフ]
type = varset
trigger1 = stateno = 50
trigger1 = time = 2
v = 0
value = 0
;ステート50の2F目になったらハイジャンプのスイッチをオフにし、再使用可能にする。
;この処理を忘れると一度ハイジャンプを使ってしまうと二度目ができなくなる。

[State -3, ハイジャンプ成功時加速]
type = veladd
trigger1 = var(0) = 1
trigger1 = stateno = 50
y = -(任意の数字、盛りたい量だけ。必ず負数にしないと逆にジャンプ力が下がる)
;ハイジャンプスイッチがONになっていたらY方向に上向き(マイナス)の速度補正
;今の速度に追加で速度を盛ることで「通常より高いジャンプ」にする

[State -3, ハイジャンプ成功時前方向]
type = veladd
trigger1 = var(0) = 1
trigger1 = stateno = 50
trigger1 = command = "holdfwd"
x = (任意の盛りたい量)
;ハイジャンプスイッチがONになっていたらX方向(前)に速度補正
;縦方向が加速したのに横方向が加速していなかったらおかしいので横も増やす

[State -3, ハイジャンプ成功時後方向]
type = veladd
trigger1 = var(0) = 1
trigger1 = stateno = 50
trigger1 = command = "holdback"
x = -(盛りたい量)
;ハイジャンプスイッチがONになっていたらX方向(後)に速度補正
;こちらは「バックジャンプ」用のため、負数にしないとおかしくなる

[State -3,ハイジャンプアニメ変更,垂直]
type = Changeanim
trigger1 = var(0) = 1
trigger1 = stateno = 50
trigger1 = anim = 41
value = 51;
;このハイジャンプのアニメ変更~というステコンは今回のcnsで唯一自分で考えた部分。
;ハイジャンプ時にアニメが通常ジャンプと変わるキャラの場合に使用する。
;アニメが使い回しの場合でもモーション自体を長くした別アニメにした方が本当は自然かな・・・?
垂直ハイジャンプのアニメ番号を指定。今回は51を使ったので51とします

[State -3,ハイジャンプアニメ変更,前]
type = Changeanim
trigger1 = var(0) = 1
trigger1 = anim = 42
trigger1 = stateno = 50
value = 52
;同上。こちらは前アニメの変更用。52にハイジャンプ(前)を入れたので52にオーバーライドしてます。

[State -3,ハイジャンプアニメ変更,後]
type = Changeanim
trigger1 = var(0) = 1
trigger1 = anim = 43
trigger1 = stateno = 50
value = 53
;同上。こちらは後アニメの変更用。今回は53にハイジャンプ(後)を入れたので53にオーバーライド。

[State -3, ハイジャンプ残像追加]
type = AfterImage
trigger1 = var(0) = 1
trigger1 = stateno = 50
time = 12
Length = 9
timeGap = 1
FrameGap = 3
Palcolor = 200
PalContrast = 100,100,100
PalBright = 50,50,50
Trans = Add1
;ハイジャンプした時にシュイーンという音とかと一緒に出る残像を入れました。
;残像の設定はいろいろ人によって好みがあるのでおこのみで。
今度はこっちは地球さんが公開されてる教材用カンフーマンに入ってるハイジャンプの記述のほぼパクリです。
自分で考えたのはアニメをオーバーライドすることで特別なアニメにすることぐらいですね。

上で書いたとおりこれらは全部-3ステートに書いてますので、当のジャンプステートはほぼいじってないです。
別件(着地時のデフォルト砂煙を消したくて)でいじりはしたんですが、それはそれで。
ジャンプステートをいじるとするなら、ジャンプ開始効果音を鳴らすステコンを2つに増やして
var(0)が0の時か1の時かで効果音をかえる、つまりハイジャンプ効果音を入れるとか、そういう感じ。

最初はハイジャンプのステートを直接ジャンプ関連に書き込んで増やそうかと思ってたのですが、
ハイジャンプとジャンプを別ステートとしてしまうと
・管理がめんどくさい(ジャンプ関連をいじったらいじり直しになる)
・空中技etcを増やすときにステコンが煩雑になる
というところからとりあえずこういう方式でやってみることにしました。

いやーしかし、殆ど人の書いたトリガーとステコンの丸パクリという・・・ひどいもんだ。
スポンサーサイト
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://midorinobiotop.blog.fc2.com/tb.php/1273-4ac7fd46
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック