icon
icon

ゲーム開発で役立つ!Unityでオブジェクトを回転させる方法【初心者向け】

初心者向けにUnityでオブジェクトを回転させる方法について解説しています。実際にソースコードを書きながら説明しているのですぐ分かるでしょう。ゲーム開発をする上でオブジェクトの回転は必須の知識になるので、ぜひご覧ください。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

オブジェクトの回転は、ゲームのいたる所で使用されます。

Unityでは、回転を簡単に使用できるように便利な機能がいくつも存在します。

今回は回転させるためにどのような方法があるのか、そして実際に回転させる方法を解説していきます。

 

目次

1時間でできる無料体験!

 

田島悠介

今日はオブジェクトを回転させる方法を実践してみよう。

大石ゆかり

田島メンター!!今回は何という機能を使うんですか〜?

田島悠介

いくつかの方法があるけれど、ここではtransform.Rotate()を使った手順を実際にやってみよう。

画面に立方体のオブジェクトを追加してそれに適用するよ。

大石ゆかり

はい!

 

オブジェクトを回転する主な方法

さっそく、オブジェクトを回転する主な方法を見てきましょう。

今回は、3つの方法を紹介します。

  1. transform.Rotate()
  2. rigidbody.angularVelocity = new Vector3()
  3. Assetsを使用

それぞれ詳しく見ていきましょう。

1. transform.Rotate()

Unityにおいて、最も一般的な回転方法です。

私たちにも身近なX軸、Y軸、Z軸を意識できる回転方法になります。

少し専門的な言葉を使うと、オイラー角を利用した回転になります。

記述するコードの例を挙げると、transform.Rotate(new Vector3(0,0,30))です。

このコードだとZ軸を中心に30度の回転をします(向かって時計回りに30度)。

この方法は直感的な数値設定で制御できるので、回転角がわかりやすいという利点があります。

 

2. rigidbody.angularVelocity = new Vector3()

こちらは、Rigidbodyを使用した回転方法です。

実は一つ目に挙げたRotate()を使用する方法だと、思わぬバグが発生する場合があります。

主に回転を繰り返し行っていると、正しく回転できなくなるバグです。

 

その解消策として、RigidBodyを使用した回転を行います。

この関数はオブジェクトの回転速度そのものを変更します。

そのため一度回転速度を設定すると、速度をリセットするまで回転し続けます。

 

3. Assetsを使用

Assetsを使用して回転させる方法です。

よく使用されるのはitweenというAssetsです。

itweenは回転の他に、位置の変更や透明度の変更などを簡単に行う事ができます。

 

ただしitween専用の学習が必要になります。

本記事では割愛しますので、気になる方はぜひ調べてみてください。

その他にも方法は存在しますが、よく使用されるのはこの三つの内どれかです。

 

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

実際に回転させてみよう

今回は最も一般的な、「transform.Rotate()」を使用した回転方法を試してみましょう。

この方法を利用して、回り続ける四角のオブジェクトを作成してみます。

まずCubeを作成します。

回転の動きをわかりやすくするため、xのScaleを4に設定します。

unity_06_02

RotateCubeを言うスクリプトを作成し、以下のコードを記入していきましょう。

using UnityEngine;
using System.Collections;

public class RotateCube : MonoBehaviour {

    void Update () {
         transform.Rotate(new Vector3(0, 0, 5));
    }
}

毎フレームごとに、Z軸を中心に5度ずつ回転させます。

スクリプトをCubeに追加して実行すれば、回転し続けるCubeを確認できます。

unity_06_02

 

田島悠介

オブジェクトへのスクリプトの追加方法は覚えているかな?

大石ゆかり

「Project」の「Assets」からスクリプトを作成して、「Hierarchy」か「Inspector」タブにドラッグ&ドロップでしたね。

田島悠介

その通り!エラーが出る場合はファイル名とクラス名の一致などをもう一度確認してみよう。

 

まとめ

今回は、Unityでの回転の基礎を学びました。

回転はプレイヤーや敵などを動かすのに使用するだけではなく、UIを華やかにしたり、ゲームに変化を与えることができます。

Unityでは回転の方法がいくつかあり混乱するかもしれません。

ですがゲーム作りを繰り返すうちに、最適な方法を選択できるようになります。

焦らずに、まずはtransform.Rotate()を使用して回転させてみましょう。

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

執筆してくれたメンター

mentor-s

専門学校卒業後、4年間ゲーム開発会社でプログラマーを担当。

現在は講師兼個人ゲーム開発者。

ゲーム開発ではプログラミングだけでなく、画像・音楽・モデリングなどすべて行う。

 

田島悠介

ゲームを再生すると、画面ではどうなったかな?

大石ゆかり

オブジェクトがその場でくるくる回転しましたね!

田島悠介

例えば「RigidBody」の「Use Gravity」と一緒に使うと、オブジェクトは回転しながら落下してくるよ。

他の物理属性と組み合わせたりして色々試してみよう。

大石ゆかり

なるほど、分かりました!

 

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する