50 Replies
矢のvectorとって長さ1とか0.5にして
locationに加算しながらエフェクト表示すればいけるで
Unknown UserOP•17mo ago
Message Not Public
Sign In & Join Server To View
要素別に教えてクレメンス
・射出した矢のvectorのとりかた
・そのvectorの長さを1(0.5?)にする方法
・そのvectorをつかってパーティクルを表示する場所を決める方法
この3つわかる?
Minehut Forums
Skript Vector Tutorial
Hopefully this will be a complete tutorial in vectors within vanilla Skript (might add onto this with Biosphere stuff) Terms you will learn (definitions of each one will be in the tutorial) : Pitch and yaw Vector Magnitude Normalization Location Velocity Basic arithmetic Dot product Cross product...
一応vectorを使わなくても、locationを取り続ければできます
1tick毎に?
それすると早い矢とか間あかね?
矢を使わずに銃を作りたいってことなら、
vectorを頭の向きで取って「頭の位置のlocに足していって、そのlocの周囲rメートル以内のプレイヤーにダメージを与える+locにエフェクト」×n回
が大まかな流れ
そのほうほう
太いレーザーしか作り方分からなくてつらい
playerの当たり判定に近づける方法…
正直ちょっとめんどくさくはある
ってか俺にはできない
projectileの位置にパーティクル表示だとどうしても間空きそう
レーザー自作のほうがいいのかな?
Unknown UserOP•17mo ago
Message Not Public
Sign In & Join Server To View
set {_pewpew} to {_l} ~ {_v}
↓
set {_pewpew} to {_pewpew} ~ {_v}
にしないと{_pewpew}の中身がずっと{_l} ~ {_v}のままだよ
skript hubでeffectで検索
Unknown UserOP•17mo ago
Message Not Public
Sign In & Join Server To View
Unknown UserOP•17mo ago
Message Not Public
Sign In & Join Server To View
あ、ごめん、てっきり構文自体まだ入れてないのかと
こりゃ失敬
Unknown UserOP•17mo ago
Message Not Public
Sign In & Join Server To View
ちな之は結局
矢とか使わずに作る方針なの?
これ、{_pewpew}に随時vector加算してるんじゃなくて
loop回数に応じて『加算するvectorの長さ』を伸ばしてる
から一応正しいっちゃ正しい…?
ごめん話戻るね
俺的には↑のコードでもうパーティクル表示されそうなもんだけど
されないの?
Unknown UserOP•17mo ago
Message Not Public
Sign In & Join Server To View
個人的には矢のほうが当たり判定も厳密なので
そっちを勧めたいです
okです
Unknown UserOP•17mo ago
Message Not Public
Sign In & Join Server To View
何より制御しやすいので
『矢』という実態がある分
Unknown UserOP•17mo ago
Message Not Public
Sign In & Join Server To View
開きます
でもそれを補う方法はちゃんとあります
vectorの概念はもう(学校その他で)習いました?
Unknown UserOP•17mo ago
Message Not Public
Sign In & Join Server To View
例えば物を動かすときに
動かす力には
・力の量(または速度)
・動かす向き
の要素があるのはわかります?
vectorはそれらの情報がまとめて入ってるオブジェクトです
実際に動かす力のある矢印のようなものですね
矢印の長さ = 力の強さ(または動く速さ)
矢印の向き = 動く向き
です
これが矢にも存在します
ざっくり書くとこんな感じです
発射された矢から取ったvector(画像では青矢印)には
矢の速度と 矢の向きが入ってます
ではこのvectorを使ってどうパーティクルを表示するのか
矢のvectorの長さから取得できる『矢の速度』は
『矢が1tickで進む距離』と同じです
つまり、vectorの長さは
今の矢と 1tick後の間の距離と一致します
Unknown UserOP•17mo ago
Message Not Public
Sign In & Join Server To View
↑のコードで、とりあえず矢の速度がとれます
これを使ってパーティクル書きます
1tick後の矢の位置と 今の矢の位置が取得できれば簡単です
仮に1tick後に40m先にあるとして
今のlocationから1tick後の位置に向かって,1mずつ、合計40m(40回)場所を取得して
そこにパーティクルを表示させれば
1m感覚にエフェクトが表示されます
Unknown UserOP•17mo ago
Message Not Public
Sign In & Join Server To View
◄◄ ~40m~◄◄
これを
◄◄~1m~~1m~~1m~~1m~(割愛)~1m~~1m~◄◄
こうする
もっというと
1tick後 今の矢
◄ ◄ ~1m~◄ ◄
◄ ◄ ~1m~~1m~◄ ◄
◄ ◄ ~1m~~1m~~1m~◄ ◄
こうやって、1mずつ伸ばして、40mまでパーティクルを表示する
Unknown UserOP•17mo ago
Message Not Public
Sign In & Join Server To View
sousou
vectorには長さと向きが含まれてるから
こんな感じ?(未テスト)
Unknown UserOP•17mo ago
Message Not Public
Sign In & Join Server To View
こっちでも試してみるわ
ちな之応用すれば
HSとか作れるよ
ほんとだ
逆に新しいだろこの方法
これに関しては矢を使うと斜め45度のときに真正面からと比べて1.4倍当たりやすくなるから個人的には微妙
雪玉普段使いしてるから失念してた
でも1.5mの範囲攻撃よりはまし(
範囲攻撃になるかならないかはコード次第だと思う
そのあたりはライントレースの鬼のじごくさんがなんとかしてくれる
実際↑の方法で
雪玉や矢並みに厳密な当たり判定って可能なの?
プレイヤーが近くにいるときにより細かい間隔でチェックするようにするとか、当たり判定に弾道の直線が交差するか調べるとかすればそこそこ厳密に行けると思う
やっぱ判定の細分化しかないかぁ
直線なら楽だけど重力実装したくなるだろうから計算だと厳しいよね
そこよな
重力計算メッチャだるそう
初心者には少し難しいかもしれないから最初は矢でokだと思う
同意