初めての戦闘アニメ

これもふと思い立ち、初めて自作戦闘アニメに手を出してみることに。
どんな戦闘アニメかと聞かれれば、某金ピカことギルのゲートオブバビロンっぽいのを作ってます。
具体的に言えば、ユニットの背後にランダムで武器を並べ、それを射出するというもの。アーチャーや士郎にも使えます。
いまのところ単体用とMAP用の二種類を製作中。どちらも準備はできてます。
やっぱこういうのは楽しまなきゃ駄目ですよね。

で、これも完成したらインクルリズムに丸投げします。
ついでに試作品を晒しときます。そのままじゃ動かないのでそこらへんはご注意を。
以下、ソース。

戦闘アニメ_刀剣掃射準備:
Local i exi j temp

# 自分を中心とした相手の位置を角度で返す
deg = getDegree(対象ユニットID, 相手ユニットID)

# 対象ユニットの使用武器を取得
Local weapon = 対象ユニット使用武器

# 連の属性レベルを取得
Local num = Info("ユニット", 対象ユニットID, "武器", weapon, "属性レベル", "連")
# 連が無ければ最大射程で代用
If num = 0 Then
	num = Info("ユニット", 対象ユニットID, "武器", weapon, "最大射程")
Endif

# ユニット間の角度を取得
Local deg = getDegree(対象ユニットID, 相手ユニットID)
# 刀剣展開範囲を取得
Local range
range[1] = IIf((deg + 90) > 359, (deg - 270), (deg + 90))
range[2] = IIf((deg - 90) < 0, (deg + 270), (deg - 90))

# 表示する武器画像名と表示位置を決定する
Local ShowList coun deg2 DisX DisY
coun = 0
For i = 1 to num
	# 対象ユニットを中心とした武器表示位置の角度を算出
	deg2 = 180 / (num + 1) * i + range[1]
	deg2 = 3.141592 * deg2 / 180
	DisX = Cos(deg2) * 32
	DisY = Sin(deg2) * -32
	temp = AppPath & "Bitmap\Anime\Weapon\" & 表示武器ランダム決定()
	ShowList[i] = List(temp, DisX, DisY)
Next

# 表示位置を決定
Local BX BY
BX = WX()
BY = WY()
# 基準点を修正
BaseX = BaseX + BX
BaseY = BaseY + BY

# 武器を一斉に出現させる
Local rad = -135 + deg
PlaySound "BeamSaber.wav"
For i = -1 to 1
	ClearPicture
	Wait Start
	For j = 1 to num
		temp = ShowList[j]
		PaintPicture LIndex(temp, 1) (LIndex(temp, 2) + Abs(i)) (LIndex(temp, 3) + Abs(i)) 32 32 - - "左回転" rad "透過"
	Next
	Refresh
	Wait Until 0.5
Next

Wait Click
Wait 5

# 基準点を修正
BaseX = BaseX - BX
BaseY = BaseY - BY

Return "KEEP"