Minecraft【テクニック】ブロックアニメーションを作ろう。2-4

Java版1.21.4-、統合版v1.21.51-で動作確認。
ブロックを動かす、アニメーションの作り方。
ブロックアニメーションを作ろう。
ブロックで立体的なドット絵を作り、動かす装置を作ります。その場で再生するだけでなく、2-3で作ったコントローラーで操作も出来るようにします。応用すれば、ボスキャラや乗り物の作成、地形を動かす罠ダンジョン、謎解きハウス、アクションゲームなども作れます。今回は、簡単に作れる2種類の装置を紹介します。
- 詳しくはこちら→ 【テクニック】移動検知で、コントローラーを作ろう。2-3
目次
1.フレームで更新
・キャラクターの作成。
・追加フレーム(統合版)。
2.フレーム式
・Java版。
・統合版。
3.リフレッシュレートで更新
・装置の仕組み。
4.リフレッシュレート式
・Java版。
フレームで更新
パラパラ漫画のように、少しづつ変化させた静止オブジェクトを作り、連続再生して動いているように見せる方法です(ストップモーション・アニメーション)。1フレーム(コマ)づつ作るので、細かい表現が可能。大きなもを作るには、手間とマシンパワーが必要です。
キャラクターの作成。
移動方向に合わせて向きを変える、簡単なキャラクターを作ります。3フレーム(コマ)の静止オブジェクトを作成。名前は「キノコ使い」にします。ストラクチャーブロックを使い、同じ構造物のサイズで保存します。
変化がわかるように、ドロッパーや杖の向きを変更。
移動の時、前フレーム(コマ)のブロックが残らないよう空気ブロック含めて保存。
セーブモードに変更。構造物名は、左から「1」「2」「3」で保存。保存範囲にストラクチャーブロックを含まないよう、z軸の相対位置を1にします。
追加フレーム(統合版)。
統合版は空のフレーム(コマ)を挟む事で、「キノコ使い」がスムーズに移動出来るようになります。※ストラクチャーブロックは、メモリー保存にすると再起動で消えてしまうので、HDDに保存します。
作り方は「1-3」のフレーム(コマ)と同じ。
モードを保存に変更。保存名は「air」 。※エクスポートはWindows版のみ。
フレーム式
動力部品を使った「インパルス」のコントローラーに、フレーム(コマ)を追加します。防具立て「スティーブ」を基準点に、相対座標を使って「キノコ使い」をロードします。※他のコントローラーでも作成出来ます。
◻︎相対座標とは
原点とは別に、基準点を設定。そこからの距離を、縦・高さ・横(x,y,z)で数値化したもの。数値が変わらなければ、基準点が移動しても、同じ距離を保つ事が出来ます。
Java版。
◻︎コマンド 例
①execute at @e[name="スティーブ"] run setblock ~-2 ~ ~1 structure_block{mode:"LOAD",name:"1"} ------ ②execute at @e[name="スティーブ"] run tp @e[name="スティーブ"] ~-1 ~ ~ ③execute at @e[name="スティーブ"] run setblock ~-2 ~ ~1 structure_block{mode:"LOAD",name:"3"} ------ ④execute at @e[name="スティーブ"] run tp @e[name="スティーブ"] ~1 ~ ~ ⑤execute at @e[name="スティーブ"] run setblock ~-2 ~ ~1 structure_block{mode:"LOAD",name:"2"} ------ ⑥execute at @e[name="スティーブ"] run setblock ~-2 ~1 ~1 redstone_block |
【防具立ての召喚】
summon armor_stand ~ ~ ~ {CustomName:'"スティーブ"',CustomNameVisible:1b}
※防具立てを「marker」に変更出来ます。
◎プレイヤーが北向きの場合
【向き】①③⑤
正面、左向き、右向きの「キノコ使い」をロード。
【移動】②④
防具立て「スティーブ」を、左右に移動。
【動力】⑥
ストラクチャーブロックをロードするための動力。
統合版。
◻︎コマンド 例
①execute at @e[name="スティーブ"] run structure load "1" ~-2 ~ ~1 ------ ②execute at @e[name="スティーブ"] run tp @e[name="スティーブ"] ~-1 ~ ~ ③execute at @e[name="スティーブ"] run structure load "3" ~-2 ~ ~1 ------ execute at @e[name="スティーブ"] run structure load "air" ~-2 ~ ~1 ④execute at @e[name="スティーブ"] run tp @e[name="スティーブ"] ~1 ~ ~ ⑤execute at @e[name="スティーブ"] run structure load "2" ~-2 ~ ~1 ------ ⑥execute at @e[name="スティーブ"] run structure load "air" ~-2 ~ ~1 |
【防具立ての召喚】
summon armor_stand スティーブ ~~~
◎プレイヤーが北向きの場合
【向き】①③⑤
正面、左向き、右向きの「キノコ使い」をロード。
【移動】②④
防具立て「スティーブ」を、左右に移動。
【補正】⑥
アイテムを落とさずに、次のフレームを表示。
リフレッシュレートで更新
常に表示しているブロックを、一定の間隔で消す事で、擬似的なリフレッシュレートを作ります。1秒間で10フレーム(コマ)を表示可能。静止オブジェクトだけでは表現しにくい、動的なアニメーションを作る事が出来ます。フレーム式と組み合わせも可能。※統合版でも作成出来ますが、ブロックが点滅してしまうため、非推奨となります。
装置の仕組み。
「防具立ての追尾」を使ったコントローラーと、擬似的なディスプレイを組み合わせます。常に表示している「赤色のテラコッタ」がプレイヤーの動きに合わせて移動します。プレイヤーがディスプレイの範囲を超えないよう、移動制限が必要になります。※他のコントローラーでも作成出来ます。
ひとつのストラクチャーブロックで、最大48×48×48ブロックまで作成可能。※Java版の場合。
セーブモードに変更。構造物名は「10hz」で、エンティティを含めず保存。
リフレッシュレート式
ストラクチャーブロック「10hz」は、防具立て「ディスプレイ」を基準点にし、相対座標で設置します。座標を調べる必要が無いので便利です。木のシャベルをトリガーに、装置を起動します。
Java版。
②⑤⑥⑦は動力が必要。
◻︎コマンド 例
①execute at @e[name="ディスプレイ"] if block ~ ~ ~ structure_block ②execute at @e[name="ディスプレイ"] run setblock ~ ~ ~ air ------ ③execute at @e[name="スティーブ"] run setblock ~ ~ ~2 red_terracotta ------ ④execute if entity @e[name="木のシャベル"] ⑤execute at @p run tp @e[name="スティーブ"] ~ ~ 0 ⑥execute as @e[name="スティーブ"] at @s run tp @s ~ ~ ~ ~180 ~ ⑦execute as @e[name="スティーブ",y_rotation=0] at @e[name="ディスプレイ"] run setblock ~ ~ ~ structure_block{mode:"LOAD",name:"10hz"} |
【防具立ての召喚】
summon armor_stand ~ ~ ~ {CustomName:'"スティーブ"',CustomNameVisible:1b}
summon armor_stand ~ ~ ~ {CustomName:'"ディスプレイ"',CustomNameVisible:1b}
※防具立てを「marker」に変更出来ます。
◎プレイヤーが北向きの場合
【リフレッシュレート】①②
ストラクチャーブロックを検知し、動力を送り削除。
【キャラクター】③
防具立て「スティーブ」の2ブロック前に、「赤色のテラコッタ」を常に表示。
【複合装置】④⑤⑥⑦
木のシャベルを検知。「スティーブ」を左右に動かすコントローラーを起動。さらに「スティーブ」を回転し、2ティックのクロック回路で「10hz」を設置。⑤のz軸は絶対座標。