キャラ製作の小技

「キャラ製作の小技」の編集履歴(バックアップ)一覧に戻る
キャラ製作の小技」を以下のとおり復元します。
*キャラ製作の小技


**擬似EO-ISM
CAPCOM VS. SNK 2 EOのEO-ISM(GC版ではGC-ISM)を
MUGEN上で再現するためのコマンド
***※記入例 Aボタンを押したまま前キーを長く押し続ける&押してすぐ離す
>[Command]
>name = "Command1"
>command =/a,~30F;(Aボタンを押したまま前キーを30フレーム溜めて離す)
>[Command]
>name = "Command2"
>command =/a,F;(Aボタンを押したまま前キーを押す)
>[State -1,]
>type = ChangeState
>value = 300
>triggerall = command = "Command1"
>trigger1 = ctrl
>[State -1,]
>type = ChangeState
>value = 200
>triggerall = command = "Command2"
>trigger1 = ctrl
CMDファイルは上に記入されたものから優先するため
Command2を先に記入すると前キーを押した時点でCommand2のステートに移行し
Command1が出せなくなる


**角度や距離関連
ホーミングする追尾弾等に
***相手キャラまでの角度を調べる
trigger、atanを使います。
atanの返す値はラジアンのため、そのままでは"AngleDraw"等には使えないので度数に直し正負を与えます。
>(atan( (p2dist x-(p2dist x=0))/(p2dist y-(p2dist y=0)) )*180/pi ) - ((p2dist y>0)-(p2dist y<=0))*90
***相手キャラとの直接距離を調べる
****atanな方法
これもatanを使います
>9 : 文の人 ◆PpJMaaDGNM  sage : 2007/12/16(日) 13:42:36 ID:WvfuHp/S
>>>1乙
>前スレの続き
>p2dist x/(cos((atan((p2dist y-(const(size.mid.pos.y))+enemynear,const(size.mid.pos.y))/(p2dist x))&#42;180/pi)&#42;pi/180))
>(cos((atan((p2dist y-(const(size.mid.pos.y))+enemynear,const(size.mid.pos.y))/(p2dist x))&#42;180/pi)&#42;pi/180))
>この部分でx方向に1フレームの間に進む距離を計算
>それをp2dist xに除算で計算
>=相対距離
>?にならんかなぁ・・・
MUGENについて語るスレpart17より
http://bbs.nicovideo.jp/test/read.cgi/question/1197775862/9
****四則演算な方法
ちなみに四則演算だけで出来る方法もあります。また、返す値も多少異なりこちらのが少し小さいようです。
>[state fabs-x20]
>type = varset
>trigger1 = 1
>fvar(20)=( P2dist x&#42;((p2dist x>=0)-(p2dist x<0)) )  + ((P2dist x = 0)&#42;1)
>[state fabs-y21]
>type = varset
>trigger1 = 1
>fvar(21)=( P2dist y&#42;((p2dist y>=0)-(p2dist y<0)) )  + ((P2dist y = 0)&#42;1)
>[state x 10];x<yなら値を入れ替える
>type = varset
>trigger1 = 1
>fvar(10)=( (fvar(20) > fvar(21))*fvar(20) ) + ( (fvar(20) < fvar(21))*fvar(21) ) + ( fvar(20) = fvar(21) )
>[state y 11];x<yなら値を入れ替える
>type = varset
>trigger1 = 1
>fvar(11)=( (fvar(20) < fvar(21))*fvar(20) ) + ( (fvar(20) > fvar(21))*fvar(21) ) + ( fvar(20) = fvar(21) )
>[state 0]
>type = varset
>trigger1 = 1
>fvar(0)=fvar(11) / fvar(10)
>[state 1]
>type = varset
>trigger1 = 1
>fvar(1)=fvar(0)*fvar(0)
>[state 2]
>type = varset
>trigger1 = 1
>fvar(2)=fvar(1) / ( 4 + fvar(1) )
>[state 3] ;ここ(fvar(3))を利用
>type = varset
>trigger1 = 1
>fvar(3)=fvar(10) + 2*fvar(10)*fvar(2)

復元してよろしいですか?