「SC-/Explod」の編集履歴(バックアップ)一覧に戻る

SC-/Explod - (2013/02/14 (木) 12:04:26) のソース

戻る→[[ステートコントローラーの一覧]]
//----
//:※解説修正情報※|
//●&font(12,b){日付:修正部分の概要}
//●&font(12,b){日付:修正部分の概要}
//
----
//ほかページヘのリンクはLv0のみで。(Lv1~でリンクしようとすると煩雑になりそうなので)
*■Explod【エフェクト表示】
:▼概要|
指定した番号のアニメ画像をキャラとは別に射出し、表示する。
''Explodの管理は射出したキャラ自身で、それ以外のキャラは干渉できない''。
射出後はパラメーターに従って残存・消失する。
処理は全てのキャラ処理より後に行われる。詳しくは[[フレーム処理]]参照。
:上限数|
またEplodは全体総数に上限があり、それを超えると射出できなくなる。
上限数は[[mugen.cfg>File-/MUGEN設定ファイル]]で設定。デフォルトは64個。
:Explod系|
射出:[[SC-/Explod]] 消去命令:[[SC-/RemoveExplod]]
変更・固定時間:[[SC-/ExplodBindTime]] 変更・全般:[[SC-/ModifyExplod]]
情報:[[T-/NumExplod]](自身のExplodのみ)
:類似|
[[fightfxアニメ>File-/fightfxファイル]]専用:[[SC-/GameMakeAnim]]
fightfxアニメ120番(埃)専用:[[SC-/MakeDust]]

:▼必須記述|
&b(){Anim = (Int型)} ;表示するアニメ番号
-表示をさせるアニメの番号を入れる。
-''F(Int型数値)''と入力すればMUGEN本体側の[[File-/fightfxファイル]]を利用できる。
--F##の入力でもFの後に数式を入れることは可能。

:▼オプション|
-&b(){ID = (Int型) };ExplodID設定
:位置関係|
-&b(){PosType = (文字列) };表示の基準点。Pos=0,0とする場所。
--''P1'':実行するキャラの座標。向き:キャラ基準
--''P2'':P2相手の座標。向き:P2相手基準(P2相手については[[リダイレクト]]参照)
--''F'':Front:キャラの前の画面端,画面上端。向き:右向き
--''B'':Back:キャラの後ろの画面端,画面上端。向き:''内側向き''
--''L'':Left:画面自体の左端,画面上端。向き:右向き
--''R'':Right:画面自体の右端,画面上端。向き:右向き
---Front,Back,Left,Rightは頭文字だけで識別?スペルミスしていても動く。
-&b(){Pos = (X座標Int型),(Y座標Int型) };表示座標
-&b(){Random = (X座標Int型),(Y座標Int型) };表示座標ブレ設定
--ランダムで指定値の半分の+-分までズレる。40なら+20~-20のどこか。
-&b(){BindTime = (Int型) };表示座標へ固定する時間 最低1に設定すること
--指定フレーム数の間はPosなどに従って表示。基準位置が動けば動く。
--''0指定の場合、画面左上端に出現してしまう。''
-&b(){Vel = (X速度Float型),(Y速度Float型) };移動速度
-&b(){Accel = (X加速度Float型),(Y加速度Float型) };移動加速度
--毎フレーム速度にしたがって動き、速度に加速度を加算していく。
--''BindTimeの効果が残っている間は速度では動かない''。
---ただし加速度は加算されていく。
--加速度は射出時点と次のフレームでは影響を与えないみたい?
:表示関係|
-&b(){RemoveTime = (Int型) };表示する時間。数値フレーム分表示。
--省略時-2(アニメ終了まで表示) -1で永続表示(''※使用には要注意'')
--基本的に-2指定か、1指定での更新がベター、かと。
---[[SC-/MobifyExplod]]で操作したい場合は-1~相応の数値に。
-&b(){RemoveOnGetHit = (bool型) };親が攻撃をくらった時消すフラグ
--省略時0(消さない) 動作用エフェクトは1にしよう
-&b(){Facing = (Int型1or-1) };左右の向き指定 省略時1 -1で反対向き
-&b(){VFacing = (Int型1or-1) };上下の反転指定 省略時1(通常) -1で反転
--※Facing,vFacingは座標位置に影響しない。
-&b(){Scale = (X縮尺Float型),(Y縮尺Float型) };省略時1,1(変化せず)
-&b(){SprPriority = (Int型) };スプライト表示優先度。省略時0
-&b(){Ontop = (bool型) };前面表示フラグ 省略時0
--1でSprPriorityを無視し手前に表示(ヒットスパークよりは奥とのこと?)
-&b(){OwnPal = (bool型) };パレット固有フラグ 省略時0
--1の場合[[SC-/PalFX]]などの影響を受け付けなくなる。
-&b(){Shadow = (int型),(int型),(int型) };影の色。
-いわゆるRGB指定。-1でステージ依存。省略時0,0,0(''影無し'')
:Pause無視系|
-&b(){SuperMove = (bool型) };省略時0 1で[[SC-/SuperPause]]を一切無視して動く。
--ただし1にしても[[SC-/Pause]]の影響は受ける。
-&b(){SuperMoveTime = (Int型) };[[SC-/SuperPause]]を始動から指定フレーム中だけ無視
-&b(){PauseMoveTime = (Int型) };[[SC-/Pause]]を始動から指定フレーム中だけ無視
--いずれも省略時は0、一切無視をしない。
--''MoveTimeが無くBindTimeが残っている場合、画面の移動に追従する''
---基準がP1などでも画面の動きに合わせて動く。
---判定にBindTimeが0になれば画面の動きの影響をうけない。
--''MoveTimeの影響時間はPause中の経過でなく射出からの時間''?
---SuperMoveTime=120の場合、射出から約2秒間のみ影響を受けない。
---120設定なら射出から2秒以上経っている場合は影響を受ける。
-''なおExplodは親キャラの処理とは別に作動する。''
--そのためMoveTimeが機能するのだが。

----
**■Lv1-記述例・補足・注意点
:記述例|
[State 2000, explod]
type = Explod
Trigger1 = AnimElem =3
anim = 8040
-[[T-/AnimElem]]が3枚目のはじめに8040番アニメを表示。
--表示はキャラの基準位置(足元)、アニメ終了時点で消滅。
--オプションパラメータは多いが基本的なエフェクトには不要。

:補足|
-アニメを透過したい場合
--[[File-/Airファイル]]側で透過するように指定。
-回転させることはできない。
-くらい判定・攻撃判定はつかない。完全にエフェクト用。
-Explodの状態を変更するステートコントローラー
--消去命令:[[SC-/RemoveExplod]]
--変更・固定時間:[[SC-/ExplodBindTime]]
--変更・全般:[[SC-/ModifyExplod]]
-[[SC-/Helper]]から射出した場合はそのHelperの管理となる。
--そのHelper以外からそのExplodを干渉することはできない。

:注意点|
-[[SC-/Helper]]を[[SC-/DestroySelf]]する際は[[SC-/RemoveExplod]]も
--RemoveTime=-1指定などの永続表示Explodを持っているHelperが消えた場合、&br()そのExplodを消せるキャラがいなくなり''永久に残り続ける''。
--''永続表示設定は可能な限り避けたほうが良い''。
-毎フレーム[[SC-/RemoveExplod]]をかけつつ更新するほうが、
--不測の事態で表示が残り続ける危険が無く、&br()[[SC-/mobifyExplod]]と記述を分ける必要がなくて済む。
---処理は重くなるが2010年以降クラスのPCなら気にならないかと。
---流石に数百個単位となると重くなるが。
-なおRemoveTimeは表示フレーム数で、''残存時間は+1フレーム長い''。
--''RemoveTime=1では2フレームの残る''ため、[[T-/NumExplod]]は要注意。
--1では「&b(){射出時点(表示) ~ 次のフレームの終了時点(消失)}」まで残る。
--[[SC-/RemoveExplod]]は実行時点で消せるが。
---[[フレーム処理]]のページも参照。
-Win版以前と1.0版以降では基本の画面横幅が異なる。
--その為、画面を基準とするPosTypeを使用する場合、横幅に注意。
:注意点・上限数|
デフォルトだと64個が上限数となっているが、
全体で64個のため''タッグ時は一人平均16個まで''と心もとない。
[[mugen.cfg>File-/MUGEN設定ファイル]]から上限設定を増やしておくこと。

//:AI制作時の注意点|
//-あれば

:固有ゲージを表示する場合|
基本[[T-/TeamSide]]に従い左右を決定する。
PosTypeをLとRに分けて表示すると記述を各2個ずる各必要がある。
[[SC-/Helper]]から射出できるなら、向きをTeamSideで調整し、、
PosType=Backで表示させるという方法もある?
Helperだが向きを変更できない場合はPosType=Lで
#aa(){
Pos = Floor(ScreenPos X-Pos X)*2*(TeamSide=2)+(X位置)*Ifelse(TeamSide=2,-1,1) , (Y位置)
Facing = Ifelse(TeamSide=2,-1,1)
}
という風にすると一挙にまとめる事ができる。はず。
Ifelse部分は(Facing)で良い。左向きなら(Facing*-1)で。
-Helperでなく本体から固有ゲージを表示させるのは&br()相手のSuperPause中に更新ができなくなるといった欠点がある。
--なので[[SC-/Helper]]を経由して表示させる方が便利。

//----
//**■Lv2-細かいバグ回避
//注意点で書いたことを回避したい場合用。
//----
//#region(■Lv3-細かい応用)
//**■Lv3-細かい応用
//
//#endregion
//----
//#region(■Lv4-バグ利用)
//**■Lv-4-バグ応用
//あやしい仕様を活用する関係。
//#endregion
//----
//**コメント
//細かい話し合い・確認が必要な場合に開放しましょう。
//#comment()
//----
//:※解説修正情報※古い履歴|
//●&font(12,b){日付:修正部分の概要}
//
----