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

SC-/Helper - (2017/03/21 (火) 14:07:04) のソース

戻る→[[ステートコントローラーの一覧]]
----
:※解説修正情報※|
//●&font(12,b){日付:修正部分の概要}
●&font(12,b){2017-03-21:Size.Groundの誤字修正}
●&font(12,b){2016-10-21:PosTypeの基準位置修正。FBLRは地面の高さを基準に出現}
●&font(12,b){2014-10-13:Scale処理についてと、Size設定について。}

----
//ほかページヘのリンクはLv0のみで。(Lv1~でリンクしようとすると煩雑になりそうなので)
*■Helper【Helper・分身射出】
:▼概要|
Helperキャラを射出する。細かいことは[[Helper技術]]を参照
Helperはプレイヤーキャラとほぼ同じ量のパラメータを持ち、
プレイヤーキャラと同じようにステート・攻撃他の処理を行う。
細かい制御を行いたい場合に使われる。
:上限数|
Helperには全体総数に上限があり、それを超えると射出できなくなる。
上限数は[[mugen.cfg>File-/MUGEN設定ファイル]]で設定。デフォルトは32個。
''最大56個までしか上限は増やせない''。個数管理には要注意。
:|
細かい技術については[[Helper技術]]とその子ページで。
ここではステートコントローラーとしてのことを解説。

:▼必須記述|
-省略してもエラーは起きないが
-&b(){StateNo = (Int型) };最初に持つ[[T-/StateNo]]、番号ステートを指定。
--これを指定しないと使い物にならない木偶が発生するだけ。
--[[常時監視ステート]]を読みこませる設定ならそちらだけでも良いが。

:▼オプション|
-&b(){Name = "(好きな文字列)" };[[T-/Name]]で探知する名前
--省略時"<射出キャラのName>'s helper"となる。
--細かく区別したい場合は指定する。
-&b(){ID = (Int型) };HelperID指定。
--[[リダイレクト]]や[[T-/NumHelper]]で使用する重要な判別値。
--なおHelperで自身のHelperIDを返すトリガー情報はない。
---[[T-/IsHelper]]でHelperIDが引数であるかどうかは判別できるが。
---やや特殊だが後記するものに入れる手段はある。
:位置関係|
-&b(){Pos = (X座標Int型),(Y座標Int型) };出現座標
-&b(){PosType = (文字列) };出現基準位置。Pos=0,0とする場所。
--''P1'':実行するキャラの座標。向き:キャラ基準 省略時P1
--''P2'':P2相手の座標。向き:P2相手基準(P2相手については[[リダイレクト]]参照)
--''F'':Front:キャラの前の画面端,地面。向き:キャラ基準
--''B'':Back:キャラの後ろの画面端,地面。向き:キャラ基準
--''L'':Left:画面自体の左端,地面。向き:右向き
--''R'':Right:画面自体の右端,地面。向き:右向き
---Front,Back,Left,Rightは頭文字だけで識別?スペルミスしていても動く。
-&b(){Facing = (Int型) };向きを指定する。
--1でPosType対応の向き、-1でPosType対応とは反対の向き。
:特殊Helperパラメータ|
-&b(){HelperType = (文字列) };Helperのキャラタイプ指定
--HelperType =&b(){ Normal };省略時。通常のHelper
--HelperType =&b(){ Player };プレイヤーキャラと同じような扱いにする。
---Player型Helperは非常に特殊なため基本的には使用しない方が良い。
-&b(){KeyCtrl = (bool型) };コマンド入力に対応するフラグ指定
--省略時:0(対応しない・[[T-/Command]]を認識できない。)
--1:初期[[T-/Ctrl]]l=1で発生し[[T-/Command]]を認識、&br()[[常時監視ステート]]の-1ステートをを読み込むように。
---Helperにコマンド認識させたい場合と、特殊な処理をする場合に。
-&b(){OwnPal = (bool型) };パレット独立フラグ
--省略時:0([[SC-/PalFX]]が親と動機。Helper自身のPalFXは無効)
--1:親の[PalFXの影響を受けなくなり、Helper自身のPalFXが有効に。
:MoveTime 省略時0(無視しない)|
-&b(){SuperMoveTime = (Int型) };[[SC-/SuperPause]]を指定フレーム分だけ無視
-&b(){PauseMoveTime = (Int型) };[[SC-/Pause]]を指定フレーム分だけ無視
--指定値は''無視できる総フレーム数''で消費しきったら無効になる。
---例:120指定の場合、他のキャラが30f+60f+120fと時間を止めた場合、&br()30+60時点で90F消費し残り30F。120F停止の30F目で影響を受け止まる。
--特に調整するわけでなければ0か大きな数値(999999999など)を指定。
:Sizeパラメータ|
-[[File-/CNSファイル]]における[Size]のパラメータを指定。
-省略した場合は、射出する親の対応パラメータと同じ値になる。&br()本体からなら本体、HelperからならそのHelperの設定値に
--Helperはこれらの指定数値を[[T-/Const()]]のSize.####で参照できる。
-キャラ幅系は[[SC-/PlayerPush]]の効果が1でなければ無意味。
-&b(){Size.XScale = (Float型) };内約は[[File-/CNSファイル]]を参照。
-&b(){Size.YScale = (Float型) };
--CNSの設定とは異なりこの設定では''判定枠の大きさは変化しない?''
-&b(){Size.Ground.Back = (Int型) };
-&b(){Size.Ground.Front = (Int型) };
-&b(){Size.Air.Back = (Int型) };
-&b(){Size.Air.Front = (Int型) };
-&b(){Size.Height = (Int型) };
-&b(){Size.Proj.doScale = (bool型) };
-&b(){Size.Head.Pos = (X座標Int型),(Y座標Int型) };
-&b(){Size.Mid.Pos = (X座標Int型),(Y座標Int型) };
-&b(){Size.ShadowOffset = (Int型) };
-実はHelperへ射出時に直接数値を受け渡せる貴重なパラメータ。
--特殊な数値を入れ[[T-/Const()]]で処理を調整することも可能。
--例;HelperIDを入れておけばHelperが自身のHelperID自体を確認できる。

:Helperの扱い|
-Helperはプレイヤーキャラ同様[[T-/StateNo]]を持ち、&br()自分でステートを読み込んで処理を行う。
--プレイヤーキャラと同レベルの処理が可能。
--システムだけで言えばプレイヤーキャラよりも便利。
-Helperの処理の順番については[[スロットID]]のページを参照
-通常、押し出し判定を行わず、カメラに影響を与えず・影響を受けない。
--[[SC-/PlayerPush]]で1にすれば押し出し判定をするようにできる。
--[[SC-/Screenbound]]で各種1に設定すれば影響を受けるように。
--なお''HelperType=Playerの場合デフォルトで押し出し・カメラ影響有り''。
-[[T-/Life]]を本体の最大値分最初から保持している。
--[[ダメージ]]をうけて0になれば、本体同様死亡する。
-[[常時監視ステート]]は基本的に読み込まないが
--''KeyCtrl=1であれば-1ステートを読み込む''。
--''HeleprType=Playerであれば-3,-2ステートを読み込む''。
:その他HelperType=Playerの場合|
-相手の近くにいる場合、Player型HelperをP2として認識する。
--相手はP2系トリガー情報でPlayer型Helperの情報を取得する。
--また相手は''P2系が近くの後ろにいる場合、自動振り向きを行う''。

----
**■Lv1-記述例・補足・注意点
:記述例|
[State -1];
Type=Helper
Trigger1 = NumHelper(1)
ID = 1
StateNo = 10000
PauseMoveTime = 999999999
SuperMoveTime = 999999999
-基本的な処理用Helperの射出記述。
--開始位置はHelper側でもある程度変更できるため、指定しなくても対して問題はない。

:補足|
-細かいことは[[Helper技術]]の方でまとめる。

:注意点|
-細かいことは[[Helper技術]]の方でまとめる。
-上限数が決まっているため遣い過ぎないようにすること。
--総数で最大56個、タッグの2:2では1人平均14個まで。
--多くても10個程度に抑えるようにしたほうが良い。

:HelperにCommandを認識させたい場合|
-Root,Command=""(本体Commandを認識)だと本体がステートを奪われてると上手く認識できない。
--詳しくは[[T-/Command]]のページ下部を参照
-しかし認識させたいHelper自体をKeyCtrl=1にすると-1ステートの読み込みで不具合が出る可能性があり、&br()-1ステートの情報全てに!IsHelperを仕込むか、-1冒頭でChangeStateをする必要がある。
-Timeなどの関係でそのHelperに-1冒頭でのChangeStateをさせたくない場合は&br()「''HelperがCommandを認識するためのHelper''」を用意すると良い。
-+Command認識が必要なHelperが出ている間のみ、Command認識専用のHelperを射出。
-+専用HelperはChangeStateをしてもいいようにし、-1冒頭でChangeStateをする。
-+Commandが必要なHelperの出番が終わって消えたら、専用Helperも消失させる。
-なお「向き」をあわせることが必要な場合は専用HelperはFacing=1で固定。
--Commandが必要なHelperの方で向きに合わせてコマンドを切り替える方が良い。&br()&nowiki(){(Helper(xxx),Command="*右向き時*"&&Facing=1||Facing=-1&&Helper(xxx),Command="*左向き時*")}

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

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