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

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


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



まず最初に行うべき作業としては、Unityを起動して新規プロジェクトを作成する必要がある。以下にその手順を示す (ここで使用しているUnityのバージョンは 2019.2.9f1 である)。

図1 Unity(Unity Hub)の起動画面において「新規作成」を押す。
図2 テンプレートが「3D」であることを確認し、プロジェクト名、保存先を設定する。

Unity(正確にはUnity Hub)を起動すると、図1に示されるWindowが表示されるが、Window右上の「新規作成」というボタンを押す。すると、図2に示される別のWindowが表示される。このWindow左側の領域のテンプレートのうちで、「3D」が選択されていることを確認し、Window右側のプロジェクト名、保存先を設定する。

図3 新規プロジェクト作成後の画面
それらの設定をして、「作成」ボタンを押すと図3のような画面が表示される (この画面はUnityの新規プロジェクト作成後に表示される画面である)。
ここまでにおいて何も問題がなければ、新規プロジェクトの作成は正常に行われたということである。これ以降の手順については後の段階で説明する。


この講義で必要な学習教材はすべて本サイト上の ダウンロードページ からダウンロードして取得することができる。学習教材は主に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 のバージョンは「2018」「2019」を例として説明しているが、ダウンロードコンテンツに含まれるUnity Packageのバージョンは時期によって異なる)

            i3dprg_download_contents
                | ---- i3dprg_assets
                | ---- i3dprg_package_2018.unitypackage
                | ---- i3dprg_package_2019.unitypackage
                | ---- LICENSE.txt

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


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

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

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

            Assets --> Import Package --> Custom Package

図6
図7

「Custom Package」を押すと、図8のようなダイアログが表示されるが、ここでダウンロードコンテンツが含まれているフォルダ「i3dprg_download_contents」を表示し(図9)、その中に含まれる「i3dprg_package_2018.unitypackage」、「i3dprg_package_2019.unitypackage」のいずれかをダブルクリックする。
どちらのUnity Packageにするかは、使用しているUnityのバージョンによる。Unity Packageの読み込み(インポート)で重要なことは、使用しているUnityのバージョンよりも新しいバージョンで作成されているUnity Packageは選ばないことである (エラー回避のため)。例えば、使用しているUnityのバージョンが「2019」であれば、Unity Packageをインポートする場合には「2019」以前のバージョン(「2018」や「2017」)で作成されたものを選び、「2020」以降のバージョンのものは極力避けるようにするべきである。
ダウンロードコンテンツの2つのUnity Packageのバージョンはそれぞれ
        i3dprg_package_2018.unitypackage  :  Unity 2018.3.6f1
        i3dprg_package_2019.unitypackage  :  Unity 2019.2.9f1
で作成したものである。

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

いずれかのUnity Packageをダブルクリックすると、図10に示されるダイアログが表示されるが、この中のチェックボックスにすべてチェックがついていることを確認して、ダイアログ下部の「Import」を押す。
「Import」を押すと、選択したUnity Packageが読み込まれ、画面左側のフォルダ階層の「Assets」フォルダの下に「Resources」、「Scripts」の2つのフォルダが追加される。図11は、その2つのフォルダを展開して、その内容を表示したものである。

図11 2つのフォルダ「Resources」、「Scripts」の内容を展開(それぞれ4つのフォルダを含んでいる)
図12 Gameタブがアクティブな状態(Game View)

図13 「Chapter01」をダブルクリック
ここで、正しく動作するかを確認するために次の操作を行う。
まず、図12に示される「Game」というタブがアクティブになっていることを確認する。もし、「Game」タブではなく隣の「Scene」タブがアクティブになっている場合は「Game」タブを押して画面を切り替える (Gameタブによって切り替わった画面を「Game View」という)。
そして、画面左側のフォルダ階層が表示されている領域(Unityではこの領域を「Project Window」という)にある「Scenes」というフォルダをクリックする。
すると、すぐ右側にいくつかのアイテムが表示されるが(これらのアイテムをUnityでは「Scene」と呼ぶ)、この中に「Chapter01」というSceneがあるので、それをダブルクリックする。

「Chapter01」をダブルクリックすると、図14に示される画面に切り替わるが、ここで画面上部の「Play」ボタン(図15)を押す。

図14 「Chapter01」をダブルクリックした後に表示される画面
図15 Playボタン

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

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

ここまでの手続きで特に問題がなければ、以降の内容は飛ばして次節へ進んで構わない。


図18 画面下部の「Console」に何らかのエラーが表示される場合。
この時点で何らかのエラーが発生し、画面下部の「Console」に図18のように赤いエラーマークが表示される場合がある。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」というフォルダをクリックする (図19)。すると、すぐ右側にAssetsフォルダの内容が表示されるが、今回はこのAssetsファルダ内に直接各種ファイルをドラッグアンドドロップする (以下では単に「ドラッグ」と表現する ; 具体的には図20に示される赤い枠の中に各種ファイルをドラッグする)。

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

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

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

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

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

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

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

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

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

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

図31 Hierarchy Window
図32 「Create Empty」をクリック

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

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

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

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

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

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

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

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

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

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

Hierarchy Windowのリスト内に図44に示されるように青い文字のアイテムが追加されていれば成功である。これらのアイテムはプログラムで使用するオブジェクトであり、今回のObjects01の場合は7個のオブジェクトがHierarchy Windowへ追加されていなければならない。

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

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

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

図16 Playボタン実行後
図17 画面左上に「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-2023 Redpoll's 60 (All rights reserved)