はぢめに・・・

ここではLunar Magic v1.7x以降で大幅に変化した拡張アニメーションタイルについて書いていこうと思いません。

※情報はLunar Magic v2.32の物です。

使い方

ツールバーの一番右の3個が拡張アニメーションタイル関連の機能です。

ローカル(マップ固有)拡張アニメーションタイルの設定画面を開きます。
拡張アニメーションタイルの設定と言えばこっちを指します。

グローバル(全マップ共通)拡張アニメーションタイルの設定画面を開きます。
使い方はローカル拡張アニメーションタイルの設定と同じなので一緒に解説。
Lunar Magic v1.80で追加。

現在の開いているマップのアニメーション設定画面を開きます。
Lunar Magic v1.80で追加。


拡張アニメーションタイルの設定画面

を開くとこんなダイアログが出ると思います。
機能を一つ一つ解説しません。自分で調べろ。(途中保存)


各種ボタンについて
  • <
    • 前の64(0x40)フレームの設定を閲覧します。
  • >
    • 次の64(0x40)フレームの設定を閲覧します。
  • Copy Slot
    • 現在選択中のスロットをコピーします。
  • Paste Slot
    • 現在選択中のスロットにペーストします。
  • Clear Slot
    • 現在選択中のスロットを削除します。
  • Trigger Init
    • Manual及びCustomTriggerの初期状態を設定します。
  • Copy All Slots
    • 全ての有効なスロットをコピーします。
  • Paste All Slots
    • 全ての有効なスロットをペーストします。
  • Clear All Slots
    • 全ての有効なスロットを削除します。
  • Insert All Slots
    • 全ての有効なスロットを未使用のスロットに挿入します。

Slotについて

スロットは32個用意されています。
負荷分散のためにそれぞれアニメーション更新のタイミングがわずかに違います。

※:Lunar Magic v1.6xまでは全てのスロットを同じタイミングで更新していたため、
アニメーションを使いすぎるとV-Blank中にVRAM更新が間に合わず、画面上部に黒い帯が発生していた。

更新タイミング スロット
0 0, 8, 10, 18
1 1, 9, 11, 19
2 2, A, 12, 1A
3 3, B, 13, 1B
4 4, C, 14, 1C
5 5, D, 15, 1D
6 6, E, 16, 1E
7 7, F, 17, 1F

複数のスロットで同期を取りたい時はタイミングが同じスロットを使いましょう。
また、更新タイミングの違いを利用して0と4のスロットを使い、通常の倍の早さでアニメーションするタイルも作成できます。

Typeについて

アニメーションの種類を設定します。
なんかやたらと多いですが、実際使うのはあんまり多くないと思います。
個人的によく使いそうなTypeは太字で示します。
+ Type一覧
Type名 種別 説明
Not Used 未使用 未使用スロット
8x8 タイル 1タイル分アニメーション
2 8x8s line タイル 16x8 2タイル分アニメーション
3 8x8s line タイル 24x8 3タイル分アニメーション
4 8x8s line タイル 32x8 4タイル分アニメーション
5 8x8s line タイル 40x8 5タイル分アニメーション
6 8x8s line タイル 48x8 6タイル分アニメーション
7 8x8s line タイル 56x8 7タイル分アニメーション
8 8x8s line タイル 64x8 8タイル分アニメーション
0x0C 8x8s line タイル 96x8 12タイル分アニメーション
0x10 8x8s line タイル 128x8 16タイル分アニメーション
0x14 8x8s line タイル 160x8 20タイル分アニメーション
0x18 8x8s line タイル 192x8 24タイル分アニメーション
0x1C 8x8s line タイル 224x8 28タイル分アニメーション
0x20 8x8s line タイル 256x8 32タイル分アニメーション
1 8x8 2bpp タイル 8x8 1タイルアニメーション レイヤー3用?
2 8x8s stacked タイル 8x16 2タイル分アニメーション?
4 8x8s: 16x16 タイル 16x16 4タイル分アニメーション
8 8x8s: 32x16 タイル 32x16 8タイル分アニメーション
Palette パレット パレット用アニメーション
Palette + Working パレット パレット用アニメーション 上との違い不明
Palette + Working, Stop on Fade パレット パレット用アニメーション フェード時停止?
Palette Back Area Color 背景色 背景色用アニメーション
Palette Back Area Color, Stop on Fade 背景色 背景色用アニメーション フェード時停止?
Palette Rotate Right パレットシフト パレットを右に回す
Palette Rotate Right, Rev on Trigger パレットシフト パレットを右に回す トリガーONで左に回す
Palette Rotate Left パレットシフト パレットを左に回す
Palette Rotate Left, Rev on Trigger パレットシフト パレットを左に回す トリガーONで右に回す

タイル系

Colors:使われない
Frames:アニメーションフレームの数(x2の時は指定した数の2倍になります)
Destination:アニメーションをさせる8x8タイル番号

Frame00-FF:各フレーム番号で参照するタイル番号を選択
8x8 Tile EditorでCtrl+Shift+PgDownを押すと"Internal GFX data viewing unlocked."と出て0x0500以降を閲覧できるようになります。

使用可能なタイル番号
(Lunar Magic.chm > Lunar Magic Documentation > Level Menu > Edit Level ExAnimated Framesから引用)
タイル番号 Direct Offset 種別 説明
0x0500-0x067F 0x017D00-0x01ACFF RAM GFX33 通常アニメーションタイル
0x0680-0x0757 0x01AD00-0x01C7FF RAM SuperGFX Bypassで設定した拡張アニメーションタイル
0x0800-0x0AE7 0x012000-0x017CFF RAM GFX32 マリオのGFX
0x0B00-0x0EFF 0x010000-0x017FFF ROM 未圧縮 ExGFX60
0x0F00-0x12FF 0x010000-0x017FFF ROM 未圧縮 ExGFX61
0x1300-0x16FF 0x010000-0x017FFF ROM 未圧縮 ExGFX62
0x1700-0x1AFF 0x010000-0x017FFF ROM 未圧縮 ExGFX63

Use alternate ExGFX file for sourceにチェックを入れると、ExGFX60-63のいずれかを使用することができます。
選択したExGFX以外のタイルは参照できないので注意。

パレット系

Colors:変更する色の数(1以外の適切な設定方法は分かりません・・・)
Frames:アニメーションフレームの数(x2の時は指定した数の2倍になります)
Destination:アニメーションをさせるパレット番号

Frame00-FF:各フレーム番号でのSNES RGBの値を設定

背景色

Colors:使用されない
Frames:アニメーションフレームの数
Destination:使用されない

Frame00-FF:各フレーム番号でのSNES RGBの値を設定

パレットシフト系

Colors:シフトするパレットの数
Frames:使用されない
Destination:シフトするパレットのベース番号


Triggerについて

アニメーションの条件を設定します。

+ Trigger一覧
Trigger名 種別 説明
None 通常 条件なし
POW x2 青POW起動
SilverPOW x2 銀POW起動
ON/OFF x2 OFFで起動
Have Star x2 無敵中に起動
Timer < 100 x2 TIME100未満で起動
Timer < 100 One Shot One Shot TIME100未満になると1度起動
>= 5 Yoshi coins x2 ドラゴンコイン5枚以上獲得で起動
>= 5 Yoshi coins One Shot One Shot ドラゴンコイン5枚以上獲得で1度起動
Precision Timer Palette Rotate 通常? しらない
Do not use 未定義 将来のための空きトリガー 使用禁止
Manual 0-F 通常 ユーザー用トリガー フレーム番号指定型
Custom 0-F x2 ユーザー用トリガー ON/OFFスイッチ型
One Shot 00-1F One Shot ユーザー用トリガー OneShot型

通常系

Frame0から指定フレームまでアニメーションし続けます。

x2系

起動条件を満たしていない場合、Frame0から指定フレーム-1まで
起動条件を満たしている場合、指定フレームから指定フレームx2-1までアニメーションします。

One Shot系

起動条件を満たしていない場合、Frame0を表示
起動条件を満たした瞬間、1周期アニメーション
起動条件を満たした後もFrame0を表示

ユーザー用トリガーの使い方

Manual 0-F, Custom 0-F, One Shot 00-1Fはユーザーが自由に使えるトリガーです。

Manual Trigger

指定したフレーム番号を表示し続けるタイプのトリガーです。
0x7FC070から16bytesがManual Trigger用メモリです。
例:
; 上を押すとManual 0のフレームを1増加
; 下を押すとManual 0のフレームを1減少

		print "MAIN ",pc
		LDA $7FC070	;\ Y:Manual Trigger 0
		TAY		;/
		LDA $16		;\
		BIT #$04	; | 下が押されていなければ次へ
		BEQ +		;/
		DEY		; 1減少
+		BIT #$08	;\ 上が押されていなければ次へ
		BEQ +		;/
		INY		; 1増加
+		TYA		;\ Manual Trigger 0を更新
		STA $7FC070	;/
		print "INIT ",pc
		RTL


Custom Trigger

true/falseを持ち、状態によってアニメーションのパターンを変えれるトリガーです。
0x7EC0FCから2bytesがCustom Trigger用メモリで、bit0がTrigger 0 bit15がTrigger Fです。
例:
; ビックリスイッチ押下状態を見て、Custom Trigger 0から3を設定する。
; Custom 0 : 緑ビックリスイッチが押されていればON
; Custom 1 : 黄ビックリスイッチが押されていればON
; Custom 2 : 青ビックリスイッチが押されていればON
; Custom 3 : 赤ビックリスイッチが押されていればON

		print "INIT ",pc
		STZ $00
		LDY #$03
-		LDA $1F27,y	;\ スイッチが押されていれば
		CMP #$01	;/ キャリーフラグが1になる
		ROL $00		; 左ローテートでキャリーフラグの情報を記憶していく
		DEY		;\ 上の処理を4回繰り返す
		BPL -		;/
		LDA $7FC0FC	; A:Custom Trigger 0-7
		AND #$F0	; Trigger 0-3を0にする
		ORA $00		; スイッチの状態をTrigger 0-3に書き込み
		STA $7FC0FC	; Custom Trigger 0-7を更新
 		print "MAIN ",pc
		RTL



One Shot Trigger

trueにした瞬間から1周期だけアニメーションするタイプのトリガーです。
その内書きます。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2015年10月17日 03:45