UnityでTransformの値を設定する方法【初心者向け】

Unityで【Transform(トランスフォーム)】の値を設定する方法を初心者向けに解説した記事です。ゲームオブジェクトの位置(Position)、回転(Rotation)、縮尺(Scale)を決めることができます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が1,000以上あります。

ゲームエンジンのUnityTransformの値を設定する方法を初心者向けに解説した記事です。

Transform(トランスフォーム)とは、ゲームオブジェクトの位置(Position)、回転(Rotation)、縮尺(Scale)を決めるコンポーネント(設定項目の集まり)で、全てのゲームオブジェクトが持つ最も基本的なコンポーネントになります。

 

なお、本記事はTechAcademyのUnity入門オンライン講座の内容をもとにしています。

 

田島悠介

ここではオブジェクトのTransform(トランスフォーム)を設定する練習をしてみよう。ゲームオブジェクト操作の一番の基本になるのでしっかりおさえておきたいね。

大石ゆかり

田島メンター!!Transformというのは何を指定するんですか~?

田島悠介

Transformは、オブジェクトの「位置」「回転」「縮尺」を設定するコンポーネントだよ。この値によって大きさや配置場所が決まるんだ。

大石ゆかり

なるほど、確かに大事な機能ですね。よろしくお願いします!

 

Transformの設定項目

Position

3Dのゲーム空間におけるゲームオブジェクトの位置です。
X, Y, Z軸それぞれの座標で設定します。

 

Rotation

ゲームオブジェクトのX, Y, Z軸に対する回転角度です。
度数法(度)で設定します。

 

Scale

ゲームオブジェクトの大きさの縮尺です。
X, Y, Z軸それぞれで設定し、「1」が元サイズになります。

 

では、実際にTransformを設定してみましょう。

 

事前準備

まずは、立方体(Cube)を作成します。

画面上部のタブで、[GameObject]→[3D Object]→[Cube]と選択して「Cube」を作成します。

Hierarchyタブで「Cube」が作成されたことを確認できます。

 

作成した「Cube」を原点に配置してみましょう。

[Inspector]タブの[Transform]で、[Position]の[X]、[Y]、[Z]の値を全て「0」に設定します。

([Inspector]タブには、[Hierarchy]タブで選択されているオブジェクトの設定項目が表示されます。)

 

次に、ライトを作成します。

画面上部のタブで、[GameObject]タブから、[Light]→[Directional Light]と選択します。

Hierarchyタブで「Directional light」が作成されたことを確認できます。

 

作成したライトは設定を変更しなくてもかまいませんが、今回は座標を「0,2,0」(先程作成したCubeの真上)に設定します。

 

Transformの設定には、シーンビュー([Scene]タブで表示されるウインドウ)を使うと便利です。

HierarchyタブでCubeを選択して、[Edit]→[Frame Selected]を選択すると、選択したオブジェクト(今回の場合はCube)がシーンビューの画面に収まるように調整されます。

(シーンビュー上にマウスカーソルを乗せ、キーボードのFキーを押すことでも同様の操作になります。)

 

シーンビューでCubeの全体がカメラに収まるように移動します。

 

それでは、シーンビューの基本操作を解説します。

カメラを自由に動かして、オブジェクトを好きな角度から見ることに慣れてみましょう。

 

まずは視点の並行移動です。

マウスの真ん中ボタン(ホイール)をクリックしながら動かすことで、カメラを並行移動することができます。

多くの場合この操作でカメラのおおまかな位置を調整します。

次に注視点の操作です。カメラの位置は変えずに見ている方向だけを変えます。

マウスを右クリックしながら動かすことで、注視点を動かすことができます。

キャラクターなどを見るには向いていない操作ですが、広いマップの中を見回したりする場合に使用することが多い操作です。

次は視点の移動です。カメラが見ている位置は変更せずに、カメラの位置だけを移動します。

Windowsの場合はキーボドの「Alt」Macの場合はキーボードの「Option」を押しながら、マウスを左ドラッグします。

キャラクターなどのオブジェクトを色々な方向から確認する際に多様する操作です。

最後に、カメラの前後操作です。

マウスホイールを上下に操作することで、カメラを前後に移動することができます。

ズーム倍率を変えているのではなく、実際にカメラが前後に移動しています。

 

シーンビューでの基本操作は以上です。

もう一つ、シーンビューの右上隅にあるシーンギズモ(Scene Gizmo)を見てください。

シーンギズモの下に[Iso](等角法モード)と表示されている場合は、ギズモ中心の四角をクリックして[Persp](遠近法モード)に切り替えます。
(どちらもTransformの設定には影響しませんが、今回は[Persp]を使用します。)

0082

 

以上で準備完了です。

ゲームを再生してみましょう。

0092

画面の中ほどに「Cube」が表示されます。

再生画面であるゲームビュー([Game]タブのウインドウ)を独立させておくと、作業がしやすくなります。

[Game]タブをドラッグ&ドロップすると、別ウインドウで表示させることができます。

 

田島悠介

Sceneタブでの基本的な操作をしっかり覚えておこう。これによって色々な角度からオブジェクトの状態を確認することが可能になるよ。

大石ゆかり

見たいものの近くに移動したり、オブジェクトを上や下から見たりもできるんですね。

田島悠介

それではTransformの設定を行ってみよう。各種値を変更して、画面内でどのように変わるか見てみるよ。

 

[PR] Unityを使ったゲーム開発で挫折しない学習方法を動画で公開中

Positionの設定

まずは、Position(座標、位置)を設定しましょう。

「Cube」のX座標を「1」にします。[Hierarchy]タブで「Cube」を選択してください。

そして、[Inspector]タブの[Transform]で、[Position]の[X]の値を「1」にします。

010

 

シーンビューで「Cube」がX軸の正方向(シーンギズモの[X]の方向)に移動しました。

ゲームビューでも右に移動しています。

011 012

[Y]、[Z]の設定についても同様です。

マイナス値を設定すると、逆方向に移動しますので、それぞれ確認してください。

 

Positionの設定には、ツールを使用することもできます。

Unityの左上隅にある下図のアイコン(Translateツール)を選択してください。

このツールはキーボードの左上の「Q,W,E,R」にショートカット対応しています。

Translateツールは「W」キーを押すことでも選択できます。

013-2

 

この状態で「Cube」を選択すると、シーンビュー上で「Cube」に赤青緑の矢印が表示され、編集可能な状態になります。

赤矢印をクリックした状態で、マウスを動かしてみましょう。

0141

「Cube」をX軸方向にのみ移動させることができます。
(Y軸、Z軸方向についても、それぞれの矢印から同様に操作できます。)

また、シーンビュー上で「Cube」をクリックしてマウスを動かすと、軸を固定せずに移動させることができます。

 

 

Rotationの設定

「Cube」の位置を原点に戻し、Rotationを設定しましょう。

[Hierarchy]タブで「Cube」を選択します。

そして、[Inspector]タブの[Transform]で、[Rotation]の[X]の値を「30」にします。

015

 

シーンビューで「Cube」が回転したことが確認できます。
(X軸の正方向を軸にして、反時計回りに回転します。)

 

ゲームビューでは、カメラがZ軸上の負方向に設置されていますので、「Cube」は上向きに回転したように見えます。

016 017

 

[Y]、[Z]の設定についても同様です。

マイナス値を設定すると、逆方向に回転しますので、それぞれ確認してください。

 

Rotationの設定には、ツールを使用することもできます。

Unityの左上隅にある下図のアイコン(Rotationツール)を選択しましょう。

ショートカットキーでは、「E」が該当します。

018

 

この状態で「Cube」を選択すると、周囲に球状のラインが表示されました。

「Cube」をクリックしたままマウスを操作すると、回転させることができます。

0191

 

 

Scaleの設定

「Cube」の回転を元に戻し、Scaleを設定しましょう。

[Hierarchy]タブで「Cube」を選択します。

そして、[Inspector]タブの[Transform]で、[Scale]の[X]の値を「2」にします。

020

 

シーンビューで「Cube」の大きさが、X軸方向に2倍となりました。

ゲームビューでも、大きく表示されるようになっています。

021 022
[Y]、[Z]の設定についても同様ですので、それぞれ確認してください。
(「1」以下の値にした場合は小さくなります。)

Scaleの設定には、ツールを使用することもできます。

Unityの左上隅にある下図のアイコン(Scaleツール)を選択しましょう。

ショートカットキーは「R」です。

023

 

この状態で「Cube」を選択すると、シーンビュー上でScaleを編集可能な状態になります。

Positionの設定で使用したTranslateツールと同様に操作できるので、試してみてください。

0242-1

 

 

親子関係にあるゲームオブジェクトの設定

これまで説明したのは、親となるゲームオブジェクトがない場合の設定についてです。

ゲームオブジェクトは入れ子(親子関係を設定)にすることができます。

親オブジェクトがいる場合、Transformの値は、親オブジェクトとの相対値として処理されます。

 

Positionを例に説明します。[Cube]をもう一つ作成し、名前を「CubeChild」としてください。

設置位置は原点にします。

025

 

そして、[Hierarchy]タブで、「CubeChild」を「Cube」へドラッグ&ドロップします。

027

「Cube」の横に「▶︎」が表示され、展開すると「CubeChild」が含まれています。

それぞれ「Cube」を親オブジェクト、「CubeChild」を子オブジェクトと呼びます。

 

ここで、「CubeChild」の[Position]で、[X]の値を「2」にしてください。

028

 

「CubeChild」がX軸方向に「2」だけ移動します。

029

 

その後、「Cube」の[Position]で、[X]の値を「1」にしてみましょう。

030

「Cube」と「CubeChild」が同時にX軸方向に「1」ずつ移動します。

031

「CubeChild」の[Position]の値は、本来であれば[X]が「3」になりますが、「2」と表示されています。

これをローカル座標(Local Coordinates)と呼び、子オブジェクトの[Position]はローカル座標で表示されます。

この場合、「CubeChild」のグローバル座標は、[X]が「3」になっており、ローカル座標は[X]が「2」になっているといえます。
(RotationやScaleの設定についても同様です。)

 

今回の記事は以上です。

 

田島悠介

親子関係を使うと、複数のオブジェクトを同時に操作することができるよ。

大石ゆかり

左上のツールでオブジェクトを操作すると、Transform内の該当の値が変化しているのが見えますね。

田島悠介

そうだね。Translateツールなどの操作中は、その操作に応じた値が表示されるんだ。自分のやりたい動作を設定する際の参考にしよう。

大石ゆかり

分かりました。ありがとうございます!

 

さらにUnityを使いこなしたい場合はUnityでmaterialを追加して色を変更する方法も合わせてご覧ください。

[お知らせ]TechAcademyではオリジナルゲームアプリが公開できるUnityオンラインブートキャンプを開催しています。現役Unityエンジニアのサポートで効率的に学びたい場合はご検討ください。