NEW  |  HOME  |  OLD

ホーミング

4/10
22:45 (dry_ice) うーん、相手に向かっていくprojってやっぱヘルパー使わないと無理ですよね・・・?
22:46 (DRM) ホーミングならProjじゃ無理ですね。
22:46 (dry_ice) ですよね
22:46 (dry_ice) 変数とヘルパー使わないといけないか
22:51 (dry_ice) 変数で相手の位置記憶させて、その変数をヘルパーで使いそれでprojを飛ばすって感じでしょうか?
22:52 (DRM) ヘルパー使ってるならヘルパーHitDefが良いよ
22:52 (dry_ice) ヘルパーHitdefですか?
22:53 (DRM) Projでホーミングは無理なんす。だからHitDefしかない
22:53 (dry_ice) あ、そうなんですね なるほど・・・
22:54 (DRM) 自分もホーミングの記述ってのはあまりよく分からんのよ・・・いろいろ試したんだけど
22:54 (dry_ice) レヴィアタンがすごい使ってましたっけ?
22:55 (DRM) まぁ種類は色々あるけど、東方キャラに多そうなのかな?レヴィアタンはよく覚えてない(
22:55 (simotsuki) ブーメランは難しそうだった
22:55 (dry_ice) 参考になるキャラいないかな・・・?
22:55 (DRM) あれのせいで制作凍結なうだからな・・・w
22:55 (dry_ice) あらw
22:55 (simotsuki) 普通のホーミングなら簡単だよw
22:56 (dry_ice) え?まじですか?
22:56 (simotsuki) うん
22:56 (mapelao) 三角関数の原理知らんとアレだけど。
22:56 (dry_ice) ぜひご教授をお願いします!
22:57 (mapelao) まず、cos(X)**2+sin(X)**2=1
22:58 (mapelao) これは、Xの値に依らず成立します
22:58 (dry_ice) **2ってかける2のことでしたっけ?
22:59 (mapelao) 2乗のことです
22:59 (simotsuki) 私のはちょー簡易的だからまぺらおさんに任せるw
22:59 (mapelao) で、
23:00 (mapelao) sin(X)=Yとおくとき、
23:00 (mapelao) asin(Y)=Xです
23:00 (mapelao) とりあえず、上記のこととして、
23:00 (mapelao) cos(X)**2+sin(X)**2=1の式を変形すると、
23:02 (mapelao) あ、ちょっと待ってw
23:02 (mapelao) まずこっちで使ってるサンプル貼り付けるわ
23:03 (mapelao) [state ]
23:03 (mapelao) type=varset
23:03 (mapelao) fvar(0)=p2dist x
23:03 (mapelao) ignorehitpause=1
23:03 (mapelao) [state ]
23:03 (mapelao) type=varset
23:03 (mapelao) fvar(1)=p2dist y
23:03 (mapelao) ignorehitpause=1
23:03 (mapelao) [state ]
23:03 (mapelao) type=varset
23:03 (mapelao) fvar(2)=asin(fvar(1)/((fvar(0)**2+fvar(1)**2)**0.5))
23:03 (mapelao) ignorehitpause=1
23:03 (mapelao) [state ]
23:03 (mapelao) type=velset
23:03 (mapelao) trigger1=time=0
23:03 (mapelao) x=12*cos(fvar(2))
23:03 (mapelao) y=12*sin(fvar(2))
23:03 (mapelao) ignorehitpause=1
23:04 (mapelao) 3つめのステコンで、time=0ってなってますけど、これ本来ならtrigger1=1で常時実行にするんですが、
23:04 (mapelao) その前にfvarのところでやってることの説明から。
23:04 (dry_ice) ういっす
23:05 (mapelao) まず、三角関数の原理説明するために、
23:05 (mapelao) 一つの三角形を想定してください
23:06 (dry_ice) どんな形でもいいのですか?
23:06 (mapelao) 辺の長さがa、その辺と垂直に接する辺の長さがbの直角三角形です
23:06 (mapelao) ためしに描いてみるといいかもしれません
23:06 (mapelao) もう一つの辺の長さは分かります??
23:07 (dry_ice) c二乗でしたっけ?
23:07 (mapelao) cなんて数字出てきてないです(
23:07 (mapelao) (a**2+b**2)**0.5
23:07 (mapelao) 三平方の定理っすね。
23:08 (dry_ice) あぁ!全然的はずれなことカイてた(
23:08 (mapelao) もういっこの辺の長さは、(a**2+b**2)**0.5です
23:09 (mapelao) ここで、もういっこの辺の長さを、(a**2+b**2)**0.5じゃ長いからcとおくとして、
23:09 (mapelao) 長さaの辺と長さcの辺とでできる角度をXと置いてください
23:09 (mapelao) 作図できれば多分ここまでは理解できてるはずです
23:10 (dry_ice) うん、わかってきたわ てか三平方の定理懐かしい
23:10 (mapelao) ここで、cosX=a/c
23:10 (mapelao) sinX=b/c
23:11 (mapelao) で、c=(a**2+b**2)**0.5だから、
23:11 (mapelao) cosX=a/(a**2+b**2)**0.5
23:11 (mapelao) sinX=b/(a**2+b**2)**0.5
23:12 (mapelao) これが基礎的な原理で、これをmugen上でホーミングとどういう関係にあるかを説明します
23:13 (mapelao) 三角形の、長さaの辺と長さcの辺との接点に棒人間でもなんでもキャラクターをかいてみてください
23:13 (mapelao) そこが、あなたの現在位置です
23:13 (mapelao) で、長さbの辺と長さcの辺との接点に、もう一つ棒人間を書く。
23:13 (mapelao) この棒人間が、相手の現在位置です
23:14 (dry_ice) あぁ、なるほど 大体理解できた気がする
23:14 (mapelao) とすると、自分と相手との距離は、X軸方向にa、Y軸方向にb
23:15 (dry_ice) うん
23:15 (mapelao) で、ここで、a/bとかやっちゃうと、
23:15 (mapelao) b=0になったとき、
23:15 (mapelao) 非常に困る(
23:16 (dry_ice) 結局0だしな
23:16 (mapelao) だから、三角関数を代入するんです
23:16 (mapelao) cは絶対0にならないですからね。
23:16 (dry_ice) ですね
23:17 (mapelao) で、自分と相手とのX軸方向の距離を表すトリガーが、
23:17 (mapelao) P2dist X
23:17 (mapelao) Y軸方向の距離を表すトリガーが、P2dist Y
23:17 (dry_ice) ふむふむ
23:17 (mapelao) 23:03 (mapelao) [state ]
23:17 (mapelao) 23:03 (mapelao) type=varset
23:17 (mapelao) 23:03 (mapelao) fvar(0)=p2dist x
23:17 (mapelao) 23:03 (mapelao) ignorehitpause=1
23:17 (mapelao) 23:03 (mapelao) [state ]
23:17 (mapelao) 23:03 (mapelao) type=varset
23:18 (mapelao) 23:03 (mapelao) fvar(1)=p2dist y
23:18 (mapelao) 23:03 (mapelao) ignorehitpause=1
23:18 (mapelao) さっきのこれは、fvarに相手との距離を代入してたんです
23:18 (dry_ice) ふむふむ
23:18 (mapelao) 無論のこと、fvar使うのは義務じゃないです
23:18 (mapelao) これ狂キャラの記述なので、変数使い放題だったので使ってただけの話(
23:19 (mapelao) で、
23:19 (mapelao) 23:03 (mapelao) [state ]
23:19 (mapelao) 23:03 (mapelao) type=varset
23:19 (mapelao) 23:03 (mapelao) fvar(2)=asin(fvar(1)/((fvar(0)**2+fvar(1)**2)**0.5))
23:19 (mapelao) 23:03 (mapelao) ignorehitpause=1
23:19 (mapelao) asinってのは、sinの逆で、sinの値から角度を返すトリガーです
23:19 (dry_ice) なるほど・・・
23:19 (mapelao) さっきの三角形でいう、角度Xを求めるための式ですね
23:19 (mapelao) で、さらに、
23:20 (mapelao) ;座標設定。
23:20 (mapelao) [state ]
23:20 (mapelao) type=velset
23:20 (mapelao) trigger1=1
23:20 (mapelao) x=12*cos(fvar(2))
23:20 (mapelao) y=12*sin(fvar(2))
23:20 (mapelao) ignorehitpause=1
23:20 (mapelao) その角度方向にむけて、飛ばす式がこれです
23:20 (mapelao) さっきもいったように、cosX=a/c
23:21 (mapelao) X軸方向に飛ばすときには、cosに角度をぶち込む
23:21 (mapelao) でもって、
23:21 (mapelao) sinX=b/c
23:21 (mapelao) Y軸方向に飛ばすときには、sinに角度をぶち込むって感じですね。
23:22 (dry_ice) ふむふむ それぞれの方向に打つってこと・・・かな?
23:22 (mapelao) それぞれの、というか、
23:22 (dry_ice) ん?なんか違う気がしてきた・・・
23:23 (mapelao) fvar(2)に常に相手に対する角度が保存されるので、
23:23 (mapelao) それに向けてvelsetをすれば・・・
23:23 (mapelao) ホーミングの出来上がり
23:23 (mapelao) ま、こだわるなら、veladdとか使わなきゃいけないですけど、その辺は調整しだいです
23:23 (dry_ice) なるほど・・・
23:24 (dry_ice) これってホーミング打つための準備みたいなものですよね?
23:24 (ni-san) すげえ何言ってるんだか全然わかんねえ!(
23:25 (mapelao) ん、いや、相手に向かってとんでゆくヘルパーの軌道の式です
23:25 (mapelao) つまり、
23:25 (mapelao) ヘルパーに以上の記述をぶちこめば、
23:25 (mapelao) 後は本体がヘルパーをぶっぱなすだけで、
23:25 (mapelao) ホーミングが機能します
23:25 (ni-san) なんだprojが誘導できるって話じゃないのか
23:26 (dry_ice) な、なるほど・・・
23:26 (ni-san) ちなみに並界隈だとホーミングを随時じゃなくて適当に一定時間ごととかにしたりするね
23:26 (ni-san) わかりやすいのだとサムスピのバサラの篝火とか
23:26 (ni-san) はぁとの愛玉とか
23:26 (ni-san) 精度が良すぎると並界隈じゃ使えんw
23:27 (mapelao) でしょうなぁw
23:27 (dry_ice) まぁ、今作ってるのは凶悪キャラですから問題ないですね(
23:27 (ni-san) まあもっと簡単に相手のX座標とY座標おっかけるだけでもイイネ
23:28 (mapelao) がっくんがっくんしますそれ(
23:28 (simotsuki) 私はそれ言おうとしてたw
23:28 (ni-san) 穣子ちゃんのホーミングトマトとかそれだからなぁw
23:28 (dry_ice) おっと、ログ保存しとこう
23:28 (DRM) あの、もしかして角度に上限下限を設けるとカーブの緩急を制限出来たりします?
23:29 (ni-san) うn
23:29 (DRM) ブーメラン解決(
23:29 (mapelao) そんな面倒なことしなくても速度制限だけでどうにかなるんじゃないっすかね
23:29 (ni-san) だのう
23:29 (mapelao) 基本速度変更はveladdで行って、
23:29 (mapelao) 速すぎたらvelset使う的な。
23:30 (DRM) Time=0ってなってるのはそのため?
23:30 (mapelao) あ、それ記述ミスです
23:31 (DRM) あ、直ってたか・・・w
23:31 (ni-san) [state 290,0]
23:31 (ni-san) type = veladd
23:31 (ni-san) trigger1=P2Dist X < 0
23:31 (ni-san) trigger1=vel x > -4
23:31 (ni-san) trigger1=time > 20
23:31 (ni-san) x = -0.25
23:31 (ni-san) [state 290,0]
23:31 (ni-san) type = veladd
23:31 (ni-san) trigger1=P2Dist X > 0
23:31 (ni-san) trigger1=vel x < 4
23:31 (ni-san) trigger1=time > 20
23:31 (ni-san) x = 0.25
23:31 (ni-san) [state 290,0]
23:31 (ni-san) type = veladd
23:31 (ni-san) trigger1=P2BodyDist Y < 30
23:31 (ni-san) trigger1=vel y > -4
23:31 (ni-san) trigger1=time > 20
23:31 (ni-san) y = -0.25
23:31 (ni-san) [state 290,0]
23:31 (ni-san) type = veladd
23:31 (ni-san) trigger1=P2BodyDist Y > 30
23:31 (ni-san) trigger1=vel y < 4
23:31 (ni-san) trigger1=time > 20
23:31 (ni-san) y = 0.25
23:31 (ni-san) [State 1201, 1]
23:32 (ni-san) type = turn
23:32 (ni-san) trigger1 = FrontEdgeDist < 5
23:32 (ni-san) trigger2 = Time >= 120
23:32 (DRM) あとから追記する形か。なるほど
23:32 (ni-san) trigger2 = time % 120 = 0
23:32 (ni-san) value = -1
23:32 (ni-san) うん めっちゃ適当だね
23:32 (dry_ice) そういえば霊夢の神霊「夢想封印」もホーミングですかね?(MUGENのです
23:32 (ni-san) うん
23:33 (ni-san) 基本東方勢はホーミング多いね
23:33 (dry_ice) わぁー、めっちゃ身近にいたわ(
23:33 (simotsuki) 東方レベルのなら簡易でいいと思う
23:33 (ni-san) 穣子ちゃんのレベルの適当さでなんとかなるよw
23:33 (dry_ice) なるほど・・・
23:33 (simotsuki) あんま追ってこないしねw
23:34 (ni-san) 精度高すぎるのは自重してるw
23:34 (dry_ice) 確実に当てたいのならマペ氏のが推奨ですか?
23:34 (dry_ice) 確実ってレベルは無理かもしれないけど(失礼
23:35 (simotsuki) の方がいいんじゃないかなぁ。簡易だと相手が真上にきたりワープで前に来たりすると変になるし
23:35 (dry_ice) ふむふむ
23:35 (ni-san) 一番わかりやすいのは同じ技で わたしのとマペ氏の作って
23:35 (ni-san) それで見りゃわかると思う
23:35 (dry_ice) 了解です 一度やろうと思いますが・・・ 眠い(
23:36 (dry_ice) 頭働かないこんな時に作ったら何したか覚えてなさそうなのでまた後日にしようと思います
23:36 (ni-san) まあわたしのは三角関数!?知るかバカ!という脳筋計算w
23:38 (dry_ice) マペ氏 ありがとうございました
23:38 (mapelao) うっす、制作応援しとります
23:39 (dry_ice) 数学の式をMUGENで使うと思わなかったw
23:39 (dry_ice) 習っててよかった(
23:39 (mapelao) いやめっちゃ使いますってww
23:39 (dry_ice) マジすかw
23:39 (mapelao) 使ってる人が少ないだけで、
23:39 (mapelao) 仕えるとクソ便利な式はめっちゃあります

NEW  |  HOME  |  OLD

Comment

コメントの投稿


管理者にだけ表示を許可する

Trackback

http://kyoakumugenirc.blog61.fc2.com/tb.php/2580-c4518856

NEW  |  HOME  |  OLD

 検索フォーム


 全記事表示リンク

 全記事表示(500件ずつ)


 プロフィール

vesper

Author:vesper

IRCチャンネルの
#凶悪MUGEN
#凶悪MUGEN_雑談
のログからMUGENに関するものを編集・公開しています。
修正した方が良い箇所があった場合は知らせてもらえると助かります。
MUGEN界隈からはリンクフリーです。
その他からのリンクはご遠慮ください。
このブログをリンクに追加

IRCへの入り方などは
IRCに関する記事
をご覧ください。

簡易凶悪MUGEN IRC情報
・ホスト名
 [irc.friend-chat.jp]
・ポート番号
 [6664]
・チャンネル名
 [#凶悪MUGEN]
 [#凶悪MUGEN_雑談]
 (以下はお好みで)
 [#凶悪MUGEN_艦これ]
 [#凶悪MUGEN_スマブラ]
 [#凶悪MUGEN_麻雀]
 [#凶悪MUGEN_緋想天]
 [#凶悪MUGEN_アカツキ]
 [#凶悪MUGEN_小説]
 [#凶悪MUGEN_絵チャ]

・推奨IRCクライアント
 LimeChat2


 カテゴリ

記述の子カテゴリは目安程度に考えてください。

 最新コメント


 最新記事


 カウンター

累計の閲覧者数:

現在の閲覧者数:

 RSSリンクの表示


他ブログ更新情報(最新70件)

仕様上、下記のリンク一覧でサイトリンクにあるサイトはこの一覧に出ません。

Twitter


基礎リンク集


リンク

サイトに断り書きがない限りリンクさせてもらっています。
リンクしてほしくない場合はお気軽におっしゃってください。