モディファイアー
Studio の中でオブジェクトの形を変えます。ある形を別の形でくり抜く、角を丸める、厚みをつける、回転させてリングにする、なめらかにする、平面を丘のある地形にする、といったことができます。
モディファイアーは、オブジェクト自身のジオメトリには手を加えません。設定を変えたり、オフにしたり、削除したりすることは、いつでもできます。形が決まったら、モディファイアーを適用して、その形を確定できます。
モディファイアーを追加する
- 形のあるオブジェクトを選択します。基本図形か、読み込んだモデルです。
- インスペクターで + new component をクリックし、Modifiers を選びます。Geometry グループにあります。
- Add modifier をクリックして、モディファイアーを選びます。
モディファイアーは必要なだけ追加できます。上から下へ順に働き、それぞれが 1 つ上のモディファイアーがつくった形を変えます。矢印でモディファイアーを上下に移動し、チェックボックスで一時的にオフにできます。
| モディファイアー | 働き |
|---|---|
| Boolean | 別のオブジェクトと組み合わせます。2 つを結合する、一方を他方でくり抜く、重なる部分だけを残す、のいずれかです |
| Bevel | 鋭い角を丸めます |
| Extrude | 表面を押し出して厚みをつけます |
| Revolve | 形を軸のまわりに回転させます。ボックスはリングになります |
| Subdivide | すべての面を細かく分割し、形をなめらかにします |
| Terrain | 表面に丘や谷をつくります |
モディファイアーが変える範囲
Apply to で、スタック(重ねたモディファイアー全体)が何を変えるかを決めます。
- This object and everything inside it — オブジェクトと、その中にあるすべてのオブジェクトを、1 つのまとまりとして変えます。これがデフォルトです。読み込んだモデルに使います。モデルのパーツは、モデルの中にあるオブジェクトだからです。
- This object only — オブジェクト自身の形だけを変えます。
空のオブジェクトには、それ自身の形がありません。中にあるものの形を変えるには、This object and everything inside it にしてモディファイアーを追加します。
Boolean
With object で 2 つ目のオブジェクトを選び、それをどう使うかを選びます。
| 操作 | 結果 |
|---|---|
| Union | 2 つの形を 1 つにします |
| Subtract | このオブジェクトから、もう一方の形をくり抜きます。穴、窓、溝などに使います |
| Intersect | 2 つが重なる部分だけを残します |
- Hide that object は 2 つ目のオブジェクトを非表示にして、結果だけが見えるようにします。デフォルトでオンです。
- Together with the objects inside it は、2 つ目のオブジェクトの子も使います。モデルではオンのままにしてください。モデルのメッシュは、その子だからです。
2 つ目のオブジェクトは、ふつうのオブジェクトのままです。移動したりサイズを変えたりすると、結果もそれに合わせて変わります。
窓をつけたい場所に、壁を突き抜けるようにボックスを置きます。壁に Boolean を追加し、Subtract を選んで、そのボックスを指定します。ボックスを動かすと、窓も動きます。
Bevel
| エディターでの名前 | フィールド | 役割 |
|---|---|---|
| Width | width | 丸みの幅 |
| Segments | segments | 丸みのなめらかさ。1 なら平らな面取りに、それより多いと丸い角になります |
| Sharper than | angle | この角度より鋭い角だけを丸めます |
| Keep roundings from overlapping | clamp | 2 つの丸みがぶつかる場所で、幅を制限します |
Extrude
| エディターでの名前 | フィールド | 役割 |
|---|---|---|
| Direction | direction | Along the normal は各面をまっすぐ外側に押し出し、Along X、Y、Z はすべてを同じ方向に押し出します |
| Depth | depth | 押し出す距離。マイナスの値にすると逆方向に押し出します |
| Segments | segments | 新しくできる側面を何段に分けるか |
| Centred | center | 両側に、深さの半分ずつ伸ばします |
平らな形が立体になります。平面は厚い板に、円はコインになります。
Revolve
| エディターでの名前 | フィールド | 役割 |
|---|---|---|
| Axis | axis | 回転の軸。X、Y、Z のいずれか |
| Angle | angle | どこまで回転させるか。1 回転させると形が閉じます |
| Segments | segments | 回転部分のなめらかさ |
| Off axis | offset | 軸がオブジェクトの中心からどれだけ離れているか |
基本図形はそれ自身の軸の上にあるので、Off axis は 1 から始まります。つまり形は、すぐ横にある線のまわりを回転します。こうして回転させたボックスは、リングになります。
Subdivide
| エディターでの名前 | フィールド | 役割 |
|---|---|---|
| Levels | levels | すべての面を何回分割するか。1〜6 |
| Smooth | smooth | 分割しながら形を丸めます。オフにすると、面を増やすだけになります |
レベルが 1 つ上がるごとに、面の数は 4 倍になります。たいていは 2 レベルで十分です。
Terrain
Terrain は、表面に丘や谷をつくります。大きな平面は風景に、球は惑星になります。
同じ設定のものが、2 つの形で用意されています。
- Terrain モディファイアー。スタックの 1 ステップとして使います。
- Terrain コンポーネント。Geometry グループにあります。起伏だけが必要なときに使います。
| エディターでの名前 | フィールド | 役割 |
|---|---|---|
| Relief · H | amplitude | いちばん高い丘の高さ(メートル) |
| Relief · F | frequency | 1 メートルあたりの丘の数 |
| Relief · D | detail | 最初に表面をどれだけ細かく分割するか。シンプルな形にも細かいディテールがつきます |
| Noise · O | octaves | 上に重ねる、より小さなでこぼこの層の数 |
| Noise · P | persistence | 小さな層それぞれの強さ |
| Noise · L | lacunarity | 層ごとにどれだけ小さくなるか |
| Noise · # | seed | 別の地形を選ぶための数値 |
| Direction | direction | Along the normal は各面から外側に、From the centre は惑星のように中心から外側に、Up はまっすぐ上に伸びます |
| Sharp ridges | ridged | 丸い丘の代わりに、鋭い尾根をつくります |
| Sea | sea, seaLevel | その高さより低いところが、すべて平らな水面になります |
シードには小数も使えます。整数と整数の間では、地形がなめらかに変わります。シードをアニメーションさせると、表面が動きます。
モディファイアーを適用する
モディファイアーの Apply を押すと、そのモディファイアーと、その上にあるすべてのモディファイアーが確定します。その結果がオブジェクトのジオメトリになり、これらのモディファイアーはスタックから外れます。新しいジオメトリは、読み込んだモデルのメッシュと同じように、プロジェクトのアセットに保存されます。
画面上では何も動きません。元に戻す操作 1 回で、すべて元どおりになります。
形が最終的に決まったら適用しましょう。プレイヤーが形をつくる必要がなくなるので、プロジェクトが速く開くようになります。
結果のサイズは 32 MB までです。それより大きい場合は、Studio がそのことを知らせ、モディファイアーはスタックに残ります。
知っておきたいこと
- モディファイアーは、公開したプロジェクトでも、ブラウザとアプリの両方で動きます。
- プレイヤーは、プロジェクトを開くたびに形をつくります。何レベルもの分割や、細かいモデルへのブーリアンのような重いスタックは、スマートフォンでの起動を遅くします。適用するか、軽く保ってください。
- スケルトンのあるアニメーションモデルは変更されません。
開発者向け
モディファイアーは GeometryModifiersComponent です。modifiers が順番どおりのリストで、scope は hierarchy か self です。各モディファイアーには、type(boolean、bevel、extrude、revolve、subdivide、terrain)、enabled、上の表にあるフィールドがあります。ブーリアンの target はもう一方のオブジェクトの ID で、hideTarget と targetChildren がそのスイッチです。角度はラジアンで指定します。Terrain コンポーネントは TerrainComponent で、モディファイアーと同じフィールドを持ちます。コンポーネントを参照してください。
次へ: コンポーネントリファレンス — すべてのコンポーネントとそのフィールド。