9/15からワールドクラフトストアが公開!自作のモデルをcluster内で使えるアイテムとして販売できます。誰でもチャレンジできるよう記事も公開しています。

数式をつかってオブジェクト配置を効率化しよう!

数式をつかって整列しよう

Unity 2021.2 バージョンから Inspector の機能が強化され、欄に数式を入力することでオブジェクトを整列できるようになりました。
今回は利用できるいくつかの数式とその実例を紹介します。

数式を用いて選択したオブジェクトの位置を変更する

まず最初に、数式を用いて選択したオブジェクトの位置を変更する方法を紹介します。

+入力した二項の加算を行う。
入力した二項の減算を行う。
*入力した二項の乗算を行う。
/入力した二項の除算を行う。
%入力した二項の剰余演算を行う。
^入力した項の累乗を計算する。
sqrt入力した項の平方根を計算する。

複数選択したオブジェクトを指定した範囲に均等に並べたり、ランダムに配置する

次に複数選択したオブジェクトを指定した範囲に均等に並べたり、ランダムに配置することができる機能を紹介します。

L(min,max)入力した最小値、最大値の間に等間隔に配置する。
R(min,max)入力した最小値、最大値の間にランダムに配置する。

三角関数を用いて配置する、関数を用いて端数処理を行い配置する

三角関数を用いて選択したオブジェクトを指定した範囲に配置したり、関数を用いて端数処理を行い配置することができる機能を紹介します。また、三角関数ではラジアンを用います。

sin入力した項の正弦を計算する。
cos入力した項の余弦を計算する。
tan入力した項の正接を計算する。
ceil入力した項以上の最小整数を計算する。
floor入力した項の以下の最大整数を計算する。
round入力した項を浮動小数点形式で最も近い整数に丸める。数が「.5」で終わる場合はふたつの整数(偶数と奇数)の中間に位置しているが、偶数を返す。

数値を上書きする

この関数は、選択しているオブジェクトの現在の値に数値を上書きすることができます。単体だけでなく複数のオブジェクトを選択している状態でも使用できます。

入力順序に注意が必要で、Inspector の欄に「=」を入力した後にカーソル移動をして四則演算子を入力して下さい。複数のオブジェクトを選択している際に先に四則演算子を入力してしまうと、選択しているオブジェクト全てに同一の値が入力されてしまいます。

オブジェクト名のインデックス(オブジェクト名の後ろについた番号)を利用する

ちょっとしたテクニックとして、オブジェクト名のインデックス(オブジェクト名の後ろについた番号)を利用した配置方法があります。

オブジェクトを複数選択し、「#」を数値の代わりに入力するとインデックス番号を利用することができます。また、オブジェクトを複製したときのインデックスの付け方を変更することができます。

Unity メニュー上部から「Edit > Project Settings > Editor」から Numbering Scheme を変更します。「Game Object Naming 」を変更するとインデックスが変わり、「Game Object Digit」を変更すると有効数字を増減させることができます。

Unity公式の番組でも詳しく紹介されています!

実践:一定範囲にものを散らす

ここまで紹介してきた数式入力を使ってオブジェクトの配置を効率化してみましょう!

まず最初に紹介するものは一定範囲にものを散らして配置する方法です。

  • ランダム配置を行う「R()」関数を用いて位置と回転の値を入力します。
    • 配置した後の散らばり具合が気に入らない場合は再度「R()」関数を入力すると、違った配置を行うことができます。

実践例:真っ直ぐな階段をつくる

次に階段のつくり方を紹介します。

  • まず Cube 1個の大きさを調節したものを用意します。
  • 階段の段数の分だけ「Ctrl + D」を入力して複製します。
  • 複製したものをすべて選択して、Position の Z にインデックスを利用できる「#」を入力します。
  • また Position の Y に「#*0.25」を入力します。
  • これで段差のある階段をつくることができます。

実践例:螺旋階段をつくる

最後に三角関数を利用したらせん階段のつくり方を紹介します。

  • 先程の階段と同じように Cube 1個の大きさを調節したものを用意します。
  • 「Ctrl + D」を入力して36個 Cube を複製します。
  • 複製したものをすべて選択して、Position の X に「5*cos(2*#*pi/36)」、Y に「#*0.25」、Z に「5*sin(2*#*pi/36)」を入力します。
  • また Rotation の Y に「-#*10」を入力します。
    • これでらせん階段をつくることができます!
  • Position の XZ 座標に入力した「cos関数」「sin関数」で Cube が円形に配置されています。らせん階段の半径を変えたい場合は Position の XZ 座標に掛ける整数の値を調節して下さい。

ものを色々配置する時に、ワールド制作の効率化に役立ててみてください!

記事をシェアしてワールド制作を盛り上げよう!