Redpoll's 60
  Home / 3Dプログラミング入門 / 開始前の準備 $§$1
開始前の準備
$§$1 Unityでのダウンロードコンテンツの読み込み
$§$2 ダウンロードコンテンツの使い方
$§$L ダウンロードページ

$§$1 Unityでのダウンロードコンテンツの読み込み


この講義の主題は3Dプログラミングである。したがって、講義の中ではプログラミングが大きな比率を占めている。プログラミングの講義の場合、数学や物理などの一般的な学科の講義と違い、参考書とノートと筆記用具を使って進めるわけにはいかない。プログラミングの場合には、プログラムを作成するための環境とプログラムを実行するための環境が必要になる。
この講義ではプログラムの作成環境としてVidual Studioを用い、プログラムの実行環境としてUnityを使用している (プログラムの作成環境はVisual Studioでなくてもプログラミングの結果がUnityに反映されるエディターであれば何でも構わない)。



まず最初に行うべき作業としては、Unityを起動して新規プロジェクトを作成する必要がある。以下にその手順を示す (ここで使用しているUnityのバージョンは「Unity 6.0」具体的なバージョンコードは「6000.0.039f1」である)。
Unity(正確にはUnity Hub)を起動すると、図1に示されるWindowが表示されるが、Window右上の「New Project」というボタンを押す。

図1 Unity(Unity Hub)の起動画面において「New Project」を押す。

すると、下図2に示される別のWindowが表示される。このWindowにおいてテンプレートというものを選択するが、ここでは「3D (Built-In Render Pipeline)」というテンプレートを選択する (3D Built-In Render Pipeline は以前はデフォルトのテンプレートであったが、Unity6では新たにダウンロードを求められることがあるので注意。その場合には「Download Template」というボタンが表示されるのでそれを押せばダウンロードされる)。
テンプレートを選択したら、Window右側においてプロジェクト名、保存先を設定する。

図2 テンプレートが「3D (Built-In Render Pipeline)」であることを確認し、プロジェクト名、保存先を設定する。

それらの設定をして「Create Project」ボタンを押すと下図3のような画面が表示される (この画面はUnityの新規プロジェクト作成後に表示される画面である)。

図3 新規プロジェクト作成後の画面

ここまでにおいて何も問題がなければ、新規プロジェクトの作成は正常に行われたということである。これ以降の手順については後の段階で説明する。


この講義で必要な学習教材はすべて本サイト上の ダウンロードページ からダウンロードして取得することができる。学習教材は主にC#スクリプトなどの多数のファイルによって構成されている (以下ではそれらのファイル群を「ダウンロードコンテンツ」と呼ぶ)。

図4 ダウンロードしたzipファイル「I3DPRG_DC.zip」と、それを展開して現れる「i3dprg_download_contents」。
図5 「i3dprg_download_contents」の中身

ダウンロードコンテンツは1つのzipファイル「I3DPRG_DC.zip」としてまとめられており、それを展開すると図4に示されるように「i3dprg_download_contents」というフォルダが現れる。図5は「i3dprg_download_contents」の中身であるが、それは次のような構成になっている。

(注 : 以下では Unity Package のバージョンは「6」「2022」「2019」を例として説明しているが、ダウンロードコンテンツに含まれるUnity Packageのバージョンは時期によって異なる)

            i3dprg_download_contents
                | ---- i3dprg_assets
                | ---- txt_ans
                | ---- i3dprg_package_6.unitypackage
                | ---- i3dprg_package_2022.unitypackage
                | ---- i3dprg_package_2019.unitypackage
                | ---- LICENSE.txt

ダウンロードコンテンツをUnityで使用するためには、Unity側でダウンロードコンテンツを読み込んで、場合によってはいくつかの設定をしなければならない。Unity側でダウンロードコンテンツを読み込む方法は2つあるが、まずは簡単な方から説明しよう。


A) パッケージのインポート

「******.unitypackage」は Unity Package と呼ばれるファイルであり、ここで行う読み込みはこのUnity Packageファイルの読み込みである。

新規プロジェクトを作成すると図3に示される画面が表示されたが、Unity Packageの読み込みはこの画面のメニューにある「Assets」から次のように進める。

Assets --> Import Package --> Custom Package

図6

「Custom Package」を押すとダイアログが表示されるが、ここでダウンロードコンテンツが含まれているフォルダ「i3dprg_download_contents」を表示し(図7)、その中に含まれる「i3dprg_package_6.unitypackage」「i3dprg_package_2022.unitypackage」「i3dprg_package_2019.unitypackage」のいずれかをダブルクリックする。
どのUnity Packageにするかは、使用しているUnityのバージョンによる。Unity Packageの読み込み(インポート)で重要なことは、現在使用しているUnityのバージョンよりも新しいバージョンで作成されているUnity Packageは選ばないことである (エラー回避のため)。

ダウンロードコンテンツの3つのUnity Packageのバージョンはそれぞれ
        i3dprg_package_6.unitypackage      :  Unity 6000.0.039f1
        i3dprg_package_2022.unitypackage  :  Unity 2022.3.58f1
        i3dprg_package_2019.unitypackage  :  Unity 2019.4.30f1
で作成したものである。

図7 ダウンロードコンテンツが含まれているフォルダ「i3dprg_download_contents」を表示し、3つのUnity Packageのうちいずれかをダブルクリックする。
図8 チェックボックスにすべてチェックがついていることを確認して「Import」を押す。

いずれかのUnity Packageをダブルクリックすると図8に示されるダイアログが表示されるが、この中のチェックボックスにすべてチェックがついていることを確認して、ダイアログ下部の「Import」を押す。
「Import」を押すと、選択したUnity Packageが読み込まれ、画面左側のフォルダ階層の「Assets」フォルダの下に「Resources」「Scenes」「Scripts」の3つのフォルダが置かれた状態になる (図9)。

図9 「Assets」以下には「Resources」「Scenes」「Scripts」の3つのフォルダがある
図10 Gameタブがアクティブな状態(Game View)

次に図10に示される「Game」というタブがアクティブになっていることを確認する。もし「Game」タブではなく隣の「Scene」タブがアクティブになっている場合は「Game」タブを押して画面を切り替える (Gameタブによって切り替わった画面を「Game View」という)。

続いて下図11左側のフォルダ階層が表示されている領域(Unityではこの領域を「Project Window」という)にある「Scenes」というフォルダをクリックする。
すると、すぐ右側にいくつかのアイテムが表示されるが(これらのアイテムをUnityでは「Scene」と呼ぶ)、この中に「Chapter01」というSceneがあるのでそれをダブルクリックする。「Chapter01」をダブルクリックすると、図12に示される画面に切り替わる。

図11 「Chapter01」をダブルクリック
図12 「Chapter01」をダブルクリックした後に表示される画面


ここで重要な設定を1つ行う。この設定をしなければプログラムを実行することができない場合があるので注意。
メニューから「Edit」を選択し、その中の「Project Settings」を選択する (下図)。

図13 「Edit」-->「Project Settings」を選択

すると下図のようなダイアログが表示されるので左のメニューから「Player」を選択し、さらに右下の「Other Settings」を選択する。

図14 「Player」-->「Other Settings」を選択

「Other Settings」を選択するとさまざまな設定項目が表示されるが、その中の「Configuration」という項目に含まれる「Active Input Handling」の値を「Both」にする (下図 ; この設定を行うと自動的にUnityが再起動する)。

図15 「Active Input Handling」の値を「Both」に設定

図16
この設定をしないでプログラムを実行すると右図のようなエラーが表示されるのである。これはUnityのバージョンによるが「Unity 6」のように新しいバージョンの場合にはこのエラーが起こる (具体的なエラーメッセージは「InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.」。エラーの原因は、Unityの入力システムには新旧の2種類があり古い方の入力システムを使っている場合には上記の「Both」の設定が必要になるが、これをしていないとこのエラーが表示される)。


では試しにプログラムを実行してみよう。プログラムを実行するには画面上部の「Play」ボタン(図17)を押す (あるいはWindowsであれば「Ctrl + P」でもよい)。

  • 図17 「Play」ボタン
  • 図18 Playボタン実行後
  • 図19 画面左上に「1-1 Code1」と表示される

Playボタンを押した後に画面が図18のような表示になっていれば、プログラムが問題なく実行されているということである (XY平面の座標系が表示され、左上に「1-1 Code1」と表示される(図19)。画面内の「Console」という領域の1行目には (10.0, 20.0) と表示される)。
プログラムの実行を停止するには、再度Playボタンを押せばよい (実行中はボタンのマークが停止マークになっている)。

図20「Console」に何らかのエラーが表示される場合。
ここまでの手続きで特に問題がなければ、以降の内容は飛ばして次節へ進んで構わない。
この時点で何らかのエラーが発生し、画面内の「Console」に図20のように赤いエラーマークが表示される場合がある。Unityでは異なるバージョンで作成したことが原因で起こるエラーが残念ながら稀ではない。そのような場合には以下に説明する第2の方法で試してほしい。



B) 各種ファイルから直接Sceneを作成する

この方法はより確実な方法である (それでもエラーが起こらないとは保証できないが)。
上記の「パッケージのインポート」は、すでに作成されたSceneを読み込むという形になっている。Sceneの主な内容は、C#などのソースファイル、プログラムで使われるオブジェクト(FBXファイル)、さらに幾つかのテクスチャ(画像ファイル)などである。
ここで行う方法は、Sceneで必要とするC#ファイルやFBXファイルなどから直接Sceneを作成するというものである。Sceneを作成するといっても、上記の方法よりは若干手間が増えるだけで作業自体は簡単である。Sceneで必要とする各種ファイルは、ダウンロードコンテンツが含まれているフォルダ「i3dprg_download_contents」内の「i3dprg_assets」というフォルダにすべて置かれている。

ここからの説明は新規プロジェクトを作成した状態(上記の図3の状態)から始める。
手順は次のとおり。

(1) 「i3dprg_assets」の中身を「Assets」へコピーする。
まず、画面左側のフォルダの階層(Project Window)にある「Assets」というフォルダをクリックする (図21)。すると、すぐ右側にAssetsフォルダの内容が表示されるが、今回はこのAssetsファルダ内に直接各種ファイルをドラッグアンドドロップする (以下では単に「ドラッグ」と表現する ; 具体的には図22に示される赤い枠の中に各種ファイルをドラッグする)。

図21 Project Window 「Assets」フォルダ (この時点ではScenesフォルダしかない)
図22 Assetsフォルダの赤枠の中に各種ファイルをドラッグする。

ここでドラッグするのは「i3dprg_assets」内にある2つのフォルダ「Resources」と「Scripts」である (図23)。それぞれ、順に「Assets」へドラッグするとそれら2つのフォルダが「Assets」フォルダ内に自動的にコピーされて追加される (図25)。

  • 図23 「i3dprg_assets」には2つのフォルダ「Resources」、「Scripts」がある。
  • 図24 「Resources」、「Scripts」を順にドラッグする。
  • 図25 「Assets」に2つのフォルダが追加された。

(2) 新しいSceneを作成する。
続いて、画面最上部のメニューバーにある「File」をクリックし、さらに「New Scene」をクリックする (図26)。「New Scene」をクリックしても特に変化が見られないが、「New Scene」をクリックする前はWindowのタイトルバーに表示されるScene名が「SampleScene」であったのが(図26)、新しいSceneではタイトルバーに「Untitled」と表示されている(図27)。これが今作成したSceneの名前なのである。

図26 New Sceneをクリック (Scene名は「SampleScene」)
図27 新しいSceneが作成された状態 (Scene名が「Untitled」になっている)

ここで、作成したSceneに別の名前を与えるためにSceneを保存する。再び、メニューバーの「File」をクリックし、「Save As..」をクリックする。「Save Scene」というダイアログが現れるが(図29)、ここでダイアログ内に表示されている「Scenes」というフォルダをダブルクリックする。そして、ファイル名に「Chapter01」という名前を付ける (図30)。

  • 図28 「Save As..」をクリック
  • 図29 「Save Scene」ダイアログ内の「Scenes」をダブルクリックする。
  • 図30 Scenes内に「Chapter01」として保存

画面左側のProject Windowの中の「Scenes」というフォルダをクリックすると、右側に「Scenes」フォルダの内容が表示されるが、その中に今作成した「Chapter01」というSceneが追加されている。さらに、最上部のタイトルバーを見ると先程「Untitled」となっていた部分が今は「Chapter01」となっている (現在実行中のSceneが「Chapter01」であることを意味している)。

図31 Scenes内に「Chapter01」が追加されている
図32 タイトルバーが「Chapter01」となっている

(3) 空のGameObjectを作成し、そのGameObjectに対しMainファイルをアタッチする。
次に画面右側の「Hierarchy」というタブの付いた領域の「Create」ボタンを押す(「Create」ボタンは図34の赤く囲まれているボタン ; この領域を「Hierarchy Window」という)。すると、ドロップダウンメニューが表示されるが、この中の一番上の「Create Empty」というアイテムをクリックする。

図33 Hierarchy Window
図34 「Create Empty」をクリック

すぐ下のリスト内に「GameObject」という名前のアイテムが追加されるが、ここではこのアイテムの名前を「MainClass」と書き換える。「MainClass」への名前の書き換えは説明の便宜のためであり、特に必須というわけではない (「GameObject」のままでも構わない、あるいは他に適当な名前を付けてもよい)。

図35 「GameObject」が追加されている。
図36 「MainClass」に書き換える。

上記(1)の作業で、Project Window内のAssetsフォルダにScriptsというフォルダをドラッグしたが、このScriptsフォルダをクリックする。すぐ右側にScriptsフォルダの内容が表示されるが、ここでは「sChapter01」をダブルクリックする。すると、「sChapter01」フォルダの内容が表示される。その中にある、「Main01」というC#ファイルをクリックし、そのまま画面右側のHierarchy Window内の「MainClass」までドラッグする。

  • 図37 Scripts内のsChapter01をダブルクリック
  • 図38 sChapter01内のMain01
  • 図39 Main01をHierarchy Window内のMainClassまでドラッグする。

そして、Hierarchy Window内の「MainClass」をクリックして、画面下側の「Inspector」というタブの付いた領域を見ると、「Main 01 (Script)」という項目が表示されているが(図41)、これは「MainClass」にC#ファイル「Main01」が関連付けされたことを意味している (Unityの用語では「MainClassにMain01をアタッチした」と表現する)。

図40 Hierarchy Window内のMainClassをクリック
図41 Inspector内にMainClassに関する情報が表示される。MainClassにMain01をアタッチしたので「Main 01 (Script)」という項目が追加されている。

(4) Hierarchy Windowへオブジェクトをドラッグ。
次に、Project Windowの「Resources」フォルダをクリックし、右側に表示されている「Objects01」をダブルクリックする (あるいは左側のフォルダ階層の「Objects01」を直接クリックするのでもよい)。

図42 Resources内のObjects01
図43 Objects01をダブルクリックして、その内容を表示

するとObjects01フォルダ内の内容が表示されるが(図43)、ここに表示されているすべてのアイテムを選択し(Shiftキーを押しながら1つずつ順番にクリックしていくか、あるいは一番上のアイテムをクリックし、Shiftキーを押した状態で一番下のアイテムをクリックする)、そのまま画面右側のHierarchy Windowへドラッグする (図45)。このドラッグはすべてのアイテムを選択した状態でのドラッグでなくても、1つ1つ順にドラッグを行っても構わないが、必ずObjects01フォルダ内のすべてのアイテムをドラッグする必要がある(1つでも欠けているとプログラム実行時にエラーになる)。

  • 図44 Objects01内のアイテムをすべて選択
  • 図45 すべて選択した状態でドラッグ
  • 図46 リスト内にObjects01内のアイテムが追加されている (図における青い文字のアイテム)

Hierarchy Windowのリスト内に図46に示されるように青い文字のアイテムが追加されていれば成功である。これらのアイテムは「Chapter01」のプログラムで使用するオブジェクトである。

最後に正しく動作するかを確認する。
現在の画面がGame Viewであることを確認し(左図)、Playボタン(右図)を押してプログラムを実行する。

図10 Gameタブがアクティブな状態(Game View)
図17 Playボタン

何も問題がなければ、以下の図18に示される実行結果が表示される (XY平面の座標系が表示され、左上に「1-1 Code1」と表示される(図19)。画面下側の「Console」という領域の1行目には (10.0, 20.0) と表示される)。プログラムの実行を停止するには、再度Playボタンを押せばよい。

図18 Playボタン実行後
図19 画面左上に「1-1 Code1」と表示される。

以上で Scene「Chapter01」の作成は無事終了である。

Scene「Chapter01」は講義における第1章に対応している。他の章に対応するSceneを作成する場合も上記と同様の手続きを繰り返せばよい。
その場合、上の手続きのうち "(1)「i3dprg_assets」の中身を「Assets」へコピーする" は不要である。(2)から(4)だけを行えばよい。たとえば、第3章に対応するScene「Chapter03」であれば以下のようになる。

(2) 新しいSceneを作成し、名前を「Chapter03」とする (「Scenes」フォルダ内に作成されるようにする)。
(3) 空のGameObjectを作成し、名前を「MainClass」とする。Project Window内の「Scripts」フォルダに含まれる「sChapter03」の中にある「Main03」というC#ファイルを「MainClass」までドラッグする。
(4) Project Window内の「Resources」フォルダに含まれる「Objects03」をダブルクリックしてその内容を表示し、「Objects03」に含まれているすべてのアイテムを選択した状態でHierarchy Windowまでドラッグする。

ここで、Playボタンを押せば第3章のプログラムが実行される。




本節では講義において使用する学習教材をUnityへ読み込むことについて説明したが、次節ではこれらの教材を講義においてどのように使っていくかについて説明する。








© 2020-2025 Redpoll's 60 (All rights reserved)