本記事はこれからデータパックを始める方~初心者向けの記事になります
この記事はMinecraft Command Advent Calendar 2025 21日目の記事です
はじめに
初めてマイクラに関する記事を書くノンタンです!
自分はデータパックを作り始めてかれこれ2年ほどで、企画制作や気分が乗れば配布マップを作ってきたのですが、その過程で「この処理ってどうやって実装しよう・・・?」ということが多々ありました
そういう開発過程で詰まった場合にどうやって調べるのかというところを自分なりにまとめてみたので、これからデータパックを作ろうと思っている方、データパックを既に作っているけど調べ方が分からない時がある方の助けになればいいなと思っています
データパック作成の動画を見て作り方を学ぶ/触ってみる
データパックを作っていく上で初歩的な問題というのは多々あると思います
例えばデータパックの構造が分からないとかデータパックで何ができるのか等々の障壁が最初に立ちはだかってくるんじゃないかと思っています(ちなみに自分もそうでした)
そんな時に助けになったのはデータパックのつくり方を解説している記事や、特に動画はとても分かりやすく、さらにはサンプルを配布しているものもあります
一例として以下のようなものがあります
両動画とも現在の最新バージョンである1.21.11と比べると古いものにはなっていますが、構造を理解するという点においてはとても優秀でわかりやすい動画になっています
1.20.5のアプデによるフォルダ名変更やコンポーネント化のせいでサンプルは最新で動かないけど・・・
また、データパック作成以外にもコマンド解説を行っている動画も多数あるため、そういうものを漁ってみるのも非常に勉強になるのでかなりおすすめです
開発環境を整えてみる
データパックを少し見てみると分かるのですが、たくさんのフォルダとファイルで構成されています
これらをメモ帳などで開発はできなくはないのですが非常に作りにくいと思います
世の中のデータパック制作者のほとんどはVisualStudioCode(以下VSCode)というツールを使って開発をやりやすく、簡単にしているのでツールの紹介とおすすめのプラグインを紹介していきます
ちなみにVSCodeはマイクラというよりもシステム開発により広く使用されており、その導入方法の紹介は多数されているためこの記事では省略します
VSCodeのダウンロードについて
ダウンロードバージョンによってインストーラの表示が違うかもしれませんが基本的に「次へ」で先に進めていって大丈夫です
データパック開発を助けてくれるプラグイン
VSCodeへのプラグインの導入方法についてはこちらを参照してください
多分この記事の中でこの部分が一番大事なんじゃないかと思っています
個人的なおすすめのプラグインです
-
Japanese Language Pack for Visual Studio Code
名前の通り日本語化をを行ってくれるプラグインです -
Datapack Helper Plus by Spyglass
データパックに必須といっても過言ではないプラグインです
コマンドの候補を出してくれたり、エラーとなる箇所を強調表示してくれたりとかなり便利なツールです -
Datapack Icons
フォルダなどの見た目をマイクラのアイコンにしてくれるので見た目が良くなります -
GitHub Copilot Chat
CopilotというAIをVSCodeで使うことができるようになります
コマンドの質問をすればある程度の解答を得ることができるとの、制限はありますがコマンドを修正してくれる機能もあるので開発が楽になります
Datapack essentialsというプラグインのパックをインストールすればDatapack Helper Plus by SpyglassやDatapack Iconsをまとめてダウンロードできます
一般配布されているデータパックの中身を覗いてみる
サンプルをダウンロードしてから作ってみるというやり方に近いのですが、サンプルではなくしっかりと動くデータパックを配布している方も中にはいらっしゃいます
かくいう自分もデータパックを少しだけ配布していたりしますので、今回はそちらを参考に見ていきます
内容はシンプルに制限時間を表示するためのデータパックになっているのですが、gamesettting.mcfunctionを見てみると以下のようになっています
(結構前に作ったものなので多少コマンドが見づらいのはご容赦ください・・・)
##このfunctionは/reloadを入力時に実行される
#コマンド実行時などのテキストを非表示にする
gamerule sendCommandFeedback false
#スコアボードを初期化
scoreboard objectives remove timer
scoreboard objectives remove setting
#スコアボード作成
scoreboard objectives add timer dummy
scoreboard objectives add setting dummy
##スコアボードの変数設定と初期値設定
#タイマー用初期値設定
scoreboard players set datetime timer 0
scoreboard players set #min timer 60
scoreboard players set #sec timer 10
scoreboard players set #tick timer 20
scoreboard players set #minute timer 0
scoreboard players set #second1 timer 0
scoreboard players set #second2 timer 0
scoreboard players set #timerT timer 0
scoreboard players set #timerT2 timer 0
#タイマー稼働用フラグ設定
scoreboard players set flg timer 0
#タイマー表示モード
#0:ボスバー表示(初期値) 1:アクションバー表示
scoreboard players set view setting 0
#カウントダウン表示モード
#0:表示(初期値) 1:非表示
scoreboard players set count setting 0
#ボスバー設定
bossbar remove chillstar:timer
bossbar add chillstar:timer ""
#時間表示初期値(60分)
scoreboard players set #count timer 3600
#タイマー表示時間設定
title @a times 10 30 10
#タイマー設定用の本を付与
give @p written_book[written_book_content={author:"ちるスタ ノンタン",title:"タイマー設定",pages:['[{"text": "各種設定","bold": true,"underlined": true},{"text": "\\n\\n\\n"},{"text": "・設定確認","bold": false,"underlined": true,"clickEvent": {"action": "run_command","value": "/function timer:settting/view"}},{"text": "\\n"},{"text": "現在の設定を確認することができます","color": "black","bold": false,"underlined": false},{"text": "\\n\\n\\n"},{"text": "・時間設定","bold": false,"underlined": true,"clickEvent": {"action": "run_command","value": "/function timer:settting/timerset"}},{"text": "\\n"},{"text": "時間の変更方法の説明用","color": "black","bold": false,"underlined": false}]','[{"text": "ボスバー設定","bold": true,"underlined": true},{"text": "\\n\\n"},{"text": "・ON","bold": false,"underlined": false,"color":"red","clickEvent": {"action": "run_command","value": "/function timer:settting/bossbar/on"}},{"text": "\\n\\n"},{"text": "・OFF","bold": false,"underlined": false,"color":"blue","clickEvent": {"action": "run_command","value": "/function timer:settting/bossbar/off"}},{"text": "\\n\\n\\n"},{"text": "カウント設定","bold": true,"underlined": true,"color": "black"},{"text": "\\n\\n"},{"text": "・ON","bold": false,"underlined": false,"color":"red","clickEvent": {"action": "run_command","value": "/function timer:settting/count/on"}},{"text": "\\n\\n"},{"text": "・OFF","bold": false,"underlined": false,"color":"blue","clickEvent": {"action": "run_command","value": "/function timer:settting/count/off"}}]','[{"text": "\\n\\n\\n\\n"},{"text": "・ゲームスタート","bold": true,"underlined": false,"color": "dark_purple","clickEvent": {"action": "run_command","value": "/function timer:gamestart"}},{"text": "\\n\\n\\n"},{"text": "・リセット","bold": true,"underlined": false,"color": "black","clickEvent": {"action": "run_command","value": "/function timer:timer/reset"}}]','[{"text": "注意事項","bold": true,"underlined": true},{"text": "\\n\\n"},{"text": "タイマーをリセットするときは本に記載されている「","bold": false,"underlined": false},{"text": "リセット","bold": true,"underlined": false},{"text":"」を押してください","bold": false,"underlined": false},{"text": "\\n\\n"},{"text": "もしタイマー実行中に","bold": false,"underlined": false},{"text": "\\n"},{"text": "/reloadを実行してしまった際は数秒置いてもう一度","bold": false,"underlined": false},{"text": "\\n"},{"text": "/reloadしてください","bold": false,"underlined": false}]']}]
頭に#がついているものはコメントで、データパック内で処理されることのないものです
ここで行っているのはscoreboardコマンド等の初期化処理なのですが、各scoreboardがどういう処理に使われているのかや何の目的で設定されているのかということをコメントで表記しています
このように、配布されている物の中にはコメントを残してソースを見やすくしているものも多数あり、作り方もより効率的に処理を組んでいるものもあるので他の方が作ったものを覗いてみるのもいい勉強になります
wikiを見たり便利なサイトを利用する
動画に比べると少しわかりづらいかもしれないですが、コマンドに関する様々なサイトも存在しています
特にmisodo氏の作成しているgeneratorツールは非常に便利で、jsonファイルで実装しなければいけないようなものを簡単に作成することができるさいともあるのでそういった便利なサイトを紹介していきます
-
minecraft wiki
コマンドだけでなくマイクラに関する様々な情報を乗せているサイト
特に最新バージョンがリリースされた際などに変更点をまとめてくれていたりもします -
Data Pack Generators
上記でも少し触れているjson関連(advencementやpredicate等)やリソースパック等が簡単に作れるサイト
データパックを作成していくうえで一生付き合うことになるサイトです -
MINECRAFT ARMOR STAND
アーマースタンド関連の設定ができるサイト
設定した項目を元にコマンドも生成してくれます -
MinecraftGemerGeeks
giveコマンドやsummonコマンドなどnbt要素を多数含むようなコマンドの生成を楽にしてくれるサイト
コマンドに詳しい人に聞く
システム開発を行う方なら聞いたことがあると思います
10分悩んで分からないことは他人に聞け
悩む時間を減らすことが出来れば他のコマンドの勉強が出来たり、新しいデータパックを作ることが出来たりとメリットが大きいと思うのでうまく時間を使っていきたいですね
そんな時にdiscordにはそのようなマイクラのコマンドに関することが質問できるサーバがありますので入ってみて質問をどんどんしてみるといいかもしれません
ガイドラインをよく読み、ルールを守って質問などを行ってください
最後に
これまで自分がコマンドの勉強するときに参考にしたものをまとめてみました
これからデータパックを始める方や初心者の方の少しでも助けになっていれば幸いです
自分もまだまだ勉強中の身なので、いろんな方と切磋琢磨していけたらと思っています!
また、自分の紹介した方法以外にもおすすめの勉強方法、動画、サイト等の情報がありましたらコメントで残していただけると個人的にも助かります!
それでは、またどこかで