2015年9月23日水曜日

【コマンドブロック】スプラトゥーン制作日記(7)スプラッシュボム。遅延1秒の再現【マインクラフト】

コマンドブロックだけでスプラトゥーンを作っていく日記


スプラッシュボムは放物線を描き、着弾から1秒後に爆発する



どうやって再現していくの?

再現のやり方は様々ですが、私はプレイ動画を見ながら仕様を把握していきます。
放物線を描きながらスプラッシュボムは飛んでいきますから、利用するアイテムはスプラッシュポーションが良さそうです。

1、使うアイテムは「スプラッシュポーション」

次に識別です。識別は各チームごとに判定が異なるため必要となります。
プレイヤーがスプラッシュポーションを使った時、そのプレイヤーに最も近いポーションにスコアをセットします。

/execute @a[team=red,score_usedpotion_min=1] ~ ~ ~ /scoreboard players set @e[type=Potion,c=1,r=1] redpotion 1 

このコードを読むと、赤チームのusedpotionが1のプレイヤーの座標に対して、選択するエンティティは1,範囲は1でポーションにredpotionというスコアを1セットするというコードです。

2,赤チームがスプラッシュポーションを使うと、投げられたポーションにはredpotionスコアが1セットされる。

つづいて、このスプラッシュポーションの着弾判定です。今回は赤の場合です。

/execute @e[type=Potion,score_redpotion_min=1] ~ ~ ~ detect ~ ~-.5 ~ minecraft:wool -1 /summon Creeper ~0 ~0 ~0 {ignited:1,ExplosionRadius:0,Fuse:25,CustomName:"red",Fire:40}


ここがコマンド力が試されるところですね。redという名前で炎上しているクリーパーを召喚させます。着火させた状態で1.25秒後に爆発します。
この状態のクリーパーがいる場合、そのクリーパーにスコアを1ずつ加算していきます。redfuseスコアです。

/execute @e[type=Creeper,name=red] ~ ~ ~ /scoreboard players add @e[type=Creeper,name=red] redfuse 1 


クリーパーの爆破とほぼ同時にクリーパーの周りを塗ります。なので

/execute @e[type=Creeper,score_redfuse_min=20] ~ ~ ~ /fill ~1 ~1 ~1 ~-1 ~-1 ~-1 minecraft:wool 1 replace minecraft:wool

redfuseが20(1秒)の時、塗りつぶします。約0.25秒後にクリーパーが爆発しますが、見た目は爆発と同時です。




まだ調整中ですが、こんな感じにマイクラに置き換えれるものにかえてつくっていきます。

次:【コマンドブロック】スプラトゥーン制作日記(8)バリアの再現がかなり悩ましい【マインクラフト】
前:【コマンドブロック】スプラトゥーン制作日記(6)登場する武器を決める!【マインクラフト】

 にほんブログ村 ゲームブログ Minecraftへ

2015年9月22日火曜日

【コマンドブロック】スプラトゥーン制作日記(6)登場する武器を決める!【マインクラフト】


コマンドブロックだけでスプラトゥーンを作っていく日記

マイクラを開かず、構想のお話です。今回は登場する武器を決めます!
現在作ろうと思っているマイクラで登場させる武器はこちら

シューター

スプラトゥーンの最初にして最強とも言われるわかばシューター。




チャージャー
ナポアン式とは違ったトラップを導入する予定です。スーパーショットも再現したいためスクイックリンβ




 ローラー
キューバンボムとメガホンレーザーは再現のしがいがありそうなので。スプラローラー


ジャンプビーコンを再現してくれ。というのがあったのですがそれをやめて、カモンを実装しようかなと考えています。追々やっていきましょう。
次回はスプラッシュボムをつくって行こうと思います。



次:【コマンドブロック】スプラトゥーン制作日記(7)スプラッシュボム。遅延1秒の再現【マインクラフト】
前:【コマンドブロック】スプラトゥーン制作日記(5)こうやってコマブロ考えてます! スプラ制作のウラガワ【マインクラフト】


  にほんブログ村 ゲームブログ Minecraftへ

2015年9月19日土曜日

【コマンドブロック】スプラトゥーン制作日記(5)こうやってコマブロ考えてます! スプラ制作のウラガワ【マインクラフト】

コマンドブロックだけでスプラトゥーンを作っていく日記

 今日はコマブロって一体どうやって考えてるの? というところのお話です。
私の場合ワード(kingsoft社製)を使って組んでいます。


地味・・・そうです。地味です。


コマブロ開発の半分以上はワードでの作業になります。

作業の流れは
1,ワードでコマンドを組む
2,アイデアをマイクラ上で考える
3,1と2を繰り返す。
4,マイクラでコマブロを組む
5,実験する
6,1に戻る

こんな感じですね。
ワードを使う理由は文字の検索と置換ができるからです。
team=redをteam=blueに手で書き換えてるとミスするため、一括置換を使います。


だいたいチャージャーとローラーで使うクロックで常時呼び出すコマブロは70個前後。
明日はシューターを組んで+30ほど。
そのあとサブウェポン1種につき+25~30個なのでおそらく150~180個ほど組みます。
だいたい構想自体は8割ほど完成してるので、あとはコマンドに落とし込んでいくだけです。



次: 【コマンドブロック】スプラトゥーン制作日記(6)登場する武器を決める!【マインクラフト】
前:【コマンドブロック】スプラトゥーン制作日記(4)reset回路の一元化!【マインクラフト】

 にほんブログ村 ゲームブログ Minecraftへ

【コマンドブロック】スプラトゥーン制作日記(4)reset回路の一元化!【マインクラフト】

コマンドブロックだけでスプラトゥーンを作っていく日記

メインコマブロとリセットコマブロをボタンひとつで!


こういうコマブロの配置をするとうまくいかない
手前:雪球を投げた時に実行させたい常時呼び出しコマブロ、奥:その後リセットしたいスコアを入れたコマブロ


理想:
雪球を投げる→スコア1→スコア1の時呼び出したいコマブロ→スコア1をリセット

現実:
雪球投げる→スコア1→スコア1をリセット→呼び出したいコマブロは呼び出されず。ずっとリセット


これはコマブロの仕様でリセットと常時呼び出しコマブロは一元化できません。
この場合、クロックを2本用意して、それぞれボタンを押すしかありません。
ボタン1つでリピーターで遅延を挟んでsetblockをしてもダメでした。


が、ピストンは別。
ピストンが上手くいく理由はBUDとピストンが伸びるまでに時間が掛かる遅延があるからだと思います。
遅延あってもいいなら、やはり安定のピストンですね。
右側のクロックに赤石が入るとピストンで左のリセットクロックが起動する仕組み。これならいける! とおもいきや・・・



クロック起動中。木のボタンで停止!
がしゃこん。上のピストンで停止させます。ん? 


左側のクロックの赤石が消えてます。
これはクロック実行のためのairが先行して赤石がairと置き換えられたんですね


原因の箇所のピストン


この箇所を改善してみました。

ピストンを壊してみると・・・


しっかり駆動している赤石が入っています。
 どうやったのか? というと

最初のsetblock部分を改良

このsetblockする赤石というのが・・・

この場所

次のコマブロのsetblockは

右側のコマブロクロックに入る仕組み

停止ボタンから回路はこんな感じに伸ばして仮設

あいかわらずわっかりにくいですが、日記ですからね! 自分がわかればいいのです・・・。
製作編は別途記事にしますので、お待ち下さい。ピストンが使えるのは発見でした。回路やっておくものですね。

次:【コマンドブロック】スプラトゥーン制作日記(5)こうやってコマブロ考えてます! スプラ制作のウラガワ【マインクラフト】
前: 【コマンドブロック】スプラトゥーン制作日記(3)スプラローラージャンプ処理部を組む【マインクラフト】

にほんブログ村 ゲームブログ Minecraftへ

2015年9月18日金曜日

【コマンドブロック】スプラトゥーン制作日記(3)スプラローラージャンプ処理部を組む【マインクラフト】

コマンドブロックだけでスプラトゥーンを作っていく日記

スナップショットでコマブロ開発!
今日もスプラトゥーンつくっていくよ!
今日はスナップショットで仮組したコマブロに囲まれながら製作中のスプラを考えていきます。
こちらも縮小できないか色々考えましたが、一部のミスを修正して構想通りに行くことにしました。
制作日記は完成後作り方を別途あげますのでお楽しみに!

これがスプラローラージャンプ攻撃の心臓部!(なるほど、わからん!)

右手前リピート:execute、中央リピート:testfor、左手前インパルス:reset

 スナップショット版のリピブロが大活躍です。
右手前のリピートブロックにはexecuteでジャンプ時の塗りを呼び出すコマンドを入れます。
中央のリピートブロックはそのプレイヤーがジャンプしてどの方角を向いているかを判定。
左手前のインパルスはジャンプしながら使ったローラーのスコアをリセットしています。
(なんのこっちゃ? というが普通です( ˘ω˘))


スプラローラージャンプ処理の肝。方角判定!

右インパルス:testfor、中央インパルス:blockdata、左インパルス:say

回路軽量化のためここは先ほどのtestforからのパルスでtestforを動かすのですが、重大な問題があります。

向きを変えるのに空打ちしないといけない点です・・・。
空打ちしない方法もあるのですが、クロックの数が増えるので考えものです。


明日第三のアイデアを構想して何とか出来ないかと試行錯誤したいと思います。




次:【コマンドブロック】スプラトゥーン制作日記(4)reset回路の一元化!【マインクラフト】
前:【コマンドブロック】スプラトゥーン制作日記(2)方角判定を組むpart2【マインクラフト】

 にほんブログ村 ゲームブログ Minecraftへ

【コマンドブロック】fillの使い方(1)「座標とは?」【マインクラフト】

fillとは?

 scoreboardやセレクタ・引数と素人コマンダーを悩ませる要素は多くありますが、
fillコマンドで挫折しコマンダーを諦めてしまう人もいるそうです・・・。fillを理解するには座標を理解する必要があります。


座標? なるほど、わからん・・・。

座標とは?

座標には様々な種類があります。現在プレイヤーが立っている場所、チャンクの座標、
向いている方向、角度、現在ターゲットしている(ロッキングしている)ブロックの座標などです。
これらはデバック画面(F3)で確認することが出来ます。
 
オレンジ羊毛の座標はLooking at 269 56 796
私が現在居るのはXYZ:269.645 / 56.0 / 797.739 です。私が現在立っている足の位置はBlock: 269 56 77 です。

 重要なのはLooking at: 269 56 796です。
これが現在選んでいるブロックの座標です。オレンジ羊毛は 269 56 796にあることになります。
この座標をfillで選ぶ時いちいち数字を入力する必要はありません。


半角スペースを入力したらtabキーを押すだけ!

 1.8環境ではコマンドに予測入力があります。MODを入れればコマンドブロックでも可能です。
(1.9ではMODなしでコマンドブロックに予測入力ができるようになります)
入力し終えたら、Ctrl+Aで選び、Ctrl+Cでコピーした後、fillの終点まで移動します。




 奥に見えるブロックが先ほど入力した始点です。
現在Lookingしているのが終点のブロックです。チャット欄を開きCtrl+V、そのあと半角とtabで終点の座標を入力します。


最後まで打ち終わって半角・tabを押すと「minecraft:」と表示される。これは・・・?

 最後まで打ち終わるとminecraft:と表示されます。このあと始点から終点までをうめつくしたいブロックをしていします。(woまで入力したらtabキー、半角スペース後、数字を入力)

記入例
minecraft:wool 0
minecraft:wool 1
minecraft:wool 2
minecraft:wool 3
一度呼び出したコマンドはチャット欄でPa UP(↑キー)を押すと再度チャット欄に表示できます。
数字を入れ替えて何度か試してみましょう。このwoolの後に続くものは次々回以降に解説します。

とりあえず座標というものが何となくわかってきたら今回はOKでしょう。
ちなみに、今回使った座標選択の方法を「絶対座標」といいます。これは何度も登場する言葉なので覚えておきましょう。




にほんブログ村 ゲームブログ Minecraftへ

【コマンドブロック】セレクタと引数の使い方(4)「r、cの使い方」【マインクラフト】

 rとcの使い方

RANGE(範囲)とCHOICE(選択)からなるrとcです。
rはコマンドを呼び出す座標から球体状に範囲を指定します。cは呼び出されたコマンド対象となる上限数を決めます。
といってもピンとこないので記入例を見てみましょう。

ArmorStandに囲まれながらコマンドを試そう!


記入例:
 /kill @e[type=ArmorStand,r=3]

 あなたから3ブロックの球体状範囲中にある防具立てをキルします。(ArmorStand)
範囲外にある防具立てはキル出来ません。


記入例:
 /kill @e[type=ArmorStand,c=1]

 あなたからもっとも近いエンティティ1つをキルします。
このコマンドを実行するとキルする防具立ては1つです。


記入例
 /kill @e[type=ArmorStand,r=3,c=1]

 3ブロックの球体範囲中で最も近い防具立て1つをキルします。
複数体あっても選ばれるのはコマンドを呼び出した距離からもっとも近いものです。
c=-1にすることでもっとも遠いエンティティを選ぶことも可能です。


この引数を最も使うのはexecuteとの併用で呼び出したエンティティ自身を対象とする時です。
executeはコマンドブロックの中でもっとも把握しにくいコマンドなため別記事で詳しく行います。




前: 【コマンドブロック】セレクタと引数の使い方(3)「typeの使い方」【マインクラフト】

  にほんブログ村 ゲームブログ Minecraftへ

フィード