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へ

2015年9月17日木曜日

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

引数typeの使い方

さて、コマンドブロックを使いこなせているかは引数を使いこなせているかという点があります。
やはり引数をわからないうちはコマンドブロックの真価を10%も発揮していません。
今回はそんな引数の中からtypeを紹介します。

typeの使い方

まずはもっとも使う引数の定番typeです。
これはエンティティをタイプとして認識し呼び出すコマンドの対象を限定する引数です。
さっそく記入例を見てみましょう。

記入例
/kill @e[type=Player]


 typeで指定されるエンティティの頭文字は必ず大文字です。
 記入例/kill @e[type=Player]ではプレイヤーが全員キルされます。つまり、/kill @aと同じです。

記入例
/kill @e[type=!Player]
/kill @e[type=!Zombie]

@e[type=!Player]ではプレイヤー以外がキルされます。
Zombie以外をキルしたい場合の指定も可能です。同様に=のあとに!を付けることで指定できます。


思わぬものもEntity

記入例
/kill @e[type=Arrow]
/kill @e[type=Snowball]

記入例では矢と雪球をキルします。
実際に弓を頭上に放った後このコマンドを実行すると矢がキルされます。雪球も同様です。
ほかにも防具立て(ArmorStand)もエンティティに含まれます。

次: 【コマンドブロック】セレクタと引数の使い方(4)「r、cの使い方」【マインクラフト】
前:【コマンドブロック】セレクタと引数の使い方(2)「引数って何?引数は何があるの?」【マインクラフト】


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

【コマンドブロック】スプラトゥーン制作日記(2)方角判定を組むpart2【マインクラフト】

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


出典:FXで有り金全部とかしてそうなゆかりん(im3465368)

圧倒的作業量に「ぬ」と「ね」の違いがわからなくなりそうです。
今日もスプラトゥーン作っていくよ!
今日も昨日と変わらず方角判定を組んでいます。1時間回路の縮小を考えていました。
処理内容はチャージャーとローラーになります。

縮小した結果(回路)と同化しながらFX顔のゆかりさん・・・。

上から見るとこんな感じ

もちろんワールドエディタを使っていますが問題はそこではなく手作業部分のコマブロです。


一組の半分側にREDPLAYER1を貼り付けた後エディタで反対側にコピペする・・・。
REDPLAYER1~8、BLUEPLAYER1~8で16人分です。一人8個で16人なので128個手作業
(あと2ページほど続いてます・・・)

回路の縮小について少しだけお話します。上からみると信号15を使いきって紫まで伸ばしています。
ほんとはオレンジの階層と同じものを積み上げる予定でしたが何とか縮小に成功!
これでfillクロックの赤石数を半分にすることができました。「これが一番小さいと思います」



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

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

【コマンドブロック】セレクタと引数の使い方(2)「引数って何?引数は何があるの?」【マインクラフト】

引数とは?

 引数とはセレクタの一部ですが、ここではセレクタと引数をわけて考えます。
前回の記事では@p、@a、@r、@eこれらがセレクタだと解説しました。
中でも@eは全てのエンティティを選んでしまいます。そこでセレクタの制限を行うものが引数です。
wikiでは<プレイヤー名>とある所はセレクタと引数を用いることが出来ます。

記法
/kill <プレイヤー名>
記入例
/kill この箇所にセレクタと引数が使えます

引数の種類

 引数はたくさんありますが、大きく分類分けすることで把握しやすくなります。

1,座標・角度・範囲に関するもの
2,エンティティに関するもの
3,scoreboardに関するもの
4,プレイヤーに関するもの


 ミニゲームをマインクラフトで作る場合はこの引数を把握しておくのは必須です。
中でもよくつかうものはtype、c、r、score、teamぐらいでしょうか
これらの引数についても別記事で詳しく解説していきます。

次回からはよく使う引数を中心に解説していきます。

本日21時に続きが挙がります。

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



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

2015年9月16日水曜日

【コマンドブロック】スプラトゥーン制作日記(1)方角判定を組む【マインクラフト】

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

構想に一週間ぐらいでメインの必要なコマンドは把握しています。
先日、Japan Minecraft Server上位20位に入る鯖2つに色々お聞きして仕様も整いました。
いよいよスプラトゥーンをコマンドブロックだけでつくっていきます。
詳しい作り方は完成後になりますね・・・。
制作環境は1.8。MODはワールドエディタとコマンド補完MODの2つを入れています。

今回は方角判定のコマンドを組んでいきます。
8方角を2セット組んだ状態です。
これで一人分のチャージャーとローラーの処理を行うメイン部分のコマンドです。
仕様では16人なのでこれをあと16組み作ります・・・。
ワールドエディタでコマンドごと16組みコピペしてあっという間ですが、
1つでもコマンドを間違えると全部コピペしなおさないといけない面倒さがあります。

しかも日にちをまたいでの作業なのでこの間やったことを忘れるんですよね・・・。これが辛い。
これだけ準備するのに1時間かかりました(思い出し作業に50分ぐらいです)


 処理について・・・
 クロックで条件を満たしたプレイヤーの方角を判定。その結果をコンパレーターで検知。
検知先にはブロックデータを書き換えるコマブロを繋いで常時呼び出ししている処理内容を書き換えるという流れです。(なるほど、わからんだと思います)

 座標も決まってないので肝心のblockdataのところは組めていないという・・・。
 これはかなりの長丁場になりそうです。

ちなみに全方位を綺麗に8分割したコマンドを貼っておきます。

<!-方角判定-!>
north rym=160,ry=-160
北東 northeast rym=-155,ry=-115
east rym=-70,ry=-110
南東 southeast rym=-25,ry=-65
south rym=-20,ry=20
南西 southwest rym=25,ry=65
西 west rym=70,ry=110
北西 northwest rym=115,ry=155
/testfor @a[rym=160,ry=-160]
/testfor @a[rym=-155,ry=-115]
/testfor @a[rym=-110,ry=-70]
/testfor @a[rym=-65,ry=-25]
/testfor @a[rym=-20,ry=20]
/testfor @a[rym=25,ry=65]
/testfor @a[rym=70,ry=110]
/testfor @a[rym=115,ry=155]

これ汎用性高いのでどこでも使えますね~。
あとエディタつかってもblockdataの座標は全部手打ちなので辛いです・・・。



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

フィード