ゲーム制作   Unity ソフトウエア 

Unity ソフトウエアでゲーム制作#1モグラたたき編(17.uGUI Canvas設定)

キャッチ画像モグラたたきuGUIとCanvas設定

本投稿は2024年9月時点の内容になります。アップデートにより変更となる場合があります。また環境によって違いがあると思いますのであくまで参考として、ご了承ください。

様々な書籍、ブログや動画を参考にさせていただきました。多すぎて一つ一つはtお紹介できませんが感謝です。

初心者の自分がUnity ソフトウエアでゲームを作ってみました。とりあえずシンプルなものということでモグラたたきに挑戦です。ゲーム作ってみるかという感じになったときに、いいタイミングで某ゲームのイベントシナリオ内ミニゲームにモグラたたきが実装されていたのでUIとかエフェクトとか、諸々の仕様をぱくって参考にして作ってみましたよ。様々なHowToの中の選択肢のひとつとして、同じ初心者さんの参考になればよいです。

\ チェック /

uGUI(unity Graphical User Interface)を使う

今回から数回にわたってUIづくりをしていきたいと思います。今回は基本となるCanvasの設定をしていこうと思います。

本記事のポイント

  • uGUIのCanvasキャンバスの設定を解説
  • Unity 初心者の5大ハマりポイント キャンバス大きすぎる問題を解決します。

Canvasの設置

Canvasとは

  • UI が配置、描画される抽象的な領域。すべての UI 要素は Canvas コンポーネントがアタッチされたゲームオブジェクトの子でなければなりません。
  • すべての UI 要素は Canvas コンポーネントがアタッチされたゲームオブジェクトの子でなければならない。

UIを配置する特別な領域って感じですね。早速Canvasを設置していきましょう。

Canvasの作成

  1. ヒエラルキー上で右クリック>「UI」>「キャンバス」をクリック
  2. 任意に名前を変更します。今回は「UI」にしました。

もうすこし見てみましょう

Canvasを見てみる

  1. ヒエラルキー上のCanvas「UI」をダブルクリックしてみましょう。視点が「UI」に移り、シーンが消えてしまいましたね。
  2. よく見ると左下の角に小さく見えています。
  3. ヒエラルキー上の他のゲームオブジェクトをダブルクリックしてみます。グッとシーンが寄りましたね。

「UI が配置、描画される抽象的な領域」ということですね。

これがUnity 初心者の5大ハマりポイント キャンバス大きすぎる問題です。

Canvasコンポーネントの設定

Canvasコンポーネントの設定を見ていきます。ここで一番大事なのはレンダーモードです。Unity 公式の

Canvas レンダーモード:スクリーンスペース-オーバーレイ

このモードでは、キャンバスはスクリーン合わせて縮小拡大された後、シーンやカメラへの参照をせずに直接レンダリングされます( UI はシーンにカメラがなくてもレンダリングされます)。スクリーンのサイズや解像度が変わった場合、自動的に合うように UI は縮小拡大します。UI はカメラビューのような他のグラフィックの上に描画されます。

Unity マニュアル
  • イメージ的にはゲームディスプレイに張り付いてるイメージです。

Canvas レンダーモード:スクリーンスペース-カメラ

このモードでは、Canvas は指定したカメラの前にいくらかの距離をとって、平面オブジェクトの上にあるかのようにレンダリングされます。

Unity マニュアル
  • 特定のカメラの前にカメラの動きを追従して、焦点距離にあわせて大きさも合わせてくれる魔法のスクリーン、もしくは鏡筒のないレンズ(後ろ玉との間をオブジェクトも通過できる)の前玉にくっついてるイメージかなあ

Canvas レンダーモード:ワールド空間

このモードは UI をシーン内の平面オブジェクトであるかのようにレンダリングします。しかし Screen Space – Camera モードとは異なり、平面はカメラの方を向く必要ななく、好きな方向に向けることができます。

Unity マニュアル
  • シーンに設置してある透明な立て看板なイメージ

どれを選べばいいのかですが、2D ゲームにおけるマケイヌおすすめの設定を一つ紹介します。

Canvasが大きすぎる問題解決 レンダーモードのおすすめ設定例

2DゲームにおけるCanvasレンダーモード設定ですが、おすすめは、シーンに配置した他のゲームオブジェクトとのサイズや位置関係を維持しやすいので「ワールド空間」です。ですが設定には少しだけコツがあります。この方法でキャンバス大きすぎる問題も解決です。

2DにおけるCanvasレンダーモードおすすめの設定方法

  1. まずレンダーモードを「ワールド空間」にします。
  2. 位置X Y Zを0にする
  3. 幅と高さはゲームサイズを解像度に設定している場合は解像度に、今回のようにアスペクト比にしている場合は、よく使われる解像度の数字を入力します。今回はアスペクト比16:9にしているので「幅」を「1080」、「高さ」を「1920」にしました。
  4. 最後にスケールで整えます。スケールは(メインカメラのサイズ×2)/(Canvasの高さ)です。今回はカメラのサイズ8に設定しているので16/1920(0.00833333333)と入力すればぴったりになります。
  5. 補足 Canvasの合わせかたに「スペーススクリーン-カメラ」にメインカメラをアサインした後「ワールド空間」に変更する方法もありますが、どうやらサイズとスケールの組み合わせがプロジェクトごとに変わってしまって安定しないようなので、今回のやり方の方が再現性があります。

Canvas 他の設定

シンプルな2Dだとあまり弄るところはなさそう。

Canvas 他の設定

  • 頂点カラーは常にガンマ マニュアルいわくガンマから線形への変換で色の精度が上がるらしく、常に表示されてる警告も気になるので、とりあえずチェックしておきます。
  • 「ソートレイヤー」に「UI」を追加して設定します。
  • RectMask2D」 コンポーネントを追加しておきます。親の矩形で同一平面上の子のオブジェクトにマスクをかけます。UIにイメージ置くときとかにはみ出た部分をマスクしてくれるので便利。シンプルだけどその分通常のマスクよりパフォーマンスがいい。

まとめ

まとめ

  • 2DゲームにおけるCanvasキャンバスのレンダーモードの設定は「ワールド空間」にして、スケールを「(メインカメラのサイズ×2)/(Canvasの高さ)」で設定するのがおすすめ
  • ソートレイヤーに「UI」を設定しておくと、後々便利かも
  • RectMask2Dコンポーネントをつけておくと、後々便利かも
ユニティちゃん公式ホームページへ
ユニティちゃん公式ホームページ
ユニティちゃんライセンス
ユニティちゃんの画像、素材、ライセンスロゴはユニティちゃんライセンス条項を元に使用しています

\ 初学に使った書籍です /

動画×解説でかんたん理解! Unityゲームプログラミング超入門

大角 茂之/大角 美緒

マケイヌ的おすすめ度

わかりやすい度

提供素材がよくてテンション上がる度

〇おすすめポイント

素材が良くてモチベがあがります。

×よくないポイント

動画解説前提なので図版が小さいのが玉に瑕

おすすめ記事

 

プロフィール

マケイヌ

人生のメインストリームから外れた40代の♂。

90年代オルタナにはまり、文字通りメインストリームから逸脱。 その後もたびたび人生から逃亡。

心が動いた作品の紹介や 自分のちいさな経験、HowToを発信できればと日々模索中。

1年後までにイラストと写真のポートフォリオをつくりたい。

記:2019年12月

▼プロフィールはこちら

Follow me

アーカイヴ