キャラ製作の小技

「キャラ製作の小技」の編集履歴(バックアップ)一覧はこちら

キャラ製作の小技 - (2008/04/07 (月) 22:02:31) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

*キャラ製作の小技 **擬似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)
*キャラ製作の小技 **AngleDrawとAngleAddの使用例 スプライトを回転させたいけどAngleの 使い方がよくわからない。 一定速度で回転させたいという人のための例です。 >[State 1000] >type = AngleDraw >trigger1 = 1 > >[State 1000] >type = AngleAdd >trigger1 = 1 >value = 2 **擬似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)

表示オプション

横に並べて表示:
変化行の前後のみ表示: