マイクラの配布サイト › フォーラム › 技術相談(JAVA版) › データパック質問所
- 投稿者投稿
クロスプ
参加者データパックに関連するもの適当に質問していい場所です。気まぐれで返信します。データパックを1から創る場合最新版のほうが出来ることが多いので最新版で創ることをお勧めします。
バージョンとバニラかMod/Pluginサーバーはちゃんと書いてね。クロスプ
参加者コマンドやjsonファイル等に””がある場合、こちらのサイトは変換されてしまいます。
なので、””を使っている際は出来るだけCODE機能を使ってコードの初めと終わりにCODEボタン(`)で入力して頂くとコピペが楽になります。
(よくわからない人はそのまま入力して頂いても構いません)例1
/title @s title ["", {"text": "GAME START", "color": "yellow"}]
例2give @p carrot_on_a_stick[minecraft:item_name='["", {"text": "すごい"},{"fallback":"CarrotOnAStick","translate":"item.minecraft.carrot_on_a_stick"}]',minecraft:unbreakable={show_in_tooltip:false},minecraft:fire_resistant={},minecraft:rarity="uncommon",minecraft:custom_model_data=99] 1 function test:modify {path: "locker", storage: "test:system"}
例3
{ "pools": [ { "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:stone" } ] } ] }
匿名
ゲスト初めまして、データパックの入れ方に苦戦していて教えて頂きたいのですが
当方MacBookでマイクラをしていてデータパックの入れ方がわからなくなりました。
ご回答いただけると幸いです。匿名
ゲストすみません!!!!
なんとかデータパック入れられ動作の確認も取れました
お騒がせしました!!!!!
クロスプ
参加者色々なパターンがありますので、いくつか確認お願いします。
1. pack.mcmetaの位置間違い
> datapacks/<データパック名>/pack.mcmetaがあるか確認する。2. 「function」が「functions」になっていたり、「tags」が「tag」になっていたりする。
> 1.21以降データパックは「tags」を除く場所(tags/function等も含む)に「s」をつけない。3. コマンド構文エラー/ファイル構文エラー
> logファイルで確認できます。ランチャーの「起動時に出力ログを表示」をオンにすると、データパックリロード時にエラーを出してくれます。4. ゲームルールやtick freezeを使ってtickが反応しない。
> /gamerule maxCommandChainLengthを大きくしたり、/tick unfreezeを実行したりする。5. dataがassetsになってる。
> 自分がよく間違えるだけ。これはよくあるやつなので、もっと沢山のパターンがあります。
匿名
ゲスト初めまして。
ご質問させてください。
Java版 / 1.21.4
今回初めてデータパックというものに触って苦戦しているのでご質問させてください。現在、カテゴリ別実績のコンプリートという実績を自作しようと奔走しております。
新規でタブを作成すること、実績のアイコンを表示させること自体はできているのですが、
既存(バニラ)の複数の実績達成をトリガーとしてオリジナルの実績を達成とするようにしたいのですが実績達成をトリガーとする書き方がわからず困っております。実績の達成をトリガーとすることがそもそも可能なのか、不可能な場合上記のような条件を満たすためにはどのように実装ができるかご教授いただけますと大変うれしいです。
内容わかりにくく大変申し訳ございませんが何卒宜しくお願いいたします。
クロスプ
参加者進捗のトリガーに実績の達成がなかったと思いますので、1番簡単なtickとpredicateで検知する方法が最適だと思います。
こちらは1tick遅れて進捗達成してしまいますが、バニラの進捗が達成したかどうかを直接検知できるのでとても使いやすいと思います。
例えば下記のような形式で記入すると、「モンスターハンター」と「狙いを定めて」をpredicateで検知するという形になります。{ "criteria": { "test": { "trigger": "minecraft:tick", "conditions": { "player": { "type_specific": { "type": "minecraft:player", "advancements": { "minecraft:adventure/kill_a_mob": true } } } } }, "test2": { "trigger": "minecraft:tick", "conditions": { "player": { "type_specific": { "type": "minecraft:player", "advancements": { "minecraft:adventure/shoot_arrow": true } } } } } }, "requirements": [ [ "test" ], [ "test2" ] ] }
なぜここでtestとtest2にわけているのかといいますと、進捗の達成度(1 / 2 とか)を出してくれるから分けてみました。
この方法が1番簡単で安定すると思いますので、是非ご活用ください。匿名
ゲストご丁寧にありがとうございます!
ご教示いただけた方法で無事実装できました。
進捗達成度も見えるように考慮していただき大変うれしいです!重ねてお伺いさせていただきたいのですが、
作成した新規の実績ツリー(progress_sharing:progress/root)をデータパック初期で実績に表示させたいと思っております。
load.jsonで呼び出すファイルで未達成なら付与、といった形でできるかと思っていたのですが実際には想定挙動にならずでした。
それぞれのファイルを配置しているディレクトリや内容不備がありますでしょうか……?
度々頼ってしまい大変申し訳ございません、お手すきの際で構いませんのでご教授いただければ幸いです。data\minecraft\tag\function\load.json
{ "values": ["progress_sharing:init"] }
data\progress_sharing\function\init.mcfunction
execute as @a[advancements={progress_sharing:progress/root=false}] run advancement grant @s only progress_sharing:progress/root
クロスプ
参加者めちゃくちゃわかりづらい仕様なのですが、「tag」ではなく「tags」で動作します。
ここだけ何故か今でも複数形なんですよね…クロスプ
参加者あと、「load.json」はワールドロード時と「/reload」時でしか実行されなく、基本的にワールドロード時にはプレイヤーがいないので、実質「/reload」でしか付与する事が出来ません。
なので進捗のトリガーで「minecraft:tick」を使って与えるか、「tick.json」で与えるのが良いと思います。匿名
ゲストありがとうございます!
ほかのディレクトリが複数形から単数形に変更になった、との情報を見て勝手に単数形に変更してしまっておりました。
修正しましたところ無事動作するようになりました!load.jsonの不便な部分についてもご教授いただきましてありがとうございます。
tick.jsonで付与されていないユーザーを対象に付与するように修正いたしました。おかげさまでやりたかったことが一先ず実現できました、本当にありがとうございます。
また、何か行き詰った際にはご質問させてください、ありがとうございました!
さくらがい
参加者データパックでカスタムディメンションを作っているのですが、ポータルの作り方が分かりません。バニラのネザーポータルと同じ感じにしたいのですが、どのようにすれば作れるでしょうか?教えてください。バニラの1.21.4です。
クロスプ
参加者質問ありがとうございます。
さて、カスタムディメンションにポータルを作りたい。
なんと、データパックの機能にありません!なんでですか!
#おのれもやん海外勢がカスタムポータルを解説していました。ご丁寧に概要欄にダウンロードリンクまであります。
https://youtu.be/6d9LDadfGOw?feature=sharedこのデータパックは1.18なので、1.21.4に対応するには
- データパックの「tags」を除く「s」を消す。
predicate condition「minecraft:alternative」を「minecraft:any_of」にする。
wabportals:travellers/all_mobs.json にあるモブリストにブロックディスプレイ、アイテムディスプレイ、テキストディスプレイ、インタラクションを追加、矢やトライデント等の削除(発射体)、ボートの個別ID変更をする。
その他調整するものあるかもこの海外勢の作ったデータパックは1番重いのがaetherディメンションファイルなので、function自体はそこまで多くないと思います。
注意だと思うもの
aether仕様なので、2×3でしか動作しません。
まだブロックディスプレイが無い時代なので、ポータルはリソースパックとアーマースタンドで代用されています。文章が長くなってしまいましたがこれで再現できると思います。
私にはこれが限界です。カスタムディメンション制作頑張ってください!- この返信は1週、 1日前に
クロスプが編集しました。
- この返信は1週、 1日前に
さくらがい
参加者カスタムディメンションについてなのですが、生成するバイオームのmulti_noiseはデフォルトと一緒にしてあるはずなのに、なぜか変な風に生成されます。どうしてでしょうか?分かる場合は教えてください。返信はここでも配布ページでもどっちでもいいです。(データパックのリンク:https://minecraft-mcworld.com/130255/)
クロスプ
参加者デフォルトの値忘れたので値が悪いのかバイオームが欠落した影響なのかわかりませんが、バイオーム minecraft:snowy_plains の weirdness が極端に低いので、めっちゃ平らな地形じゃない限り minecraft:snowy_plains にならないですね。
その結果、 minecraft:frozen_river や minecraft:frozen_ocean が陸にも反映されて、陸上に minecraft:ice_spikes が生成されたりしています。
あとこのデータパックに dimension_type minecraft:dimension が存在しないとか言われたので minecraft:overworld に変更して試してみました。そのままでは動いていないです。さくらがい
参加者具体的にはどれくらいの値がちょうどいいのでしょうか?
クロスプ
参加者どのような地形を作成するかにもよりますので値をどれにすればいいのかは一概には言えませんが、Wikiやサイトでシミュレーションするのが良いと思います。
シード値がオーバーワールドと同じなので、同じ座標の寒い地域では地形が結構似るのでその辺を使ってカスタムディメンションを削除しながら F3 でバイオーム確認するのもいいと思います。あとは自分の好みですね。バイオーム minecraft:snowy_plains だと木や草、村などの構造物がでやすくなりますが、代わりに minecraft:frozen_ocean にある海洋構造物が地表にでづらくなります。
値0を基準としてシード値でTHCEWDが生成されているので、ここからこの間の値をこのバイオームにするって感じにしてみてください。
https://ja.minecraft.wiki/w/%E3%83%90%E3%82%A4%E3%82%AA%E3%83%BC%E3%83%A0
さくらがい
参加者基本的にはオーバーワールドと同じような地形にしたいです。
さくらがい
参加者陸上にminecraft:frozen_oceanが食い込んでいるのをどうにかしたいです。
クロスプ
参加者やっとバニラの値を入手する事が出来たので報告します。
バニラのバイオームの値を調べてみた結果、どうやらバニラのバイオームのデータは(全て改行した場合)20万行超ある事がわかりました。
その中で使われているバイオームの総数を調べてみた結果、- 388件 minecraft:snowy_plains
102件 minecraft:ice_spikes
208件 minecraft:snowy_slopes
120件 minecraft:jagged_peaks
120件 minecraft:frozen_peaks
10件 minecraft:frozen_river
110件 minecraft:snowy_beach
2件 minecraft:frozen_ocean
2件 minecraft:deep_frozen_oceanあることがわかりました。海や川のバイオームが多かった理由は恐らく総数が少なく、海は1件だけでバニラの約半分を再現出来た結果で生じたと思われます。
この値を全部人力でコピーして持ってくるにはかなりの労力がかかります。
また、全部コピーしてバニラと同じバイオーム区分になるという保証がありません。
その為、もしバニラの値にしてみたいのであればpython等のプログラムや生成AI等で生成した方が良いと思います。
(自分は生成AIを全く知らないので出来るかは不明ですが)
- 投稿者投稿