複雑な実装は「Advancement」にまかせろ!【マイクラコマンド解説】

  Рет қаралды 35,450

まっしゅ

まっしゅ

Күн бұрын

Пікірлер: 74
@tetrapod_108
@tetrapod_108 Ай бұрын
めっちゃわかりやすい...! 丁寧な編集助かります
@yaaaaaaata
@yaaaaaaata 3 ай бұрын
低速落下の友人人間当たる 「親方,空から女の子が!」
@yaaaaaaata
@yaaaaaaata 3 ай бұрын
ドラゴンの頭を被ってステーキを食べる 「好きな惣菜発表ドラゴン」
@AA-sc3rp
@AA-sc3rp 3 жыл бұрын
まじでこういう動画無いからほんま助かルンバですわ
@asdasdasdasdasdasdasdasdasdasd
@asdasdasdasdasdasdasdasdasdasd 3 жыл бұрын
めっちゃありがたいです! 上手に活用できそう
@reiyuu2525
@reiyuu2525 3 жыл бұрын
まじでめちゃくちゃありがたいです どう調べても理解することができず、便利なのはわかってるんだけどなぁという状態でした この動画のおかげで色々なことができそうです ありがとうございます
@尊い推しが-i2z
@尊い推しが-i2z 2 жыл бұрын
8:37 この装備品についてお聞きしたいことが… ①スロットの指定はどうやってやられていますか ②「スロットにアイテムがある時スコアを+30する」だと毎tick+30されてしまうと思いますが、1度だけ+30するのはどうやってやられていますか ③スロットからアイテムが無くなったことの検知はどうやってやられていますか 面倒かと思います、雑な説明でも構いませんので教えて頂けると嬉しいです。よろしくお願いします
@Hama_SH
@Hama_SH 2 жыл бұрын
RPGを作ろうNPC編の後半で全て把握できると思うので、 もしよければ下のリンクから動画に飛んでみてください! kzbin.info/www/bejne/i2isiKuJfNScq9E
@にせんまんのおとこ
@にせんまんのおとこ 3 жыл бұрын
RPGを作ろうの武器編から気になってました!助かります。
@暇人-x3q2e
@暇人-x3q2e 5 ай бұрын
エンダードラゴンを倒すとfuncitonが呼び起こされる方法が分かりません… 実行させたいfunctionは下に記述しておきます playsound minecraft:ui.toast.challenge_complete master @a ~ ~ ~ 1 1 title @a title {"text":"\u30af\u30ea\u30a2\uff01"} effect clear @a です
@ごりごり天ぷら
@ごりごり天ぷら 3 жыл бұрын
うぽつです! 毎回わかりやすい解説ありがとうございます!
@Mondano106
@Mondano106 2 жыл бұрын
advancementsに関するブログとかWikiとか見ても更新が1.16以前で止まってたりしたので、動画での解説すごくわかりやすくて助かりました!
@TSE_MCPvP
@TSE_MCPvP 2 жыл бұрын
ガスト倒せないの可愛いww (自分も無理だけど)
@worldDebugger
@worldDebugger 4 ай бұрын
advancementを使って、指定のアイテムを累計で指定回数作ったら進捗解除みたいなものはどうやって作ればいいんでしょうか? 例えば、鉄ブロックを3回作ったらとか。もうひとつ、質問したいことがあって、マイクラ内に実際にある進捗を利用して何かをしたいとき、新しい実績をそれ用にもう一度作る必要がありますか?
@ミイム
@ミイム 3 жыл бұрын
おつんご! 進捗が達成できたらヤッタア! 最近机の引き出しに魔法の案を描いていた紙がどっさりはいってました!w 整理するのもめんどいので放置!
@reiyuu2525
@reiyuu2525 3 жыл бұрын
質問なんですけど 11:51 のクロスボウって、どうやって矢を装填しきらないようにしているのですか? item replaceでchargedを0bにしてもclearで一度消しても、このような挙動になりません
@Hama_SH
@Hama_SH 3 жыл бұрын
データを無くしてしまったので、わからなくなってしまいました。自分で試してみても動画のように再現できません...。記憶では/itemコマンドを使ったような気がするのですが、もし再現出来たら追ってコメントを追加します。すみません!! 銃のデータパック等で、11:51からの挙動と同じようなものは存在していると思うので、もし見つけたらそちらを解剖してみるのも良いと思います。
@reiyuu2525
@reiyuu2525 3 жыл бұрын
@@Hama_SH 了解です、わざわざありがとうございます なるほど試してみます!
@nonalpha3862
@nonalpha3862 3 жыл бұрын
0:50 TSBを見てもらえれば分かりますが 実行するコマンドによっては常時実行で見ておかないと使えないコマンドがあるみたいです 詳しくは分かりませんが (多分tickとtickの間の中途半端な時に実行できないコマンドがある)
@威風堂々-k6f
@威風堂々-k6f Жыл бұрын
これ知ってめちゃくちゃ制作の幅が深まりました。本当にありがとうございます。 ところで質問なんですが、アイテム消費の際に、名前付きのアイテムを指定することはできますか?
@Hama_SH
@Hama_SH Жыл бұрын
可能です!下のようにnbt欄に名前の部分を入れると良いです。 { "criteria": { "requirement": { "trigger": "minecraft:consume_item", "conditions": { "item": { "nbt": "{display:{Name:'{\"text\":\"大きなリンゴ\"}'}}" } } } } }
@Vithe-Gaming
@Vithe-Gaming 3 жыл бұрын
おお、predicateとの相性抜群ですね! これは使います。使うしかありません!
@はるさめ-c3b
@はるさめ-c3b 7 ай бұрын
いつも動画見させてもらってます! 質問なんですが、銅貨10まいで銀貨に換金する という仕組みを作っているのですが... 銅貨が10枚以上あることを検知するadvancementを実行→銅貨を消して銀貨にしてadvancement剥奪 のような仕組みで作っているのですが、この方法だと20個以上の数だと、一回しか反応してくれず...(27個だったら17になってそれ以上変更されない) 別の方法や、改善する方法あれば教えてほしいです...
@Hama_SH
@Hama_SH 7 ай бұрын
銅貨10枚→銀貨1枚の操作を一つのfunctionにして、 advancementをはく奪する前にプレイヤーが銅貨を10枚以上持っていることが無いようにするとよいです。もしくはマクロを用いて銅貨/10の値をそのまま銀貨のgiveする値に代入することもできますが、下の方法が一番シンプルだと思います。 advancementの報酬: execute store result score @s test run clear @s (銅貨) 0 execute if score @s test matches 10.. run function (銅貨10枚→銀貨1枚) advancement revoke @s only (advancement) 銅貨10枚→銀貨1枚の操作: clear @s (銅貨) 10 give @s (銀貨) 1 scoreboard players remove @s test 10 execute if score @s test matches 10.. run function (銅貨10枚→銀貨1枚) execute unless score @s test matches 10.. run scoreboard players reset @s test
@はるさめ-c3b
@はるさめ-c3b 7 ай бұрын
@@Hama_SH ありがとうございます!!できました!!
@hecho_5258
@hecho_5258 10 ай бұрын
using_itemを使ってみたのですが、''弓を使っているときのみ''を検知するコマンドがわかりません。 教えていただければありがたいです。 最近コマンドについて勉強していて、まっしゅさんの動画をよく見させてもらってます。すごく役立ちます、感謝です!
@匿名-x3k2j
@匿名-x3k2j 3 жыл бұрын
ずっと知りたかった。 次回ルートテーブルの動画ほしいです
@Hama_SH
@Hama_SH 3 жыл бұрын
順番的には次ルートテーブルですかね...! 次RPGの動画が止まったらルートテーブル解説を出します。
@bluenerium
@bluenerium 3 жыл бұрын
うぽつです!毎度分かりやすくて助かります 自由度が高いからこそ説明も長くなってしまうものですね…まだコマンド触ったばっかりでadvancementには全く触れていなかったのでこれから役立てたいと思います!
@妖術使い-h6n
@妖術使い-h6n 11 ай бұрын
すげえ…
@初心者の布団
@初心者の布団 3 жыл бұрын
うぽつ!今日もいつも通り分かりやすすぎてわかりやすい度がカンストしてる(?) 本当にありがたいから毎秒投稿しやがれくださいおねがいします。 というのは冗談でこれからもお体に気を付けて頑張ってくださいね!
@Rolufesy_MS
@Rolufesy_MS 3 жыл бұрын
お疲れ様です!ヤッター!
@食べられるセメント
@食べられるセメント Жыл бұрын
質問失礼します loot_tableのところってどんな感じに書いたらいいですか?
@yosizawa6470
@yosizawa6470 2 жыл бұрын
これって進捗の巻き戻しをする時(revoke)、対象全てを入れないとだめですよね・・・?? 例えばレベルが5ダウンした際、レベルが上がっていた(進捗として達成したまま)のを5巻き戻すので 6なら{5}{4}…と5つ入れる必要あります・・よね? (オリジナル進捗によるレベルシステムにて)
@Hama_SH
@Hama_SH 2 жыл бұрын
やりたいことがあまりつかめませんでしたが、基本そうなります。 動画では解説していませんが、parentの部分を上手く設定して /advancement revoke @s (from/through/until)を使えば一気に複数のadvancementを取り消しできます。少し複雑なのでWiki等を参照して見て下さい。revoke onlyを5つ並べる処理でも問題は無いです。
@assume334
@assume334 3 жыл бұрын
特定のタグ付きの武器での攻撃の検知はplayer_hurt_entityでできますか?
@Hama_SH
@Hama_SH 3 жыл бұрын
yes!
@assume334
@assume334 3 жыл бұрын
@@Hama_SH Equipmentのmainhandで検知しようとしたところ、弓を射ってからタグ付き剣へ持ち換えると、誤反応(弓で攻撃したのにAdvancementが反応)してしまうんですが、やり方を間違えてますいるんでしょうか?
@Hama_SH
@Hama_SH 3 жыл бұрын
認識としては攻撃処理(player_hurt_entity)が起こった際にプレイヤーがどんな状態だったか?っていうものなので、弓から発された矢であっても攻撃処理が起こっている間にmainhandに剣を持っていたら剣の方のadvancementがトリガーされてしまいます。 解決策としては「ダメージタイプを付ける」です。弓の攻撃の場合はmainhandの条件は付けずにis_projectileをtrueに、剣の攻撃の場合はmainhand(タグ付き)の条件とis_projectileをfalse。こうすることで一応二つの攻撃は分けることが出来ます。ただこれだけでは特定のタグを持った弓で攻撃したことは検知できません。あまりアイデアが無いです。攻撃時弓を持っていないと効果がないよーと妥協するか、もう少し頭をひねってfunctionとかと組み合わせる必要がありそう。 { "criteria": { "requirement": { "trigger": "minecraft:player_hurt_entity", "conditions": { "damage": { "type": { "is_projectile": true } } } } }, "rewards": { "function": "attack:test" } }
@assume334
@assume334 3 жыл бұрын
@@Hama_SH ありががとうございます!!
@廊下を走ろうか
@廊下を走ろうか 3 жыл бұрын
めちゃくちゃありがたいです! advancementのrequirementをtickにし、rewardをexperience100に設定してマイクラを開いても経験値が入ってきません。rewardをfunctionにしてみたりrequirementをinventry chagedにしてみても変わりませんでした。どうすればいいでしょうか?;; functionコマンドは機能してます!
@Hama_SH
@Hama_SH 3 жыл бұрын
advancementが正しく導入できていない、もしくは正しく記述が出来ていないのかと思われます。/advancementコマンドで自分の作った進捗が出てくるかも確認して見て下さい。もし出ない場合は正しく導入ができていないです。
@廊下を走ろうか
@廊下を走ろうか 3 жыл бұрын
@@Hama_SH 解決しました!ありがとうございます!
@Blampmmgw
@Blampmmgw 3 жыл бұрын
おつかれさまです。アイテムを捨てると、コマンドを実行する進捗を、まっしゅさんと同じジェネレーターで作っているのですが、どうすればいいのですか。
@Hama_SH
@Hama_SH 3 жыл бұрын
アイテムを捨てることだけを検知する進捗は無いのですが、inventory_changedで検知することはできます。ただアイテムを捨てる以外にも進捗が達成されてしまうので、その操作は不可能に近いです。
@Blampmmgw
@Blampmmgw 3 жыл бұрын
@@Hama_SH さんわかりました。
@巻巻-o1f
@巻巻-o1f 3 жыл бұрын
質問です。エンダーアイなどを使うことは検知出来たのですが、それを使い終わったこと(右クリックを離したこと)の検知の仕方が分かりません どうすればエンダーアイの右クリックを離したことを検知すればいいでしょうか?
@Hama_SH
@Hama_SH 3 жыл бұрын
使い終わった後の検知は直接的には検知できないので、少し工夫が必要になります。 と思って試行錯誤してみたものの、綺麗なものが作れませんでした...。押し始めた瞬間から2つのスコア(1つは常時実行、1つはプレイヤーの右クリックによるもの)を加算し続けて、等しくなくなったら離したねみたいなものを作りたかったのですが、advancementの挙動が難しくて断念しました。すみません。また何かいい方法があれば共有します。
@巻巻-o1f
@巻巻-o1f 3 жыл бұрын
色々と試行錯誤して下さったみたいでありがとうございます
@ConanOtaku4869
@ConanOtaku4869 3 жыл бұрын
エンダーチェスト覗いてるときにinventory_changedがトリガーされないのが残念;; (一応処理重そうな対策はあるけど)
@Hama_SH
@Hama_SH 3 жыл бұрын
そうなのか初耳!inventory_changedは条件の中でも謎な仕様が多く感じたのと、もうーー少し自由度高くなって欲しいな。
@Uhsgsan
@Uhsgsan 3 жыл бұрын
条件が日本語に翻訳されたのうれしい
@よーさん-m6b
@よーさん-m6b 3 жыл бұрын
いやこれ欲しかったーーー
@aka_boushi
@aka_boushi 3 жыл бұрын
うぽつです。初めまして。 ちょうど探していた情報でした。ありがとうございます。 advancementを使った方法の数少ない欠点として、「同一tick内で動いてしまう」ことで起こる問題があって、 クロスボウの機構を使って銃を実装する時など、「撃った直後に手元のクロスボウを装填状態(Charged:1b)にする」操作を行いたい場合、 advancementのrewardが実行されたtick内では失敗してしまいます(撃った次のtickでクロスボウが未装填状態になる挙動?)。 shot_crossbowとtickを組み合わせるか、旧来のスコアボード法になってしまいますかね…?
@Hama_SH
@Hama_SH 3 жыл бұрын
確かにそういった実装をするときはadvancementは動作が速すぎて空回りしてしまいますね...。対策としては/scheduleコマンドを使って「1tick遅らせて装填状態にする」というものがあるんですが、advancement報酬内で完結しないのであまり向いてないかもしれないです。 やってみたところ長押しでは4tickに一回右クリック検知が出来て、右クリックを連打すると早く打ててしまうようなものが出来ました。どんな銃が実装したいか、クロスボウから弓矢を放ってそれを銃の弾とするのか等に依るので、もし詰まっているようであれば少し詳細を教えていただきたいです。銃のデータパックを作っている方のものの実装を覗いてみるのもいいかもしれないです。
@aka_boushi
@aka_boushi 3 жыл бұрын
​@@Hama_SH ありがとうございます。やはりそうですよね。advancement内で完結できる方法がもしあれば、と思ったんですが残念… (既に完成している作品の改善点があるだろうか?と思っての質問だったので、詰まってはいないです。そして「クロスボウ発射をトリガーにするアイテム」の一発で伝わるであろう例として銃を挙げたので、実は作っているものは銃ですらないです…失礼しました)
@ああ-i5n1m
@ああ-i5n1m 3 жыл бұрын
scoreboardの代用みたいな感じで使えるんですかねー?
@Hama_SH
@Hama_SH 3 жыл бұрын
yes!スコアを使った条件達成検知の上位互換な感じ。
@step-on4442
@step-on4442 3 жыл бұрын
とてもゲーム作りの参考になりました!ところで、player_hurt_entityの時にファイル作成補助サイトで LegacyではなくConditionsを使ってると思いますが、何故かわたしの方では選択できても 強制的にLegacyに切り替わってしまいます。なにかご存知であればお聞きしたいです。
@Hama_SH
@Hama_SH 3 жыл бұрын
撮影時の私の方でもLegacyに代わってしまっていたので、サイトの不具合だと思われます。右下のjsonファイル表示で無理やり"player": [...]と書いてやると左側にも反映される、インポートのようなものが出来るので 不具合が治るまでは "player": [ { "condition": "...", "entity": "this", "predicate": {} } ], を手書きで右下に書いてやって、タブが表示されたら左側で操作するといったようにするとある意味では不具合を回避できます。
@gtysq
@gtysq 3 жыл бұрын
「レベル」だけじゃなくて 採掘レベル、戦闘レベル、釣りレべル...とか個別でレベルを作ることはできるでしょうか。やはり負荷がかかるのでしょうか。
@Hama_SH
@Hama_SH 3 жыл бұрын
採掘したことを検知して採掘xpをUPさせて、一定値以上になったら採掘レベルを上げて... っていう感じに全てなると思うので、負荷というよりかはスコアボードがたくさん増えるというくらいでしょうか。 採掘→ブロック破壊検知 戦闘→攻撃検知 釣り→釣り竿使用検知 等でadvancementかを作成して、それぞれについてスコアボードを作成すれば、レベルシステムは作れると思います。
@teknalb
@teknalb 3 жыл бұрын
ルートテーブルを使ったランダム機構についての動画を削除しちゃいましたか??
@Hama_SH
@Hama_SH 3 жыл бұрын
消してしまいました!いずれもう少し効率の良い乱数生成の方法を解説して出すと思います。
@teknalb
@teknalb 3 жыл бұрын
ありがとうございます!! 僕の環境が悪いのかはわかりませんが、 マルチサーバーで実行するとエラーが出ました。(確かsprigotだったはず) そこも解決していただけないでしょうか?
@Hama_SH
@Hama_SH 3 жыл бұрын
サーバー関連の知識は悲しいことに一つも持っていないので、解決できません。すみません!
@Isana_Minagi
@Isana_Minagi 3 жыл бұрын
分かりやすい解説ありがとうございます! 一つ質問したいのですが、 自作の進捗の作り方は分かるのですが、バニラの進捗を消す(または上書きする)にはどうすればいいでしょうか? 自分でもいろいろ調べてみたのですが、わかりませんでした。 バージョンは1.16です。 お時間があればよろしくお願いします。
@Hama_SH
@Hama_SH 3 жыл бұрын
データパック内のdata/minecraft/advancementsフォルダ内で、バニラの進捗と同じファイルパスに同じ名前のjsonファイルを作って中身を書くことで、内容を変更できます。消したい場合も同じ名前のjsonファイルを作って、達成できないような中身を書くことで実質達成不可能な進捗→バニラの進捗を消すことが出来ると思います。1.18.1でしか動作確認はできていないので、1.16の仕様は把握できてないです。すみません。 参考までに、バニラレシピの消し方という動画があるので、advancementにも少しは知識が流用できるかもしれないです。>> kzbin.info/www/bejne/fKO8pJJmm9-rha8
@Isana_Minagi
@Isana_Minagi 3 жыл бұрын
@@Hama_SH 丁寧にありがとうございます! なるほど、同じファイルパスにすることで上書きができるのですね、 今度試してみます!
@moon-xq4cl
@moon-xq4cl 3 жыл бұрын
最高
@うがみや
@うがみや 3 жыл бұрын
ずっと待ってたよお!!!!!!!!!!!!!! 次はボスの動画かな??????!!!!!
@Hama_SH
@Hama_SH 3 жыл бұрын
多分...!!
@relle3674
@relle3674 3 жыл бұрын
おつ!!^^
@まむちゃん-q8i
@まむちゃん-q8i 3 жыл бұрын
いちこめ
Beat Ronaldo, Win $1,000,000
22:45
MrBeast
Рет қаралды 158 МЛН
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН
It’s all not real
00:15
V.A. show / Магика
Рет қаралды 20 МЛН
絶対に正解してはいけないサイコパス診断【ゆっくり解説】
16:10