更新日:
1. しゃがんだ時間を数えるスコアを作る
/scoreboard objectives add sneak minecraft.custom:minecraft.sneak_time
sneak_time は、しゃがんでいる間1ティック(0.05秒)ごとに1ずつ増えるスコアです。最初に1回だけ実行します。スコアの作り方の基本は ミニゲーム用のスコアボード例 にまとめています。
2. しゃがむと高くジャンプできる
# 反復・常時実行
execute as @a[scores={sneak=1..}] run effect give @s minecraft:jump_boost 1 4 true
# チェーン・常時実行
scoreboard players reset @a[scores={sneak=1..}] sneak
しゃがんでいる間、跳躍力上昇Vが1秒ずつ付きます。しゃがんだあとすぐにジャンプすると、ふつうより高く跳べます。2行目でスコアを0に戻すので、しゃがむのをやめると1秒で効果が切れます。
3. アイテムを持ってしゃがむと発動する
execute as @a[scores={sneak=1..}] if items entity @s weapon.mainhand minecraft:feather at @s run particle minecraft:cloud ~ ~ ~ 0.3 0.1 0.3 0 3
羽根を持ってしゃがんでいる間だけ、足元に雲のパーティクルが出ます。if items は1.20.5以降の書き方です。持っているアイテムで効果を変える方法は アイテムを持つと効果が出るコマンド も参考にしてください。
4. しゃがんだ時間を使う
execute as @a[scores={sneak=60..}] run tp @s 0 100 0
scoreboard players reset @a[scores={sneak=60..}] sneak
しゃがんだ時間の合計が60ティック(3秒)になった人を、決まった場所へテレポートします。2のようにすぐリセットせず、スコアがたまるのを待つ使い方です。しゃがむのをやめてもスコアは減らないので、とぎれとぎれにしゃがんでも合計されます。足元のブロックの条件を足すと、しゃがむと下の階へ移動する エレベーター も作れます。
5. 統合版の場合
統合版のスコアボードには、しゃがんだ時間を数える種類がありません。この記事のコマンドはJava版で使います。
うまくいかないときの確認ポイント
- 何も起きない:1のスコアを作ったか、名前(sneak)がそろっているか確認します。
- 効果が切れない:リセットのチェーンコマンドが動いているか確認します。
- しゃがむ前から発動する:前に遊んだときのスコアが残っています。
/scoreboard players reset @a sneakで全員のスコアを消します。
よくある質問
しゃがむのをやめた瞬間を調べられますか?
このスコアだけでは難しいです。しゃがんでいる間に付けたタグを、スコアが増えなくなったら外す、といった少し複雑なしくみが必要です。
右クリック検出とどちらが便利ですか?
右クリックはアイテムを持たせる必要がありますが、しゃがむ動きは何も持たなくても使えます。誤って発動しにくいのは右クリックの方です。
統合版でもできますか?
統合版のスコアボードにはしゃがんだ時間の項目がないので、この方法は使えません。