show TEMP の挙動の相談

sk 2.5.3 です show crit with speed 1 at location at {_loc} 上記構文でエフェクトを表示させると vector 1,1,1 方向にだけ飛ぶエフェクトになってしまいます show 3 crit with speed 1 at location at {_loc} こうすると、3つのcritが {_loc}を中心に 1m範囲内?でランダムな位置に生成されます critを、{_loc}を中央とした花火のように ランダムな方向に広がるように表示できていた記憶があるのですが そのようにすることは可能でしょうか バニラコマンドでいうところの /particle endRod X Y Z 0 0 0 0.1 10 みたいな感じで表示させたいです ※補足 lava popとかblock breakは全方向にランダムに広がってました これは多分パーティクルのデフォルトの動きがこうなのだと思います
7 Replies
月猫ch
月猫chOP11mo ago
show crit with speed 1 at location at {_loc 1,1,1方向にしか飛ばないエフェクト
月猫ch
月猫chOP11mo ago
with offset of 0, 0, 0 を使うことで一応中央から出るようにはなりました が、やたら速度が速くて5~7mくらい最終的に拡散します speedで調節できるのかと思ったのですが 何やら挙動が意味不明です and speed 0➡{_loc}に表示 and speed 0.1➡{_loc}に表示 and speed 1➡動画参照 ざっくりいうと、少数になった途端にspeed 0と同じ挙動をします
月猫ch
月猫chOP11mo ago
月猫ch
月猫chOP11mo ago
このパーティクルの拡散量を調節することは可能でしょうか 通常のクリティカル攻撃くらいのサイズまで下げたいです
月猫ch
月猫chOP11mo ago
___
___11mo ago
function random() :: number:
return (random number between 0 and 1)

on damage:
set {_l} to location of victim
set {_hitbox::width} to hitbox width of victim
set {_hitbox::height} to hitbox length of victim
loop 32 times:
set {_d::x} to random() * 2 - 1
set {_d::y} to random() * 2 - 1
set {_d::z} to random() * 2 - 1
if ({_d::x} ^ 2) + ({_d::y} ^ 2) + ({_d::z} ^ 2) <= 1:
set {_pos::x} to (x pos of {_l}) + {_d::x} * {_hitbox::width} / 4
set {_pos::y} to (y pos of {_l}) + {_hitbox::height} / 2 + {_d::y} * {_hitbox::height} / 4
set {_pos::z} to (z pos of {_l}) + {_d::z} * {_hitbox::width} / 4
set {_center} to location({_pos::x}, {_pos::y}, {_pos::z})
add 0.2 to {_d::y}
set {_motion::x} to {_motion::x} + (random() * 2 - 1) * 0.4000000059604645
set {_motion::y} to {_motion::y} + (random() * 2 - 1) * 0.4000000059604645
set {_motion::z} to {_motion::z} + (random() * 2 - 1) * 0.4000000059604645
set {_f::1} to (random() + random() + 1) * 0.15
set {_f::2} to sqrt(({_motion::x} ^ 2) + ({_motion::y} ^ 2) + ({_motion::z} ^ 2))
set {_motion::x} to {_motion::x} / {_f::2} * {_f::1} * 0.4000000059604645
set {_motion::y} to {_motion::y} / {_f::2} * {_f::1} * 0.4000000059604645 + 0.10000000149011612
set {_motion::z} to {_motion::z} / {_f::2} * {_f::1} * 0.4000000059604645
set {_motion::x} to {_motion::x} * 0.10000000149011612
set {_motion::y} to {_motion::y} * 0.10000000149011612
set {_motion::z} to {_motion::z} * 0.10000000149011612
drawDot count 1, particle "crit", speed 0.4, XYZ {_motion::x}, {_motion::y}, {_motion::z}, center {_center}, visibleRange 32, keepFor a tick
function random() :: number:
return (random number between 0 and 1)

on damage:
set {_l} to location of victim
set {_hitbox::width} to hitbox width of victim
set {_hitbox::height} to hitbox length of victim
loop 32 times:
set {_d::x} to random() * 2 - 1
set {_d::y} to random() * 2 - 1
set {_d::z} to random() * 2 - 1
if ({_d::x} ^ 2) + ({_d::y} ^ 2) + ({_d::z} ^ 2) <= 1:
set {_pos::x} to (x pos of {_l}) + {_d::x} * {_hitbox::width} / 4
set {_pos::y} to (y pos of {_l}) + {_hitbox::height} / 2 + {_d::y} * {_hitbox::height} / 4
set {_pos::z} to (z pos of {_l}) + {_d::z} * {_hitbox::width} / 4
set {_center} to location({_pos::x}, {_pos::y}, {_pos::z})
add 0.2 to {_d::y}
set {_motion::x} to {_motion::x} + (random() * 2 - 1) * 0.4000000059604645
set {_motion::y} to {_motion::y} + (random() * 2 - 1) * 0.4000000059604645
set {_motion::z} to {_motion::z} + (random() * 2 - 1) * 0.4000000059604645
set {_f::1} to (random() + random() + 1) * 0.15
set {_f::2} to sqrt(({_motion::x} ^ 2) + ({_motion::y} ^ 2) + ({_motion::z} ^ 2))
set {_motion::x} to {_motion::x} / {_f::2} * {_f::1} * 0.4000000059604645
set {_motion::y} to {_motion::y} / {_f::2} * {_f::1} * 0.4000000059604645 + 0.10000000149011612
set {_motion::z} to {_motion::z} / {_f::2} * {_f::1} * 0.4000000059604645
set {_motion::x} to {_motion::x} * 0.10000000149011612
set {_motion::y} to {_motion::y} * 0.10000000149011612
set {_motion::z} to {_motion::z} * 0.10000000149011612
drawDot count 1, particle "crit", speed 0.4, XYZ {_motion::x}, {_motion::y}, {_motion::z}, center {_center}, visibleRange 32, keepFor a tick
クリティカルのパーティクルの内部処理をskriptで書きました パケットから読みだすと speed * (offset)XYZ = motion XYZ になるみたいです
月猫ch
月猫chOP11mo ago
つまりoffsetを0ニシタンが良くなかったんですね… 後でちょっと試してみます!! (だから0.1, 0.1, 0,1 にしてる人がいたのか)
Want results from more Discord servers?
Add your server