先日は、

 

■ マインクラフト : 先日作った物のこと 【 クリエイティブ@建築&コマンドなど 】

 

でコマンドとストラクチャーブロックを使ったのですが、ここで、オブジェクトの生成や複製で座標を使いました。そこで、今回は、座標について書こうかなと思います。

 

 マイクラでは、現在地を表示すると、3軸のブロックの座標が表示されます。これは、原点から±で表示されるのですが、エディションでそれぞれ表示の仕方が異なります。

 

 JAVA EDITIONの場合、【 F3 】キーででバグモードになるので、マシンスペック(というか、配信者の人は色々な物を表示しているので、結構低い回ぞその場合が多いです。動画とかだと、キャプチャーで録画するので違いますが、配信の内容もゲーム画像と音声だけの条件と、TLの海では負荷が違いますし、これにアバターが入るとさらに重たくなるので、配信者の方のマシンスペックと言うのは。ゲーミング構成なんですが、かなりハイスペックになっています。その為配信のスタイルによって結構負荷が違てきます。)も見ることができますが、他のエディションでは確認ができない、バイオームや方角や他の情報なども表示されます。その時に、解像度なども表示されますが、ゲーム中に常にそう言った情報を表示できるようになっています。あと、このエディションだけ、使っているMODも確認できます。

 

 JAVAEDITIONですが、マイクラでMODを動かすときに仲介ソフトを使用するのですが、それがfogeなどになります。これを使わないとMOD

は動かないので、基本的に、マイクラとfogeとMODを使うことで色々な処理ができるのですが、座標関連はゲーム中に表示と非表示にすることができますし、明るさなども確認できます。ゲームエンジンを使ってゲームを作る場合、パフォーマンスモニターのような物を使うのですが、変数の推移などもおかしくなっていないか確認できた方がいいので表示しますが、そうしたも物が羅列になって表示されているのがでバグモードです。Blender 2.79bまでは、ゲームエンジンを実装していましたから、ゲーム時のマシンの負荷(の調整ですが、処理が追い付いていて、演算の総数で無理が来ている場合、演算のタイミングをコントロールして、同時にかかる負荷を減らす事でパフォーマンスがあくぁる事もあるので、ウインドウ内で表示している自動処理で動いているオブジェクトで負荷が上がっている場合、演算のタイミングを個別に変更したり、システムないので演算タイミング設定してそれを基準に動かすとミリ秒単位で恐ろしい数のの演算が発生する状態よりは負荷は減ります。この時に、必要なfps数が出る必要はありますが、演算のタイミングも含めて考えると、パフォーマンスの調整ができます。)を見る時にでバグモードの表示を行うことでどう言った状態なのかの確認が可能でしたが、それと同じように各条件が表示されるようになっています。

 

 先日来た、ミツバチのアップデートのBuzzy Bee UPDATEでPS4もコンソール版ではなく、統合版(BE)になったので、ワールドが地球の表面積の8倍にまで拡大しました。

 

 

 

これは、

 

 

   X : -29,999,999 ~ 29,999,999

   Y : 0 ~ 255

   Z : -29,999,999 ~ 29,999,999

 

 

となっています。統合版は、チートコマンドをオンにした状態でコマンドを使うと座標の表示と非表示が可能ですが、基本的にワールド生成時のオプション画面で変更するような流れになっています。

 

 また、JAVA EDITIONのように出バグモードはありませんから、他の情報は全く表示されないので、座標の変化と太陽の付きの向きだったり、ヒマワリを植えた時の方角(東を向きます)から判断することになります。

 

 その為、位置は確認できますが、方角やバイオームなどは確認できません。PS4は最後まで残っていたコンソール版になりますが、これについては、地図で方角の確認をするような仕様になっていました。これはコンソールゲーム機全般が4JSTUDIOの開発でしたが、このエディションでは、地図を開くと方角の確認が可能になっていました。

 

 基本的に、方角というのは、ブロックと言う特定の範囲を用いた配列(ブロックなので、3つの座標を持つ8つの頂点で構成されたもの)の構造物が、ラスターグラフィックのピクセルのように座標配列がされる仕様(ですが、マイクラはローグ系のゲームのようにワールドの自動生成型の物なので、決まった形のワールドと言うわけではありません。その為、ゲーム開始時のシード値を元にワールド生成の条件が決まるので、シード値の入力なしの条件でのランダムシードだとどこに何があるかは実際に歩いて採掘をしてみない事には解りません。この辺りの内容は、体験版のワールドは誰がやっても同じ場所に同じものがあるので、プレイの仕方で変わってくるのですが、基本手Kにワールド生成時にどんな場所でどう言った構成になるのかはスタートしてみないと解りません。この辺りは、不思議なダンジョンシリーズも同様ですが、自動ダンジョン生成型のゲームだとそう言った仕様になります。マイクラも自動生成なのでそういった仕様のゲームになります。)がされています。それが、整数管理の数列として3次元空間で存在しています。

 

 ゲーム開始時だと基本的に原点となる0,0,0にスポーンすることになりますが、

 

 

のようにスタート地点でリスキルが確定している場合、プレイする前に何が何だかわからないうちに終わってしまうので、そうならない為に周辺でスポーン可能な場所にスポーンすることになります。その為、こう言ったワールドだと、周囲の陸地になるので、XとZの座標が0,0ではない場所からスタートすることがあります。

 

 

イクラの座標                     

 

 統合版(BE)だと、ワールド生成時のオプションで画面左上に座標が表示されますが、高さが高くなるとY座標の数値が増え、下がると0に近づきます。ただし、サバイバルのワールドでは、岩盤を超えることはできませんから5辺りで地下が0よりも高い場所になる場合があります。また、高さには平面空間よりも低い高さ制限が設けられているので、その範囲で指定することになりますが、高さと異なり、平面軸は数列のようにプラスとマイナスが存在します。

 

 

 

の場所から、

 

 

のように伸ばすと、Xの数値はマイナスにシフトし、

 

 

のように伸ばすと、Yがマイナスに推移します。これと同様に、反対側に

 

 

のようの伸ばすとXがプラスに推移し、

 

 

のようにすると、Yがプラスに推移します。これが3DCGでも存在する座標の変化になりますが、グラフィックの場合だと、これが2軸か3軸で構成されており、デジ絵を描く場合やフォトレタッチで使用するラスターグラフィックの場合だと、これがピクセルの配列で座標が構成されています。動画の場合、画像に時間軸が付いたになるので、制作時にベクターーグラフィックで作成しても動画ファイルとして書き出した段階でラスターグラフィックでの形態にして出力します。

 

 3DCGやドロー系ツールやCADの場合、座標間の曲線補完などを行いますから、これは超転換を数式の値で保管する処理が行われています。その為、数学のグラフと全く同じ処理でラインや形状が生成されています。また、こうした処理の場合、CADのように重心から円を生成した場合の重心の誤差がなかったり、正円の正確さが正しい物を使う用途(製造の場合、円に見えるでは困るので、精度が重要になります。)になりますから、グラフィックとは異なるので倍精度浮動小数点演算を使用します。これは3DCGも同様ですが、単精度のとは桁数が倍違いますから、小数点以下の桁数において7桁くらい違ってきます。その為、CAD用途で、数十メートル先にあるコンビニと言えまで距離と東能登岬からからユーラシア半島までの距離が同じになるような精度だと相当問題がありますから、製造において当たり前に用意すべき精度というのは倍精度やそれ以上で行ったほうがいいのは確かですから、用途でハードウェアの構成も変わってきます。この時に、倍精度での処理に特化したツールとそれに合わせたチュ-ニングが行われたGPUを用いると処理能力が高くなるのですが、この設定が行われている製品が、QuuadoやRADEON Proになります。GL性能や倍精度の処理の性能が必要な場合、こうした製品の上位モデルを選択することになりますが、このシリーズだと、Photoshopを使った場合、10bit RGB表示(ソフトウェアでの対応ではなく、ハードウェアなので処理はGPUが担います。)が可能になるのと、Adobe RGBのような広い色空間(と言っても、今後は映像でITU -R BT.2020の色域でHDRのコンテンツが当たり前になるので、現在のsRGBやREC.709のようにこの色域も狭く感じるかもしれません。)をハードウェアレベルでサポートしているので、ソフトウェアエミュレーションのような処理が発生しないので、対応したハードウェアで揃えて設定をAdobeRGBに設定すれば、その色で出力できます。これは、ソフトウェア、GPU、ディスプレイの三つがその条件をクリアしている事が前提で、10bit対応である事も含まれますが、こうした違いがあります。グラフィックはグラフと同じなので、平面だと算数でも出てくる方眼紙に描くグラフと同じで、三次元空間だとこれに高さが加わったものになります。Blenderの場合だと、これが算数のグラフにZの高さが加わったような軸の設定がされていますが、3DCGの場合だと、奥と手前に移動する軸がZ軸で、横の軸がXで高さの軸がYになります。つまり、カメラビューの場合だと、カメラの視点で固定されている場合、そのカメラで表示しているスクリーンの縦と横がX軸とY軸になります。そして、デプスの変化に関連する奥行きの情報がZ軸になります。マイクラでも、この3軸の条件になっているので、Y軸が高さでZ軸は奥行きになっています。

 

 

■ マイクラでの座標の取得              

 

 JAVA EDITIONでは昔からできている事なので、コマンドを使う場合には普通に使用する機能になりますが、統合版(BE)でも少し前のアップデートで実装されている機能として、

 

【 カーソルの位置の座標を取得する 】 機能

 

があります。PS4も統合版になったので、当然、この機能も実装されているので、コマンドを使って座標指定の始点を決定する時に使用できます。まず、

 

 

のようにfillコマンドを打ち込みます。この時に、カーソルはオークの木材に当てています。これは、原点の0,0,0から上方向にブロックを積んだものになりますが、上の文字表記の座標の部分に、候補が出ていますが、ここで  【 ~ (チルダ) 】 と数字が出ています。~(チルダ)については、ローカル座標なので、プレイヤーのいる座標を基準にしたものになりますが、原点とは離れた位置に居るのと、赤いブロックの側に居ますから、これは、zはマイナス方向に居ることになります。Xはズレていないので、0になりますが、数値に原点の座標の0が表示されています。

 

 

のように記述を行うと、次に67と言う数値が出てきました。これはY軸の候補になりますが、カーソルの位置のオークの木材の座標が67の高さにあるので、候補として表示されています。そして、~を打ち込むと

 

 

のようにZ軸の候補が出てきます。オークの木材の座標は原点に高さを加えたものなので、Z軸も0になります。立ち位置がZはマイナス方向なので、この数値はカーソルの当たっているオークの木材の座標と一致しています。

 

 

■ ローカル座標(相対座標)の指定         

 

 /fillコマンドは、オブジェクトを敷き詰めるコマンドなので、始点と終点を決めて配置を行います。その為、ローカル座標を基準とした場合、

 

 

のようにすると、 【 ローカル座標から20離れた場所 】 のようになります。この設定が 【 ~20 】 になります。今回は、プレイヤーの位置を基準にしているので、始点が 【 ~~~ 】 になっていますが、この場所を、プレイヤーの目の前からにする場合、それに対応した軸に数値を加算することになります。Z軸のプラス方向が正面の場合だと、プレイヤーのひとつ前の座標だと、 【 ~~~1 】 になり、後ろの場合だと、この座標に-1を加算することで対応できますから、 【 ~~~-1 】 と言う表記になります。これを、始点と終点で指定することで、意図したサイズの物を生成できます。

 

 そして、座標指定後に、

 

 

のようにブロックの指定を行います。チャット欄ではスニペット対応なので、構文が間違っていなければ 候補が出るのですが、候補もTABキーで送る事ができるので、名称を忘れた場合、頭の一文字から検索することも可能ですし、文字数が増えると、候補も絞られ、上に表示されるものも少なくなります。今回は、 【 grass 】 を指定してみました。

 

 

すると、

 

 

のように下側に、広大な草ブロックに覆われた空間が生成されました。

 

 とりあえず、ローカル座標を指定することで、こうした処理を行うことも可能になりますが、指定した位置については、カーソルの位置からスタートできるので、そこから、前後に移動してみて、座標変化に合った数値分だけ数値を加算(マイナス方向だと符号付きの数値を加算します。)すると、意図した場所に形状を生成できます。

 

 

■ グローバル座標(絶対座標)の指定       

 

  更に、座標を高くして、コマンドを使うことにします。コマンドは前述のようにプレイヤーを基準としたローカル座標(相対座標)を使うことができますが、カーソルの位置を取得する際には数値が登場しました。これは、ワールドに固定された座標なので絶対座標になります。この数値でオブジェk津尾を配置することもできますが、その差異に、何処から始めるのか?を考えた場合に、現在は、カーソルの位置を基準に出来るようになっています。(コンソール版以外の全エディションなので、PS4版も今回のアップデートで、この機能が実装されています。)

 

 ちなみに、

 

 

のよう宇な感じで、同じ高さだと、始点と終点のY座標が同じで、平面の場合、面積ですから、始点のそれぞれの座標に増加分だけ数値を加算した物を終点の座標に指定すると、その範囲にオブジェクトを敷き詰めることができます。

 

 

ちなみに、

 

 

のように高さを加えると、

 

 

のような体積のあるものが作れます。JAVA EDITIONだと、中空の物を作れますが、基本的に、/fillで塊を作って、壁と床のサイズを引いた空間を指定して、/fillで座標指定をして、ブロック指定でairにすれば、中空にできます。

 

 

 マンドを再度呼び出して使用する       

 

 打ち込んだコマンドは、キービードの 【 ↑ 】 キー で前に打ち込んだものを呼び出せるので、この形状を作った、/fillコマンドを呼び出して、再利用することができます。この条件だと、/fillコマンドで生成したオブジェクトの座標がそのまま残っているので、これを、

 

 

のように/cloneコマンドで範囲の座標をそのまま使用して、配置先を指定すると、その形状のコピーができます。

 

 画像のようにコマンドを /fill から /clone に書き換え、配置先の始点を指定すると、

 

のように指定先に配置することもできます。また、 【 ↑ 】 キーで実行したコマンドを呼び出せるため、

 

 

のように配置する座標を変更すると、

 

 

のように一つのコマンドで広範囲におぶっジェクトを敷き詰めることができます。これはパターン化されたものの複製に使えるので、巨大な仕分け機のテストをする場合にモジュール化しておいて、その範囲を/cloneコマンドで座標指定をし、それをローカル座標指定で配置していくとプレイヤーの位置を基準に複製をしていくことが可能になります。

 

 

のような感じで、コマンドを指定すると、最初の範囲が反映されるので、クリエイティブでワールド制作をする場合には、/fillと/cloneコマンドを使うと作業が捗ります。ちなみに、コマンドですが、PS4版を含む統合版では、

 

 

のようにチートの実行の設定にすると、コマンドを実行できるようになります。あと、コマンドブロック使用時にはチャット欄でコマンドを打ち込んだ時のようなスニペット表示(候補が記述で絞込検索されて候補が出る機能)が実装されていませんから、コマンド入力時の入力支援機能は存在しません。

 


 ームパッドでの操作               

 

 Xbox Oneのコントローラー(は、現在はUSB接続ですから、そのままPCで使えます。)でもコマンドの入力は可能で、

 

  【 十字キーの→ 】

     チャットウインドウの表示

 

  【 十字キーの↑ 】

     チャットウインドウの表示

 

  【 Xボタン 】

     コマンドの実行

 

となっています。ちなみに、コマンドは文字入力になりますが、ソフトウェアキーボードが入っているので、それを用いて入力を行うことができます。とは言っても、キーボードも繋がるのでキーボード操作のほうがコマンドは打ち込みやすい気がします。

 


M inecraftのプレイ環境               

 

  ■ Core i5 650

  ■ H55M-Pro 

  ■ DDR 1333 2GBx2+1GBx2(DUAL CH)

  ■ Quadro K620(PCI Express x16 【GEN2動作】)

  ■ SATA HDD

  ■ WINDOWS 10 x64 (1909)

 

  ■ MINECRAFT BE 1.14.1 

 

    (*)ESBE_2Gを使用しています。

 

        シェーダーパックを使用していますから、バニラの

        画質ではありません。

 

     (*)このワールドは試験的なプレイをオンにしているの

        で通常のワールドとか挙動が違っている可能性も

        あります。      

 

 

【 画像制作で使用したソフト 】

 

  ■ PowerDIrector 16 Ultimate Suite

  ■ GIMP 2.10.12

 

  (*) ここでアップしているマイクラの動画の編集も

      この環境で行っています。

      (今回は動画はありませんが。。。)