キャラ製作の小技

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

キャラ製作の小技」(2015/08/06 (木) 00:31:09) の最新版変更点

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

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

*キャラ製作の小技 **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)
#contents ---- *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) ----

表示オプション

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