2017年3月14日火曜日

MachineCraftスクリプト機能(C#)の基本(その4):モデルの情報を得る

前回トピックでは、AutoPilotの立ち位置について述べた。
今回では、AutoPilotでモデルの情報を確認してみようと思う。

今回のモデルの情報というのは、モデルに含まれたCoreブロックから見た位置,
速度,傾き,方角などの空間的な情報のことを示す。実際に得られるデータは
これだけではないが、基本ということでこの4つに絞りたい。
興味があれば、_scriptフォルダのLua解説テキストあたりを参考に
調べてみるとよい。

モデルの位置や速度,傾き,方角は次の関数から得られる。参照元は
Lua解説テキストの60行目あたり。ほぼLua解説テキストからの抜粋である。


前回(その2)と同じ要領でC#スクリプトを組み、モデルに適用する。

速度に関しては、x,y,z方向への速度から絶対速度を求めただけである。
実をいうと、GetSpeed関数もあるが、今回はUnity3D謹製のクラスおよび
関数が使えることも示したかったため、あえてGetVelocity関数を使っている。

結果としてはこんな感じになる。






ここで勘のいい人であればあることに気づく。
右下のメータと速度が一致していない。わざとらしく単位を付けて申し訳ない。

ここで大事なことは、スクリプト中で使われる関数の出力はゲームにて表示される
パラメータと一致するとは限らないということだ。筆者はまだ確認できていないが、
位置もなんとなく違う気がする。

以上のことから、今後パラメータを使ってモデルの動きを変えていく際には、
Print関数やLog関数を活用して頂けると筆者は幸いである。

次回は、モデルを動かす事に関するトピックを述べていきたい。

2 件のコメント:

  1. C#分からなくて困ってたので助かります。

    返信削除
    返信
    1. コメントありがとうございます。

      C#の言語仕様に関しては他文献がある故に省略しておりますが、
      なるべく動かして理解できるスクリプトの書き方を提案して
      いきます。

      削除