7th arc

mugenキャラ製作日記

スポンサーサイト

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

スポンサー広告 |

アス比

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

ワイドのテレビで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 |

オリコン補正

WINDのオリコン時のダメージ補正を見てみることに。

基本的にHitdefのダメージの項目はこんなふうになっているようです。

damage = ceil(Ifelse(FVar(16)>=8,FVar(17),40*fvar(8)*fvar(9)*fvar(10)*(0.72-fvar(1)))),ceil(10*fvar(9))

fvar(8)*fvar(9)*fvar(10)の辺りはカウンターやMAX発動時の補正です。
今回は関係ないですね。

ceil(Ifelse(FVar(16)>=8,FVar(17),~と(0.72-fvar(1))の部分がオリコン補正で
Fvar(16)はヒット数、Fvar(17)はオリコン時の最低ダメージ。
0.72-Fvar(1)の部分が実際の補正で、
Fvar(1)には基本-0.28が入っていて通常はダメージ値*(0.72+0.28)
つまり*1ということらしいです。

8ヒット以降は40*~を無視してFvar(17)のダメージになるということ。


これを踏まえて-2のステコンを見てみましょう。
Var(18)はオリコン発動フラグ兼、オリコンの残り時間です。



;オリコン用コンボ補正、1ヒット毎に8%ダウン(初段は7割補正)
[State -2,オリコン補正]
Type = VarAdd
triggerall = var(18)
triggerall = FVar(1) < 0.64
triggerall = P2Movetype = H
trigger1 = MoveHit = 1
trigger2 = ProjHit = 1
FV = 1
value = 0.08
ignorehitpause = 1

↑もう眠くなってきちゃった・・・
オリコン時攻撃が当たったらFvar(1)に0.08加えてます
0.64より大きくはなりません


[State -2,オリコン補正8発まで当てたら一定のダメージ]
Type = VarAdd
triggerall = var(18)
trigger1 = enemynear,time = 0
trigger1 = movehit = 1 || projhit = 1
trigger1 = enemynear,stateno = [5000,5150]
FV = 16
value = 1
ignorehitpause = 1

↑敵の地上やられ継続中に攻撃がヒットした回数を覚えておきます

[State -2,オリコン8発以降のダメージ]
Type = VarSet
trigger1 = time >= 0
trigger1 = !fvar(17)
FV = 17
value = 10
ignorehitpause = 1

↑常時最低ダメージを10に設定しています

;リセット
[State -2,オリコン補正8発まで当てたら一定のダメージリセット]
Type = VarSet
trigger1 = enemynear,stateno != [5000,5150]
trigger1 = fvar(16)
FV = 16
value = 0
ignorehitpause = 1

↑相手の地上やられが解けると覚えていたヒット数をリセットします

;リセットFV
[State -2,オリコン補正リセット]
Type = VarSet
triggerall = p2movetype != H
triggerall = Var(18)
trigger1 = p2stateno != [5000,5150]
trigger1 = p2stateno != [2030,2031]
trigger1 = p2stateno != [50100,50103]
trigger1 = p2stateno != [5000,5150]
trigger1 = p2stateno != [3030,3036]
trigger1 = p2stateno != [3130,3134]
trigger1 = p2stateno != 3284
trigger1 = p2stateno != [3230,3234]
trigger1 = p2stateno != [4230,4234]
trigger1 = p2stateno != [7611,7613]
FV = 1
value = 0

↑相手がやられ状態ではない時に補正を0にします
上に書いたようにダメージ補正を0.72+0.28から0.72+0にするということですね

;リセットFV
[State -2,オリコン補正リセット]
Type = VarSet
triggerall = fvar(1) != -0.28
trigger1 = Var(18) = 0
FV = 1
value = -0.28

↑オリコン状態ではないときに補正を基準値にリセットします






ここでの問題は8HIT以上の最低ダメージが補正無しの10固定だと
80ヒットするような状況ではダメージが800になってしまうということですね。


まいったね(o^∇^o)ノ




調べたけど補正に関しては良く分かんなかったから
最低値の部分を変更

[State -2,オリコン8発以降のダメージ]
Type = VarSet
trigger1 = fvar(16) = 0
FV = 17
value = 10
ignorehitpause = 1


[State -2,オリコン8発以降のダメージ]
Type = VarSet
trigger1 = fvar(17) > 1
trigger1 = fvar(16) >= 8
FV = 17
value = (10-floor(fvar(16)/5))
ignorehitpause = 1

↑8ヒット以降、10-(ヒット数/5)
5ヒットごとに9,8,7とダメージが落ちる仕様に

補正
それでも結構でかいけど前よりマシね。




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

減色について

正直がっかりだ。

昨日のイントロですが24ビットにしたのにあんまり綺麗な感じがしません。
ルガールの登場・自爆も作ってみたけど
ガビガビで見るに耐えませんでした。

おそらく減色の精度が評判良くないiviewでやったからなんでしょう。
どのくらい差があるのか今まであまり気にしてなかったのですが、
この際検証してみたいとおもいます。


iview
↑iview

vix
↑VIX

減色教室
↑減色教室

padie
↑padie

xPadie
↑xPadie

yukari
↑yukari


どうやら差異が明らかに出たと言ってよさそうです・・・。
上二つはそもそも減色のツールというわけでもないので
仕方ない部分もあるかと思いますが、
下三つの精度は満足なもののようですね。


ただし。
一括で減色ができることも重要なファクターです。
yukariにはどうもそれが出来なさそうで、
さすがに数百枚を一枚ずつ減色していくのは骨が折れます・・・。

それが可能で減色精度が高いのはpadieということに落ち着きそうですね。


追記
どうやらPadieには元の画像が256色以下のものを含めると
エラーで落ちるという不具合があるようですね。

VIXはパレットの0番に黒が入らないっぽいし・・・。

うまいこといかないもんかなぁ



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

Explodのtrans

Explodにも透過させるパラメーターがあるようです。
私は今までairでやってましたが
この際やり方を覚えてしまおうというのが今回。

WINDにも以前から使われていたんですが
説明してるところが意外に無くて
よく分からない部分でした。
ちょっとこ丸氏のKFMのテンプレにやり方が書いてあったので
実際に画面で見てみることに。

trans 1
画像は左上段からtrans = None,Add, 下段でAdd1,Sub,
ここまでは数値での度合いはなし。

trans 2
これは

trans = AddAlpha
alpha = 256,256

のalpha = 256,256の値を
256,256  256,0
 0,256  0,0
で変化させたものです。

これは固定して使うことはなさそうですね。

trans 3

ということで徐々に透過させるステコンを試作。

[State 徐々に透過]
type = ModifyExplod
trigger1 = time >= 0
trigger1 = NumExplod(19017) = 1
ID = 19017
trans = AddAlpha
alpha = ifelse((time < 255/2),255-time*2,0),ifelse((time < 255/2),time*2,255)

ステート中のtime=0からの前提で
違うならalphaのところのtimeから指定した時間を引く必要がありそうです。

ちなみに*2にしてるのは255フレームかけての透過だと遅いからです。



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