キャラ製作の小技

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

キャラ製作の小技 - (2007/12/16 (日) 14:20:52) の1つ前との変更点

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

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

*キャラ製作の小技 **角度や距離関連 ホーミングする追尾弾等に ***相手キャラまでの角度を調べる 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))*180/pi)*pi/180)) >(cos((atan((p2dist y-(const(size.mid.pos.y))+enemynear,const(size.mid.pos.y))/(p2dist x))*180/pi)*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*((p2dist x>=0)-(p2dist x<0)) ) + ((P2dist x = 0)*) >[state fabs-y21] >type = varset >trigger1 = 1 >fvar(21)=( P2dist y*((p2dist y>=0)-(p2dist y<0)) ) + ((P2dist y = 0)*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)
*キャラ製作の小技 **角度や距離関連 ホーミングする追尾弾等に ***相手キャラまでの角度を調べる 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)

表示オプション

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