内科専門医 今日もマイクラ処方中

Minecraftの医学的有効性を検証中

MENU

コマンドブロックを遠隔で操作する:統合版・Java版 (day379)

コマンドブロックを遠隔で操作する方法を3つ紹介する。

1つめのレッドストーンブロックを置く方法は非常に有名。コマンドに慣れていない人向け。

2つめの方法はスコアボードを用いる。慣れると応用が効いて超便利(うぇるべい先生は統合版では基本こちらを利用)。そのままコピペで行けるので難しくない。

3つめの方法はJava版のみ。スコアボードを用いて時間をコマンド開始の合図にする方法。遠隔で打ち込むコマンドが短くて済む、時間差などの設定がしやすいのでJava版では基本こちらを利用

1. レッドストーンブロックを置く(シンプル!統合版・Java版)

1.1. 基本編(1回きりしか遠隔操作できない)

1.1.1.まず起動させたいコマンドをコマンドブロックに打ち込む。

ここではsay helloと入れた。

Command block: Impulse/Unconditional/Needs Redstone

/say hello

 

1.1.2. そのコマンドブロックに隣り合うブロックにレッドストーンブロックを置く。

これはコマンドで遠隔で打ち込めばよい。

/setblock x y z redstone_block

これで遠隔でコマンドブロックを起動させることが可能。ただし1回のみ。

1.2.応用編(何度も繰り返し使用可能)

1.2.1. 後ほど置くレッドストーンブロックをairに入れ替えるコマンドを先に入れる。

モードはRepeatになる。

Command block: Repeat/Unconditional/Needs Redstone

/setblock x y z air

x y zはこのコマンドブロックに隣り合うブロックの座標。

 

1.2.2.次に起動させたいコマンドをコマンドブロックに打ち込む。

ここではsay helloと入れた。モードはChain

Command block: Chain/Conditional/Always active

/say hello

 

1.2.3. 1個目のコマンドブロックに隣り合うブロックにレッドストーンブロックを置く。

これはコマンドで遠隔で打ち込めばよい。

/setblock x y z redstone_block

これで遠隔でコマンドブロックを起動させることが可能。複数回でも可能。

右側のリピートブロックに接するブロックにレッドストーンブロックを置く。



右側のリピートブロックに

注意

1.2.1.と1.2.2.のコマンドを逆にすると、そのコマンドが2回発動されてしまう(2 ticks起動時間があるため)

 

2. スコアボードを用いる(便利!統合版・Java版)

スコアボードを用いてどのコマンドブロックを起動するか数字を割り当てる。

2.1. スコアボードを作成する

/scoreboard objectives add command dummy

/scoreboard players set remote command 0

optional

/scoreboard objectives setdisplay sidebar command

解説

1行目:command というobjectivesを作成。commandは自由に決めて良い。

2行目:commandの中にremoteという変数を作る。remoteは最初0に設定する。

remoteも自由に決めてよい。設定も0である必要はない。

3行目:これは遠隔操作には必須でない。remoteに格納されている数字を確認するためにサイドバーに表示している。

 

2.2. コマンドブロックにスコアボードの数値が一致の条件文を入れる

下記の2つのコマンドブロックを作る。

Command block: Repeat/Unconditional/Always active

/execute if score remote command matches 1 run say hello

Command block: Chain/Conditional/Always active

/scoreboard players set remote command 0

 

この状態で、遠隔で下記のコマンドを入れることで遠隔操作可能となる。

/scoreboard players set remote command 1

解説

1つめのコマンドブロック:remoteが1だった場合のみ、run以降のコマンドが起動する。この1は任意の数字で、起動したいコマンドブロック毎に設定する。

2つめのコマンドブロック:remoteを1から別の数値に変える。ここでは0をリセットの数値にしている。この数値を別の数値にしていくことで離れたコマンドブロックに指示をつなげることも可能。

 

最後のコマンドで遠隔起動する。1という数値は各コマンドブロックに割り当てた数値を入れる。

 

3. スコアボードを用いる+時間をコマンド開始の合図にする(超便利!応用編:Java版のみ)

スコアボードを用いてどのコマンドブロックを起動するか数値を割り当てる。その数値は同時にマインクラフトの時間でもある仕組みにする。

3.1. スコアボードを作成する

/scoreboard objectives add command dummy

optional

/scoreboard objectives setdisplay sidebar command

解説

1行目:command というobjectivesを作成。commandは自由に決めて良い。

2行目:これは遠隔操作には必須でない。command(の3.2.で設定するremote)に格納されている数字を確認するためにサイドバーに表示している。

 

3.2. コマンド起動用のスコアボードに時間をリアルタイムに格納する

Command block:Repeat/Unconditional/Always Active

/execute store result score remote command run time query daytime

解説

これでremoteにそのマイクラの世界の時間(daytime)が格納される。executeの後storeが統合版では使用できないためJava版のみで利用可能な方法となる。このコマンドブロックは1個のみどこかに置いておけばよい。

 

3.3. 時間毎に起動するコマンドブロックを設定する。

まず、時間を止める。

/gamerule doDaylightCycle false

次に、操作したいコマンドブロックを作っていく。

Command block: Repeat/Unconditional/Always Active

/execute if score remote command matches 7000 run say hello

Command block: Chain/Conditional/Always Active

/time set 1000

 

解説

まず時間を止めないと勝手にコマンドが発動されたりするので止める。

コマンドブロック1つめ:時間が1001になったらrun以降のコマンドが発動する。1001は何でもよく、起動したいコマンドブロック毎に割り当てる。

コマンドブロック2つめ:コマンドが発動したら時間を変更する。ここでは1000にした(time set dayで時間は1000になる)

 

3.4. 起動したいコマンドブロックを遠隔操作する

割り当てた時間に設定すればコマンドブロックが起動する。

例えば

/time set 1001

で3.3.のコマンドが遠隔で操作できる。

 

この方法の利点は

・遠隔操作時に打つコマンドが短くて済む

・時間を止めたり流したりすることで、複数のコマンドブロックをある一定時間空けて起動させたりが可能(例えばAというコマンドブロックの5分後にBというコマンドブロックを起動とか)

作ったModをExportする(使用できる状態にする): Mcreator(day378)

作ったModをExportする(使用できる状態にする)

作り方は下記。

drflourishing.hatenablog.com

1. versionを選ぶ

Workspace-Worsspace settings

Minecraft version (generation)を編集する。

 

versionを選ぶ。ここでは1.19.2を選択

 

versionを変えるとworkspaceを作り直すことになるのでしばらく待つ。

1.19.2になったことを確認。

2. Exportする。

一番右端のアイコン:

Donate(寄付)するか選ぶ(お任せします)

 

カウントダウンタイマーを作る:マインクラフト統合版 (day375)

統合版でカウントダウンタイマーを作るコマンド

1. チャットボックスに直接入れる。

/scoreboard objectives add time dummy

/scoreboard players set tick_20 time 20

/scoreboard objectives add countdown_timer dummy

/scoreboard objectives setdisplay sidebar countdown_timer

解説

まずtimeというobjectを作る。

マインクラフトでは20 ticks=1 secondなので20で割るための準備をする。

表示用のobjectであるcountdown_timer を作る。

countdown_timer をサイドバーに表示する。

 

2. コマンドブロックに入れる

Command block:Repeat, Unconditional, Needs redstone

/execute run scoreboard players add tick time 1

以下全て:Command block:Chain, Conditional, Always Active

/scoreboard players operation seconds time = tick time

/scoreboard players operation seconds time /= tick_20 time

/scoreboard players set seconds_left countdown_timer 100

/scoreboard players operation seconds_left countdown_timer -= seconds time

 

*seconds_left, countdown_timer, 100は適宜変更して下さい。

 

最初のRepeatブロックにレバーをつけてonにすれば右側に100秒からカウントダウンされるタイマーが表示される。

 

 

タイマーを作る:マインクラフト統合版 (day374)

統合版でタイマーを作るコマンド

1. チャットボックスに直接入れる。

/scoreboard objectives add time dummy

/scoreboard players set tick_20 time 20

/scoreboard objectives add timer dummy

/scoreboard objectives setdisplay sidebar timer

解説

まずtimeというobjectを作る。

マインクラフトでは20 ticks=1 secondなので20で割るための準備をする。

表示用のobjectであるtimerを作る。

timerをサイドバーに表示する。

 

2. コマンドブロックに入れる

Command block:Repeat, Unconditional, Needs redstone

/execute run scoreboard players add tick time 1

Command block:Chain, Conditional, Always Active

/scoreboard players operation seconds timer = tick time

/scoreboard players operation seconds timer /= tick_20 time

 

最初のRepeatブロックにレバーをつけてonにすれば右側にタイマーが表示される。

 

 

倒したモブの数をカウントする・サイドバーに表示する (day373)

倒したモブの数をカウントし、サイドバーに表示する方法

Scoreboard – Minecraft Wiki

1. Java

/scoreboard objectives add Count totalKillcount

/scoreboard objectives setdisplay sidebar Count

Countは任意の名前

特定のモブを倒したときにカウントしたければ

/scoreboard objectives add Count minecraft.killed:minecraft.zombie

とする。

このtotalKillcountやminecraft.killed:minecraft.zombieをcriteriaと呼ぶ。

 

2. 統合版

統合版にはcriteriaがdummyしか用意されていないため、現状では複雑な回路を組まないと難しい。

下記の方法以外で思いつくものは無かった。(スケルトンの魔法工房さん)

youtu.be

ページ内リンクの作り方HTML編 (day372)

長いページだと、目次などに戻るページ内リンクがあるとページが見やすくなる。

目次

 

1. リンク先に<a id="id名"></a>を付ける

2. リンク元に<a href="#id名"> リンク元の言葉</a>を付ける

#を付けるのを忘れない。

 

id名を目次とし、このページにページ内リンクを貼ってみた。

目次へ