titleコマンドとは?
マインクラフトには、titleコマンド呼ばれるコマンドが存在します。その名の通り、画面上にタイトル・サブタイトル(字幕)を表示することができ、非常に重宝します。
画像のうち、上に存在するのがタイトルで、下に存在するのが字幕です。このように画面上にメッセージを表示することで、配布ワールドや独自の世界観を構築する際に大活躍します。
構文
まず、コマンドの基本的な構文は以下の通りです:
- title (ターゲット) (タイトルの種類) (文字)
従って、具体的にタイトルを表示するには、以下のようなコマンドを実行すればよいです。
- title @s title こんにちは
これをコマンドブロックなどを介して実行すると、画面上に大きく「こんにちは」と表示されることが確認できるでしょう。また、タイトルの種類としては、以下のようなものがあります。
種類 | 意味 |
title | タイトルを表示。一番よく使う。 |
subtitle | 字幕を表示。 |
actionbar | アクションバーに小さく字幕を表示。 |
times | 字幕の表示時間・フェードイン・フェードアウトの時間を設定。 |
title・subtitle・actionbarの使い方は大きくは変わりませんが、一番使い方が特殊なのがtimesでしょう。これを用いることで、表示時間・フェードイン・フェードアウトの時間を細かく設定することができます。構文は以下の通りです:
- title @s times (フェードイン時間) (表示時間) (フェードアウト時間)
これらの単位はティックです(1ティック=1/20秒)。即ち、フェードイン・フェードアウトの時間を3秒、表示時間を5秒にそれぞれ設定したい場合は、それぞれに20を掛けて、
- title @s times 60 100 60
というコマンドを実行すればOKです。
応用
さて、以上の事情から、表示時間やタイトル、字幕をそれぞれ設定しようと思ったら、3つのコマンドを分けて実行しなければなりません。これでは些か面倒です。
しかし、scripteventコマンド(自分でカスタムコマンドを作成できるコマンド)を使ってこれらを一括で設定・表示するコマンドを作成すればこの問題は解決します。以下は、そのスクリプトの例です:
- server.system.afterEvents.scriptEventReceive.subscribe(ev => {
- if(ev.id == "lq:title"){
- let args = ev.message.split(" ");
- if(ev.sourceType == "Entity"){
- ev.sourceEntity.runCommand(`title ${args[0]} subtitle ${String(args[2])}`);
- ev.sourceEntity.runCommand(`title ${args[0]} times ${Number(args[3])*20} ${Number(args[4])*20} ${Number(args[5])*20}`);
- ev.sourceEntity.runCommand(`title ${args[0]} title ${String(args[1])}`);
- }else if(ev.sourceType == "Block"){
- ev.sourceBlock.dimension.runCommand(`title ${args[0]} subtitle ${String(args[2])}`);
- ev.sourceBlock.dimension.runCommand(`title ${args[0]} times ${Number(args[3])*20} ${Number(args[4])*20} ${Number(args[5])*20}`);
- ev.sourceBlock.dimension.runCommand(`title ${args[0]} title ${String(args[1])}`);
- }
- }
- })
なお、scripteventコマンドの詳細についてはこちらの記事が詳しいです:
さて、このスクリプトを保存すると、以下のようなコマンドで表示時間やタイトル、字幕の全てを一括で設定し、表示することができます。
実際にこれを実行すると、このような字幕が表示されます。
あえてこのカスタムコマンドの構文を明示するなら、以下のようになるでしょうか:
- scriptevent lq:title (ターゲット) (タイトル) (字幕) (フェードイン時間) (表示時間) (フェードアウト時間)
あるいは、functionを用いてこれらの処理を自動化するといったことも考えられますね。
おしまい
本記事では、このように字幕表示に便利なtitleコマンドについて紹介しました。是非、配布マップなどにお使いください。