Profile

アメリ

Author:アメリ
キャラ紹介

line
カテゴリ
AIR (1)
Pos (1)
Var (1)
FAQ (1)
line
不許カウンター
line
最新記事
line
最新コメント
line
最新トラックバック
line
月別アーカイブ
line
sub_line
カレンダー
08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
line
検索フォーム
line
リンク
line
RSSリンクの表示
line
QRコード
QR
line
ブロとも申請フォーム

この人とブロともになる

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

・airの書式
 airの書式は次の通りです。
 開始タグ
[Begin Action 番号]

 攻撃判定(省略可能)
Clsn1: 判定枠の数(下の行数)
 Clsn1[序数] = 左上x, 左上y, 右下x, 右下y

 当たり判定(省略可能)
Clsn2: 判定枠の数(下の行数)
 Clsn2[序数] = 左上x, 左上y, 右下x, 右下y

序数は0からです。


 画像表示指定
sffグループ番号, sffグループ内番号, x, y, 表示フレーム数, 反転(省略可能), 透過(省略可能)

反転は水平垂直のHとV、透過はAとA1とSがあります。組み合わせた書き方も可能です。
200, 0, 0, 0 ,HV, A1

表示フレーム数には-1が使えて常に表示になります。しかし-1だとステートの処理で時間を上手く扱えない場合があるのでなるべく使わない様にしましょう。また、途中のフレームに-1を使うとアニメーションがそこまでしか認識されません。Timeが途中で止まり28/120とかで終わった事になってループする様になります。この事からわかる様に表示時間-1のフレームは終わりを意味します。


 ループ開始位置の指定
画像表示指定の手前(Clsnがある場合はその手前)にLoopstartと言う行を入れるとそのActionが終了した際にLoopstartから繰り返します。書かなくても最後まで表示したら頭に戻ってくるので通常は必要ありません。

Clsn2: 1
 Clsn2[0] = 12, 120, -12, 0
0,10,0,0,4
Clsn2: 1
 Clsn2[0] = 12, 120, -12, 0
0,11,0,0,4
Loopstart
Clsn2: 1
 Clsn2[0] = 12, 120, -12, 0
0,0,0,0,4
Clsn2: 1
 Clsn2[0] = 12, 120, -12, 0
0,1,0,0,4
Clsn2: 1
 Clsn2[0] = 12, 120, -12, 0
0,2,0,0,4


・実際のair

[Begin Action 0]
Clsn1: 1
 Clsn1[0] = -55, -97, -25, -49
Clsn2: 3
 Clsn2[0] = -17, -72, 20, 0
 Clsn2[1] = -32, -96, 2, -72
 Clsn2[2] = -30, -114, -13, -96
0,0, 0,0, 3
Clsn1: 1
 Clsn1[0] = -55, -97, -25, -49
Clsn2: 3
 Clsn2[0] = -17, -72, 20, 0
 Clsn2[1] = -32, -96, 2, -72
 Clsn2[2] = -30, -114, -13, -96
0,0, 0,-1, 3


 こんな感じです。FFUやSAE等では枠をマウスで動かせます、がマウスなので細かい調節には不向きです。しかしマウスに加えて値を直接弄れる機能もありますし、テキストエディタでairを書くと既存の物を簡単に写せると言う点は大きいです。また、移動する場合は値を計算して出さないと上下にぶれながら動いてしまったり各フレーム間の移動距離が異なってしまったりするのでテキストエディタで書くのに慣れていると楽かもしれません。


・移動
 airでの移動はキャラクターの位置を基準に絵を置くだけなので、見た目上は移動していても行動が終わって別のステートに移動するとairの位置が繋がっていなければ元の位置に戻ってしまいます。実際に移動させるにはposをPosAddで変更するかvelをVelSetするなりしてキャラクターを移動させる必要があります。地上でのVelの扱いは難しいのでvelocityの頁を見て下さい。
 つまり、通常はairで縦や横の移動をさせるのではなく、立った状態の足下を基準にキャラクターを置いてキャラクターの位置を移動させる必要があると言う事です。
 airで上下動をさせてしまったりすると相手の攻撃を食らった際にposをその都度計算したりenemynearやtargetリダイレクトで相手の位置に合わせたりしないと不自然な部分が出てしまうので気をつけましょう。

 ではどう言う時に位置x, yを動かすのかと言うと、本体と同期しない動きをする飛び道具や動いたり止まったりする場合です。ヘルパーを使えば恐らくその必要はありませんし、ヘルパーを使った方が追尾等の複雑な動きをさせるには適しているでしょう(ステートを作る必要はありますが)。又、ヘルパーを使わないで変数で位置を管理する事も出来るのとヘルパーからの攻撃では不具合が出そうな場合もあるので使い方次第でしょう。


・判定の付け方
 基本的には当たり判定の上に攻撃判定が重なる形になります。武器を使うキャラの場合は武器に当たり判定が無かったりしますが腕には忘れずにつけておきましょう。
 飛び道具の当たり判定はなるべく片側だけにつけます。理由は見た目通りの判定だとなかなか飛び越せないからです。後ろにかすっただけで当たってしまうと対人でも飛び越しにくい物になってしまいます。出す位置が前過ぎると近くで当たりませんが、近くで当たらなくても良いじゃないと言うのもあります。

 何れにせよ作って実際に自分が食らってみてどうなのか検証しましょう。Ctrl-Dでデバッグモードに切り替えてCtrl-Cで当たり判定枠の表示をしておきましょう。


・空アニメ、空画像(からアニメ)
 1x1や4x4位の透過色のみの空っぽの画像を入れておくと、複数のアニメを同時に出しても表示開始時間を調節する事が出来ます。時間差で表示するExplodの表示保証をしたい場合はこれを使うと時間差を気にせず出せるので便利です。


・Time AnimTime
 普通のステートはアニメが終わった時(AnimTime=0)でChangeStateすると思いますが、ChangeStateを任意の時点にしたい場合はループアニメや-1のアニメを使う事になると思います(フレーム数が長いアニメでも良いですが)。しかしフレーム数が-1だとAnimTimeが正常に取得できない(-1のまま)気がするので基本的にはループにしておくと良いでしょう。少し無駄な方法ですがstateno!=prevstatenoでそのステートにChangeStateしておくと言うのも手です、こうすると変数を使わずに状態を一つ変更できます。どれも使い方次第ですね。
 取りあえず、ループの場合はTimeとAnimTimeは最初の状態になります。



ゴールっ・・・

スポンサーサイト
line
line

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