Minecraft統合版でコマンドやfunctionを使い、様々なシステムを制作されている皆様、こんにちは。
コマンドでの制作中、「プレイヤーが特定のブロックを置いた時」や「ジャンプした瞬間」など、何らかの行動をきっかけにしてコマンドを実行したい、と考える場面は少なくないかと思います。
今回は、そうした「プレイヤーのアクション」をより簡単にコマンドのトリガーとして利用できるよう、特定の行動を検知して1ティック(0.05秒)の間だけプレイヤーにタグを付与する、というシンプルな機能を持つアドオンを制作しましたので、ご紹介させていただきます。
アドオンの主な機能
このアドオンを導入すると、プレイヤーが以下のような行動をとった際に、対応するタグが自動で付与され、そして1ティック後に自動で削除されます。
ブロック設置: PlaceBlock, PlaceBlock_minecraft:stone
ブロック破壊: BreakBlock, BreakBlock_minecraft:dirt
ブロック右クリック: InteractWithBlock, HitBlock_minecraft:chest
ブロック攻撃: HitBlock, HitBlock_minecraft:stone
エンティティ右クリック: InteractWithEntity, InteractWithEntity_minecraft:villager
アイテム使用: itemUse, itemUse_minecraft:bow
エンティティを倒した/倒された時: entityDieA (攻撃側), entityDieB (倒された側)
エンティティへのダメージ: entityHurt
エンティティへの攻撃ヒット: entityHitEntity
左クリック(腕を振る): playerSwingStart, playerSwingStart_minecraft:diamond_sword
ジャンプ: playerJump
スニーク開始: playerSneak
タグは一瞬で消えるため、常時実行するコマンドブロックで execute as @a[tag=…] のようにセレクターで指定することで、その行動が実行されたまさにその瞬間だけ、コマンドを動作させることが可能です。
例えば、以下のような使い方が考えられます。
コマンドでの活用例
例えば、ダイヤモンドブロックを置いたプレイヤーに再生能力を付与する場合は、反復・常時実行のコマンドブロックにこのように記述します。
/execute as @a[tag=”PlaceBlock_minecraft:diamond_block”] run effect @s regeneration 5 1
プレイヤーの動きを少しリッチに見せたい時に。ジャンプしたプレイヤーの足元にハートのパーティクルを表示させます。
/execute as @a[tag=”playerJump”] at @s run particle minecraft:heart_particle ~ ~ ~
例えば、棒(stick)を使った時に、魔法の杖のような音を出したい場合です。
/execute as @a[tag=”itemUse_minecraft:stick”] at @s run playsound random.orb @s ~ ~ ~
アドオン配布先

おわりに
このアドオンは、コマンドで何かを作る際の「きっかけ」を増やすための一つのツールとして制作しました。プレイヤーの行動に直接反応するインタラクティブな仕掛けや、特定の操作を検知するシステムなど、皆様の制作活動において、何かしらのヒントや手助けとなれば幸いです。
もしよろしければ、皆さんのワールド制作に役立ててみてください。



コメント