ステート奪取ページにも目を通すこと。

■ステート奪取/制御-手動タイプ(投げ技・ロック技用)

ステート奪取後、逐一Target系ステコンを実行して操作するタイプ。
性質上自分が自由に動くことは難しいが複雑化はしにくい。
Target系ステートコントローラー

最低限・用意するステート
  • 自分側:Target系ステコンで操作するステート
    • 相手の位置を制御する制御ステート
    • 可能なら、可能な限りSC-/TargetBindを指定し続ける。
  • 相手用:目的のアニメを読みこませるステート
    • T-/StateType他とアニメを変更する待機ステート(アニメを変更するなら複数)
    • 終了時にSC-/SelfStateを実行する終了ステート
基本の考え方
  • 相手のステートを奪い、自分は制御ステートへ飛ぶ。
  • 相手を相手用の待機ステートに飛ばし、自分側の制御ステートで相手の位置を動かす。
  • 動作が終わったら相手を相手用の終了ステートへ飛ばす。
以上。

少し具体的な基本
  • 攻撃のP2StateNo指定か攻撃後SC-/TargetStateを実行しステートを奪う。
  • 相手に読み込ませる待機ステート
    • ステートの冒頭でtype,Movetypeを指定。
    • 必要ならSC-/ChangeAnimSC-/ChangeAnim2を指定。
    • また再度攻撃を当てるタイプでなければSC-/NotHitByをSCAで指定する。
    • 戦闘不能防止用に自動で戻る記述を追加しておく。
    • 途中でアニメを変更したい場合は待機ステートを複数作る
  • 自分が読み込む制御ステート
  • 相手に読み込ませる終了ステート
    • 必要なら状態を変更し、SC-/SelfStateを実行させてステートを返す。
    • 即時SelfStateせず落下着地など一定条件でSelfStateさせる方法でも良い。

自動タイプについて
ちなみに終了ステートを自動タイプのステートとすることも一応可能。
あと細かい制御を自動タイプのように相手用ステートで制御させるする手法もある。

■注意点
  • 相手用の待機ステートに自動で戻る記述がない場合、
    自分側が投げ以外のステートへ飛んでしまった場合戻れなくなる
    • 必ず自動でも戻る処理を追加しておくこと。ステート奪取のLv2参照。
      • SC-/TargetBindを用いておくと、自動で戻す処理を作るのが楽になる。
  • 相手ステートを奪えてないのに自分側が動作してしまうのも
    致命的なものではないが気になるなら保険を掛けよう。


■Lv3-記述例

+ 相手を掴んで上へ投げ上げる技

相手を掴んで上へ投げ上げる技


;//「Another YUKA」から引用・改変(Animを1200,1201,1202と揃えれば他でも使用可能に)
;1.Target系ステコンで相手を動かす。
;2.相手用のステートではアニメの変更とNotHitByのみ。
;-----------------------■投げ上げ
[StateDef 1200]
Type = S
MoveType = A
Physics = N
velset = 0,0
anim = 1200
ctrl = 0
sprpriority = 3

;-------------■攻撃定義
[State 1200, hitdef]
type = HitDef
trigger1 = !Time
Trigger1 =(P2StateNo!=[150,159])&&(P2StateNo!=[5000,5019])
Attr = S, ST ;投げ
HitFlag = M- ;
priority = 5, Miss ;■P1StateNoを指定する場合は必ずmissかdogeにすること
AnimType = up ;
sparkno = -1 ;
p1sprpriority = 1
p1facing = 0
p2facing = 1
p1stateno = 1201 ;■自分が飛ぶところ
p2stateno = 1205 ;■相手を飛ばすところ
ID=1200
guard.dist = 0
fall = 1 ;■
fall.recover = 0 ;■相手を通常のくらい吹っ飛びへ飛ばすので設定。

[State 1200, end]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
Ctrl = 1

;-----------------------■投げ上げ・掴み
[Statedef 1201]
Type = S
MoveType = A
Physics = N
velset = 0,0
ctrl = 0
PowerAdd = 20
sprpriority = 5
Anim = 1201

[State 1201, Attackdist]
type = AttackDist
Trigger1 = 1
value = 0
Ignorehitpause = 1

;-------------■ターゲットが存在しない場合
[State 1201, error end]
type = ChangeState
trigger1 = !NumTarget(1200) && time
value = 0
Ctrl = 1

;-------------■音声・必要なら
[State 1202, snd]
type = PlaySnd
trigger1 = 0; AnimElem = 1
value = 0,0

;-------------■Target
[State 1201, bind];■相手を拘束する
type = TargetBind
trigger1 = 1
ID=1200
pos = 30, 0

[State 1201, lifeadd];■相手のライフを減らす
type = TargetLifeAdd
trigger1 = !Time
ID=1200
value = -15
Kill = 0
absolute = 0

[State 1201, targetstate];■相手のステートを変更する
type = TargetState
trigger1 = Time = 30
Value = 1206
ID = 1200

[State 1201]
type = ChangeState
trigger1 = Time = 30
value = 1202

;-----------------------■投げ上げ・投げ上げ
[Statedef 1202]
Type = S
MoveType = A
Physics = N
velset = 0,0
ctrl = 0
sprpriority = 4
Anim = 1202

[State 840, Attackdist]
type = AttackDist
Trigger1 = 1
value = 0
Ignorehitpause = 1

;-------------■ターゲットが存在しない場合
[State 1202, error end]
type = ChangeState
trigger1 = !NumTarget(1200) && time
trigger1 = AnimElem = 3, < 0 ;Elem=3より前=相手を投げ上げるより前
value = 0
Ctrl = 1

;-------------■音声・必要なら
[State 1202, snd]
type = PlaySnd
trigger1 = 0; AnimElem = 2
value = 0,0

;-------------■Target系
[State 1202, bind];■相手を拘束する,Elem=3より前まで
type = TargetBind
trigger1 = AnimElem = 3,< 0
ID=1200
pos = 30, 0 - 8*(Time-2)*(Time>2) ;Time=4から上へ上昇

[State 1202, targetvelset];■相手を打ち上げる
type = TargetVelset
trigger1 = AnimElem = 3
y = -10

[State 1202, targetstate];■相手のステートをAnimElem=3時点で変更
type = TargetState
trigger1 = AnimElem = 3
Value = 1207
ID = 1200

[State 1202, lifeadd];■相手のライフを変更時点で減らす
type = TargetLifeAdd
trigger1 = AnimElem = 3
ID=1200
value = -13
Kill = 1
absolute = 0

[State 1202, end]
type = ChangeState
trigger1 = AnimTime=0
value = 0
Ctrl = 1

;-----------------------■相手側:投げ上げ・つかまれ・待機1
[StateDef 1205]
Type = A
MoveType = H
Physics = N
sprpriority = 0
Ctrl = 0
velset = 0,0

[State 1205, nothitby]
type = NotHitBy
trigger1 = 1
value = SCA

[State 1205, anim]
type = ChangeAnim
trigger1 = 1
value = 5000

[State 844, error]
type = SelfState
trigger1 = !GetHitVar(IsBound)
value = 5050
;-----------------------■相手側:投げ上げ・つかまれ・待機2
[StateDef 1206]
Type = A
MoveType = H
Physics = N
sprpriority = 5

[State 1205, nothitby]
type = NotHitBy
trigger1 = 1
value = SCA

[State 1205, anim]
type = ChangeAnim
trigger1 = 1
value = 5010

[State 844, error]
type = SelfState
trigger1 = !GetHitVar(IsBound)
value = 5050
;-----------------------■相手側:投げ上げ・つかまれ・浮き上がり
[StateDef 1207]
Type = A
MoveType = H
Physics = N
sprpriority = 5

[State 1205, nothitby]
type = NotHitBy
trigger1 = 1
value = SCA

[State 844, error]
type = SelfState
trigger1 = 1
value = 5035




最終更新:2013年05月10日 21:06