夜更かし工房

稼げるクリエーターになりたい方へ有益な情報をお届け!

【補足解説付き】Unity公式チュートリアル日本語翻訳【 Other helpful resources to get you started with Unity 】

f:id:nightowlgames0314:20161005154001j:plain

Other helpful resources to get you started with Unity とは

Unity を始めたばかりの人のために用意された役に立つヘルプです。

下記のリンクにアクセスすることで原文が確認できます。

https://unity3d.com/jp/learn/get-started

f:id:nightowlgames0314:20180904001801p:plain

日本語翻訳

ゲームエンジン - ゲームエンジンとは何ですか?どのように機能するのですか?

ゲームエンジンは、ゲームを迅速かつ効率的に構築するために必要な一連の機能をゲームクリエイターに提供するソフトウェアです。

ゲームエンジンはゲーム開発のためのフレームワークです。まず Maya や Photoshop などの他のソフトウェアで制作した 2D もしくは 3D の素材をインポートして Unity 内で組み立てます。そこに、ライティング、オーディオ、特殊効果、物理とアニメーション、インタラクティビティ(ユーザーの操作によって反応するもの)、ゲームプレイロジックなどを追加してゲームを制作したら、対象プラットフォーム(AndroidiOSPS4 など)ごとにデバッグして最適化することができます。

グラフィックス

現代のゲームエンジンは素晴らしいグラフィックスを提供します。また Maya や Photoshop などの他のソフトウェアで制作した 2D もしくは 3D の素材をインポートするときに Unity 内部の独自形式に変換するため、インポート作業で長時間待たされることもありません。

ゲームエンジンは、高性能なレンダリング機能と、高速なグラフィックス API へのアクセスを提供することができるため、ゲームの視覚的忠実度を最大限に高めることができます。API とは、ある機能のためのプログラムを共有できる状態にしてあるもののことです。よく使う機能が API として用意されていれば、他の開発者がわざわざ一からプログラムを組む必要はありません。必要に応じてAPIを利用し、効率的に開発を進められます。

下記リンク先の公式サイトでは、Unity のグラフィックスに対する意識や関心を高めるための魅力的な最新のメッセージがたくさん表示されていて頻繁に更新されています。

Graphics Rendering - Unity

オーディオ

あなたが収録して編集したオリジナルのサウンド(楽曲や効果音や音声など)を再生することができます。あるいは Unity Asset Store のようなアセット(ゲームの素材)販売店で購入したサウンドを様々な方法で組み合わせて再生することもできます。

ゲームエンジンは、ゲームエンジン自身で、またはサードパーティ製のアプリケーションを通じてこれらのサウンドをまとめるのに役立ちます。そのため、あなたはサウンドの構成に焦点を当てることができます。発生したイベントに音を割り当てるなど、ゲームシーンの中で創造的にサウンドを配置することができます。 

下記リンク先の公式サイトでは、Unity のオーディオに関するマニュアルが掲載されています。 

Unity - Manual: Audio

ネットワーク設定

多くのプレイヤーは、PC、コンソール、モバイルのいずれであっても、ゲームやアプリでの友人との接続が大好きです。特定の種類のゲームでは、ネットワーキングには多くのサーバーパワーが必要となり、複雑なワークフローやプロセスが発生する可能性があります。幸運なことに、多くのゲームエンジンには、ワークフロー、スクリプト可能なコンポーネント、およびAPIが用意されており、オンラインやマルチプレイヤーのために最適化することができます。

下記リンク先の公式サイトでは、Unity でのマルチプレイヤー向けゲームを簡単に作るための仕組みを紹介しています。

Services - Multiplayer - Unity

物理演算

ゲームエンジンの物理システムは、物理シミュレーションを処理するコンポーネントを提供します。ハードコーディングをすべて自分で行う必要はなく、シーン内でゲーム要素によって作成されたすべての動きや、ゲームコンポーネント間の衝突をコードすることもありません。ゲームエンジンを使用すると、ほんの数行のコードで現実的な振る舞いをすることができるオブジェクトを作成することができます。

下記リンク先の公式サイトでは、Unity の物理システムに関するマニュアルが掲載されています。 

Unity - Manual: Physics

グラフィカルユーザーインターフェイスGUI

ほとんどのゲームには、ゲームのテーマ、芸術の方向性、および物語に合った独自のGUIがあります。そのため、多くのゲームエンジンでは、ボタンやドロップダウンメニュー、スライダ、さまざまな対話可能要素を組み合わせる手段など、独自のグラフィックスユーザーインターフェイスを構築するツールがクリエイターに提供されています。

下記リンク先の公式サイトでは、Unity のユーザーインターフェイスに関するマニュアルが掲載されています。 

Unity - Manual: UI

スクリプティング

ゲームエンジンの重要な要素の1つは、ゲームコンポーネントのロジックを定義するために使用するスクリプトです。いくつかのゲームエンジンによって提供されるプレビルドスクリプトを使用すると、カメラ、ゲーム要素間の関係、およびキャラクタアニメーションの制御に使用できるアニメーションシステムを簡単に制御できます。

下記リンク先の公式サイトでは、Unity のスクリプティングに関するマニュアルが掲載されています。 

Unity - Manual: Scripting

多くのゲームエンジンがありますが、2D や 3D、VR / AR、特定のプラットフォームやクロスプラットフォームなど、特定のジャンルに関心を持つ場合は、あなたの需要に合わせたものを選んでください。一度コンテンツを構築し、複数のプラットフォームに展開する場合は、Unity のゲームエンジンなら 25 以上のプラットフォームに展開できます。 Unity で制作したいのであれば、多数のリソース、ビデオ、記事、チュートリアル、エディタのドキュメント、アイデアを共有するためやあなたのチームを拡大するために他の Unity 開発者に連絡できるクリエイターのコミュニティ、を見つけることができます。

Unity で 2D および 3D ゲームを作成する

Unity ゲームエンジンを使用すると、2D と 3D のコンテンツを別々に作成したり、同じプロジェクトで 2D と 3D の要素を使用したり、これらの要素を 2.5D で混在させることができます。主な違いは、シーンで使用したいオブジェクトの種類や使用しているカメラの種類にあります。

下記リンク先の公式サイトでは、実際に Unity で 2.5D のゲームを制作したチームへのインタビュー記事が掲載されています。Unity 公式サイトではチュートリアルだけでなく実際の開発インタビューから学ぶことも可能で、これをケーススタディと呼びます。

Flipping Death Case Study - Unity

Unity は 2D / 3D  のゲーム、あるいはユーザーが操作することのできる何かしらのコンテンツのためのツールセットです。

Unityで新しいプロジェクトを開くと、2D または 3D を選択するオプションがありますが、ここで設定したモードに関係なく、いつでも 2D か 3D かの設定を入れ替えることができます。詳細については下記リンクの公式サイトで、Unityの2Dおよび3Dモードの設定を参照してください。

Unity - Manual: 2D and 3D Mode Settings

f:id:nightowlgames0314:20180904232216j:plain

2Dまたは3Dモードで開始するかの選択によって、画像がテクスチャまたはスプライトとしてインポートされるかどうか、およびカメラプロジェクトが正射投影か透視投影かなど、Unityのいくつかの設定が決まります。2D用に作成するか3D用に作成するかが不明な場合は、次の点を考慮して決定してください。

2Dと3Dのゲームの主な違い

2Dの特性

2Dゲームでは、スプライトと呼ばれるフラットグラフィックスを使用し、3次元の幾何学はありません。それらはフラットな画像としてスクリーンに描画され、カメラ(正射投影カメラ)には遠近がありません。典型的な2Dゲームのいくつかの例を以下に示します。

f:id:nightowlgames0314:20180904234655j:plain

 3Dの特性

 3Dゲームでは通常、ゲームの世界を構成する環境、文字、物体を表示するための GameObjects の表面にレンダリングされたマテリアルとテクスチャに、3次元の幾何学を使用します。3Dゲームは通常、パースペクティブ(遠近法)を使用してシーンをレンダリングするため、オブジェクトがカメラに近づくにつれてスクリーン上で大きく表示されます。

f:id:nightowlgames0314:20180905001700j:plain

また Unity Asset Store で、アニメーションから環境や小道具まで、さまざまな精選された3Dアセットを取得して、あなたのゲームに適したものを選択することもできます。

 2.5Dの特性

一部の2Dゲームでは、環境や文字に3D幾何学を使用しますが、ゲームプレイを2次元に制限します。たとえば、カメラはサイドスクロールビューを表示しますが、プレーヤは2次元でしか移動しません。この種のゲームでは、3D効果は機能的な目的ではなく視覚的なものになります。

f:id:nightowlgames0314:20180905002901j:plain

3次元幾何学を使用するゲームはありますが、パースペクティブの代わりに正射投影カメラを使用します。それはプレーヤーにゲームアクションの鳥瞰図を与える一般的なテクニックであり、しばしば2.5Dと呼ばれます。

f:id:nightowlgames0314:20180905003053j:plain

2Dまたは3Dモードで作成するかどうかを完全には理解していない場合は、Unityを使用するときに常に2つのモードを切り替えることができます。Unity の公式サイトのコミュニティセクション、ブログ、フォーラム(議論をする場所)で、2Dプロジェクトや3Dプロジェクトの開発について他のUnityクリエイターが何を言っているかをいつでも確認できます。

[コミュニティ] Community - Unity

[ブログ] Unity Blog - A glimpse inside Unity Technologies…

[フォーラム] https://forum.unity.com/?_ga=2.206821652.683740150.1535980704-771601630.1535980704

Unity で制作された人気ゲーム

Unity エンジンは、世界中の開発者の間で最も人気のあるサードパーティのゲーム開発ソフトウェアです。一流企業からインディーズまでのチームやスタジオがユニティを使用しており、ユニティに依存している開発者やアーティストの割合は常に増加しています。Unity はモバイル、PC、コンソール、Web、VR、AR の各主要プラットフォームの開発をサポートしています。Unity はゲームや他のアプリ、広告、インタラクティブな物語や芸術、ビジュアライゼーション、映画などを作成するために使用されます。

Unity に関する最新のニュースと数字を入手する

Unity の実績を確認してみましょう。下記リンクの公式サイトで Unity に関する最新のニュースと数字を入手できます。

Unity Public Relations

Unity エンジンで作成されたすべてのコンテンツを完全に把握することは不可能です。ここでは Unity で作られたいくつかのゲームの概要を紹介します。素晴らしいビジュアルや壮大な物語とサウンドによって差異をもたらしました。

下記リンクの公式サイトは Unity のスタッフが 2017 年にプレイしてみて面白かったゲームを紹介する記事です。

Staff Made With Unity favorites from 2017 – Unity Blog

Cuphead

f:id:nightowlgames0314:20180905220325j:plain

Cuphead は、1930年代の古典的な漫画スタイルに基づいた作風の、走って撃つアクションインディーゲームです。これは手描きのアニメーションと水彩的な背景によって実現され、ジャジーサウンドトラックはスタジオでライブ録音されました。Cuphead は、今までにユニティで作られたゲームの中でも、最も視覚的に目立つ作品の1つです。

下記サイトは、Cuphead についてのUnity 公式ブログと公式インタビュー記事です。

E3 Highlight: Cuphead by StudioMDHR – Unity Blog

Cuphead - Made With Unity

Monument Valley 2

f:id:nightowlgames0314:20180905222950j:plain

Monument Valley 2 は完全に3D素材に基づいて構築されたゲームですが、平行プロジェクトのレンズを通して見ると、オブジェクトはプレーヤーには2Dとして表示されます。スタジオは新しいツールセットを作成しました。これによりチームはUnityで迅速に反復することが容易になり、複数のレイヤーを再作成せずに真のノードのビジュアルスクリプティングシーケンスを利用できました。チームが活用しているツールセットの1つは、下記リンクで紹介している2Dのための Unity ツールソリューションでした。

2D 向けUnity | Unity

Rick and Morty: Virtual Rick-ality

f:id:nightowlgames0314:20180905224201j:plain

テキサス州オースティンに拠点を置く Owlchemy Labs は Unity の Best VR Game 2016 Job Simulator game で賞を受賞した後、人気漫画である Rick and Morty を VR ゲームにしました。 これは2D漫画を3D対話領域に変える最初のベンチャーです。プレイヤーは Morty のクローンとしてゲームに参加し、Rick のガレージを探索し、ショーに含まれるすべての狂気を経験します。 ゲームの成功は Unity のUnity for VR ツールやマルチプラットフォーム機能によって可能になりました。

下記のリンクはインタビュー記事と Unity for VR へのリンクです。

Rick and Morty: Virtual Rick-ality - Made With Unity

シネマティックVR向けUnity | Unity

Inside

f:id:nightowlgames0314:20180905230235g:plain

Inside は 2016 年にプレイデッド・スタジオによって開発されリリースされた Unity で構築されたパズル・プラットフォーマー・アドベンチャー・ゲームです。プレーヤーは、環境パズルを解消し、死を回避することによってディストピアの世界の少年をコントロールします。プレイデッド・スタジオ の開発者は下記の動画で、Inside を開発したときの、ツール、トリック、技術、Unityでのゲームアセットの読み込みと破棄の改善について話します。

INSIDE - Unity Connect

Ori and the Blind Forest

f:id:nightowlgames0314:20180905231057j:plain

Ori and the Blind Forest は、私たちの中に存在する愛、犠牲、そして希望に関する深く感情的な物語を通して、若い孤児を追っています。視覚的に見事なアクションプラットフォームです。手​​描きのアートワーク、緻密にアニメーション化されたキャラクター、完全にオーケストレーションされたスコアが特徴です。 他の多くの賞に加えて、オリジナルのオーディオと芸術的業績のために、このゲームは2015年の Made With Unity Awards で「 Best 2D visuals 」賞を受賞して評価されました。 

Ori and the Blind Forest - Unity Connect

Unityで開発されたゲームがTHE GAME AWARDS、GOLDEN PLUME AWARDSとPSXを席巻 – Unity Blog

Awards - Unity Awards 2017

Hearthstone

f:id:nightowlgames0314:20180905232026j:plain

Hearthstone は、2人の対戦者が交互に行動するターン制のオンラインマッチカードゲームです。プレイヤーはまず基本カードを獲得し、ゲームで獲得した金、または現金でカードパックを購入することにより、より高度な「エキスパート」カードを得ることができます。このゲームを作成するとき、Hearthstone は開発期間が短かったためデバッグのための時間があまりありませんでした。しかし Unity のエディター上で実行できるという事実は、プレイヤーがゲームで見ているのと同じことを示しています。そのため非常に速くバグを特定し、適切な調整を行うことができ、また、Unity のサポートはチームがゲームの改善についてより早く学ぶ手助けをしました。

インタビュー

Card Life - Unity

内製ゲームエンジンからの移行ガイド

Whitepaper - Adopting Unity - Unity

Cities: Skylines

f:id:nightowlgames0314:20180905233850j:plain

Cities: Skylinesは古典的な都市シミュレーションを現代的に取り入れたものです。このゲームはゲームの要素に基づいており、スリルと苦労を実現するだけでなく、実際の都市を維持しながら、都市建設の経験の豊かな一部を拡大しています。 Colossal Order のチームは、エンジンの柔軟性と構築のための強力なフレームワークのためにUnityへと向かいました。プレイヤーには制限がなく、構造を置くことができ、あらゆる仕事や目的に合ったツールがあります。さらに、プレイヤーは自分のオブジェクトをゲーム世界に持ち込むことができます。

Cities Skylines - Unity Connect

コードを記述せずに Unity でゲームを制作する方法

プログラミングに精通していなくても、Unityで多くのことを達成することができます。アーティストとデザイナーに優しい機能を、Unity のアセットストアで購入して Unity エディタに統合して使用すると、目標をより速く達成するための強力な解決策が得られ、正しい道のりに集中することができます。

コーディング無しでもゲームを作れますか?

Unity で作成するインタラクティブ(ユーザーが操作して反応する)なコンテンツのほとんどは、テキストベースのプログラミングに依存しています。Unityでは、C#をサポートしており、理解する必要のある2つの主な領域があります:論理と構文です。あなたはその論理を「起こるべきもの」と考えることができます。また、それを伝える言語としての構文も考えられます。Unity でのコード作成を最初から勉強したい場合は、多数の学習リソースを用意しています。学習手順として下記のリンクを参考にしてください。

Unity - Learn

特に下記の C#のスクリプトに関するチュートリアルを見てから、 チュートリアルの各プロジェクトで使用されているより詳細なコードを見ることでコーディングに関する学習を始めることができます。しかし、プロジェクトのコーディング以外の他の部分に集中したい場合は、アセットストアで利用可能なツールを使用すれば、コーディングをほとんどまたはまったく行うことなく、ゲームを作成することができます。

Scripting - Unity

アセットストアから入手できる、非プログラマ向けの上位3つのアセット

1. uScript

uScript は、賞を受賞したAAA業界のベテランが開発した完全な機能を備えたビジュアルスクリプティングシステムによって、創造的かつ視覚的な方法でビジョンを現実のものにすることができます。このツールは、ゲームの実行中にブレーク/ステップデバッグ(プログラムを一時的に停止するポイントをコードの中に埋めこみ、プログラムを1行もしくは複数行ごとに手動で実行するデバッグ方法)も提供します。uScript は、素早くプロトタイプを作成し、デバッグし、あなたのアイデアをより早く生き生きとさせる能力を向上させます。「新しい Unity プロジェクトを立ち上げ、主要なプラグインをインポートして、すぐにプロジェクトを作り始めることができます。アセットストアがオープンした可能性は非常に高く、ここから改善するしかないと感じています」 (ケイト・ハドソン、小説家) 

uScript Professional - Asset Store

The Novelist and the Asset Store: The Visual Scripting Story – Unity Blog

2. PlayMaker

あなたがコーディングなしで創造的な可能性を実現したいデザイナーやアーティストなら、PlayMaker がそれを実現します。アニメーショングラフやインタラクティブオブジェクトだけでなく、ゲームの試作品や人工知能で制御された動作をすばやく作成できます。このビジュアルスクリプティングツールは、Hearthstone、INSIDE、Dreamfall Chapters などのゲームでも使用されていました。 「Playmaker はノンコーダーが我々のゲームに機能を実装するための最もスムーズで直感的な方法です!」Andreas NGrøntved、INSIDE

Playmaker - Asset Store

Card Life - Unity

INSIDE - Unity Connect

Red Thread Games on using Unity to create Dreamfall Chapters - Unity

3. Adventure Creator

Adventure Creator は、Unity で 2D、2.5D、または3Dゲームを作成する場合に必要なアセットです。コーディングは必要ありません。その視覚的スクリプトシステムと直感的なエディタは、初心者が一連のコードを書かなくてもゲーム全体を構築できるようにし、プログラマが自分の機能を追加しプレイすることも可能ににします。 「1行のコードを入力しなくても、プロフェッショナルなポイント・アンド・クリック・ゲーム(マウスのボタンを押して離したり、タップで操作するようなゲームのこと)を作成するのに必要なツールはすばらしく、非常に役立ち、私が持っていた多くの問題や複雑なアイデアを引き出しました。(Ash Denton、Capital)

Adventure Creator - Asset Store

Capital: Adventures in adventure creating – Unity Blog

ビジュアルスクリプティングアセットでコーディングを回避してクリエイティブの可能性を引き出す方法

uScript の実例

ゲーム「The Novelist」を作った Kent Hudson は、uScript のビジュアルスクリプティングプラグインを使ってこのゲームを作った。「プロである私がコーディングを回避するためのツールを使用することは恥知らずなように聞こえるが、それは事実だ。Unity とアセットストアは私が独立してゲームを作ることができる理由だ」。Kent 氏はインディーズに行く前には「Deux Ex: Invisible War」や 「BioShock 2」の開発に携わっていた。 Unity でビジュアルスクリプティングツールを使用することは、プログラミングやゲーム作成の初心者の方だけでなく、ゲームのデザインやアート、またはゲームの物語構造に重点を置いているクリエイターにも当てはまります。

f:id:nightowlgames0314:20180906231938j:plain

Playmaker の実例

Playmaker は、プログラムの見え方をテキストベースから視覚的なものに置き換えるビジュアルスクリプティングツールです。ロジックはグラフィックスで表現され、関係を作成するために配線で繋がれ、リストから選択できる既成のアクションを使用してコードの構文が自動的に表現されます。

f:id:nightowlgames0314:20180906232101j:plain

Unity に統合された PlayMaker のようなツールは、コードの構文の詳細に不慣れでも、ゲームの作成、物語、またはキャラクターとオブジェクトの関係に関心を持つ多くのクリエイターに力を与えます。 その仕組みを見たい場合は、PlayMaker でのビジュアルスクリプティングを使用してインタラクティブ機能を作成する方法を説明する一連の動画があります。 Unity Youtubeチャンネルでそれをチェックしてください。

数多くのゲーム制作者が、コード構文とエラーコンパイラを正しく理解することに苦労していますが、そこに執着する必要はありません。あなたにとって重要なものに戻りましょう。

Adventure Creator の実例

Unity でコーダー以外の人生を楽にするツールのもう一つの例は Ash Denton の話です。彼は Inside XBox のビデオを制作しており、「Thank You for Playing」ビデオシリーズのクリエイターの一人です。 Ash は Unity コミュニティを通じて Adventure Creator を見つけ出しました。これは変更可能な柔軟なツールで、3D世界で2Dキャラクターを使用することができました。ノンコーダー向けのこのツールは、ノードベースのスクリプトイベントやボタンを簡単に作成でき、シーンマネージャはホットスポット、ナビゲーション、トリガーなど、シーン内のすべてのロジックを整理できます。

f:id:nightowlgames0314:20180906232519j:plain

最小限のコーディングでカットシーン、シネマティックスなどを作成する

タイムラインは、シネマティックコンテンツ、カットシーン、ゲームプレイシーケンス、複雑なパーティクルシステムなどの作成を可能にする Unity の新しいビジュアルツールです。タイムラインを使用すると、ゲームオブジェクト、アニメーション、サウンド、シーンを調整できます。最も重要なことは、コーディングではなく、ストーリーテリングに集中することです。プログラミングロジックを完全に無視することはできませんが、Unity コミュニティ内の非コーダーには多くの有益なリソースがあります。もちろん、Unity アセットストアでは、文字、テクスチャ、環境、アニメーションアセット、3Dモデル、オーディオアセット、エディタの拡張機能、完全なプロジェクトなど、開発時間をさらに短縮するために利用できる数多くのアセットがあります。

Community - Unity

Unity Asset Store - The Best Assets for Game Making

Unityエディタについて知る

Unity には、学習をお手伝いできるリソースがたくさんあります。

・下記の Unity 公式サイトにアクセスしてあなたに合った正しい学習方法を見つけてください。

Get Started - Unity

・下記の Unity 公式サイトのチュートリアルでは、Unity エディタと必需品を用いて、あなたが効率良く数時間で簡単なゲームを作れるようになるための、映像と記事ベースのチュートリアルが用意されています。

Unity Learn Tutorials

・ライブトレーニングでは、あなたはユニティの専門家に直接質問をすることができます。

Learn - Live Training - Unity

・あなたはいつでも私たちのコミュニティーで助けを求めたり、クリエイターの創造的闘争と解決策を知るためにゲームクリエイターに手を差し伸べることができます。

Community - Unity

・認定試験とコースウェア教材を使って、Unity でのゲーム制作を、最初からリリースまでの一連の、実際のゲーム開発の手順に沿って学習しましょう。

Unity Certification - Certification

初心者のためのUnityでのC#でのコーディング

あなたは Unity でコードを書くことを学び始めるために初めてのゲームを作りたいが、具体的に何から始めるべきかがわかりません。そんなあなたを助けるために私たちは努力した。ここには、Unity のスクリプト要素の内訳と、「Space Shooter」のようなより高度なプロジェクトによる学習教材があります。これは、変数、関数、クラスなどのコーディングの基本と、それらを使用する方法について説明します。 あなたが経験豊富なプログラマーであればここに行ってください。 

Programming in Unity: For programmers new to Unity - Unity

Unity のスクリプトとは何ですか?

スクリプティングは私たちのゲームオブジェクトにどのように行動するかを指示します。ゲームオブジェクトに付属しているスクリプトコンポーネント、そしてそれらがお互いにどのようにやりとりしてゲームプレイを創り出すかです。Unity のスクリプティングは純粋なプログラミングとは異なります。たとえば、アプリを作成した場合に、そのアプリを実行するためのコードは既に Unity に備わっているため作成する必要はありません。あなたはあなたのスクリプトによるゲームプレイに集中できます。

Unity は大きなループで動作します。ゲームシーンにあるすべてのデータを読み込みます。たとえば、ライト、メッシュ、ビヘイビアが読み込まれ、すべての情報が処理されます。

例えば北米の29.5フレーム/秒のテレビがあると考えると、Unityは同じことをする必要があります。これは、1つの別々のフレームを次々に実行しています。あなたはあなたのスクリプトに書いた指示で Unity に指示しフレームを描写させ、Unity は可能な限り速やかにフレームの後に次のフレームを実行します。高いフレームレートを達成するということは、あなたのゲームがより流動的に見えるだけでなく、スクリプトも頻繁に実行されるため、コントロールがより反応しやすくなります。

Unityでどんな言語を使えますか?

スクリプトが Unity によって呼び出されるためには、シーン内の GameObject にスクリプトを添付する必要があります。スクリプトは Unity が理解できる特別な言語で書かれています。そして、この言語を通して、エンジンと話し、指示を伝えることができます。

Unityで使用される言語は C#(Cシャープと発音)と呼ばれます。Unity が操作するすべての言語は、オブジェクト指向スクリプティング言語です。他の言語と同様に、スクリプト言語には構文や品詞があり、主要な部分は変数、関数、クラスと呼ばれます。

2017.3まで Unity のバージョンを使用している場合は、MonoDevelop というテキストエディタがあります。これはコードを完成させるのに役立ちます。間違ったコードを書いている場合はお知らせします。ショートカットを取ることができます。2018.1以降、Visual Studio for Unity Community、または Visual Studio、Notepad、Sublime などの他のテキストエディタを使用することもできます。

MonoDevelop-Unity から Visual Studio Community へ変更 – Unity 2018.1 から 開始 – Unity Blog

以下は、サンプルコードのスクリプトです(下記リンクの Absolute Beginner チュートリアルのUnityのコーディングに基づいています)

Coding in Unity for the Absolute Beginner - Unity

f:id:nightowlgames0314:20180908222014p:plain

見ての通り Variables 、Fuctions、Classes があります。

これらは何をするのですか?

Variables(変数)は値とオブジェクトへの参照を保持します(オブジェクトを「大きな」変数として見ることができます)。変数は私たちのために何かを保持する箱のようなものです。変数名は小文字で始まります。

Fuctions(関数)は、これらの変数を比較して操作するコードのコレクションです。関数名は大文字で始まります。プログラムのさまざまな部分で複数回簡単に再利用できるように、コードを関数内で整理します。

Classes(クラス)は、オブジェクトのプロパティ(性質)を定義するテンプレートを作成するために、変数と関数のコレクションをまとめてラップするコードを構造化する方法です。

スクリプトは、主にこれらのオブジェクトとその現在の状態と値を比較しています。結果や決断を決めるロジックに基づいています。

Variables

Unity では、スクリプトは必要な道具を配置することから始まります。これは通常、変数を宣言することによって行われます。あなたは宣言された変数を、参照することができます。下記画像やリンク先の動画のように、可視性を示すキーワード「public」または「private」のあとに、変数のタイプ(型名)と、変数名を続けて、変数を宣言します。

Live Training 7th October 2014 - Coding in Unity for the Absolute Beginner - YouTube

f:id:nightowlgames0314:20180908223847j:plain

変数を宣言するときにいくつかの可視性の型がありますが、最も重要な2つの型は public と private です。

コードエディタで上記のテキストを持つスクリプトを作成してから Unity に戻ってスクリプトを GameObject に割り当てると、Inspector で public と宣言された Light 変数にアクセスして表示することができますが、private と宣言された Light 変数私は見えません。private として定義されているものは、定義されているクラス内のスクリプト内でしかアクセスできないからです。

これを public にすると、他のスクリプトや他のクラスからアクセスでき、Unityエディタの Inspector から変更できます。それは、他の人々がそれにアクセスして値を変えることができるということです。

private か public のどちらかを選択する理由はたくさんあります。private 変数は、それらの変数の値がそのクラス内でのみ変更できることを知っているので、コードをよりきれいにすることができます。これにより、デバッグやコードの管理が容易になります。

public を選択して問題が発生した場合は、他のオブジェクトがその変数にアクセスできるため、コードベース全体を調べてソースを追跡する必要があります。しかし、オブジェクト間でオブジェクトをやり取りするには、変数(または関数)を公開する必要があります。

変数のもう一つの重要な側面はタイプです。タイプは、メモリに保持されている変数の種類を定義します。たとえば、以下のイメージのように、数値、文字列、またはより複雑なタイプなどがあります。Transform、Light、Demo Scriptコンポーネントに追加します。Unityは、それがどのように扱うかを知るために、どのタイプのオブジェクトであるかを知る必要があります。

f:id:nightowlgames0314:20180908230443j:plain

変数に関するもう一つの重要なことは名前です。変数の命名について覚えておく必要がある主なことは、数字で始めることができず、スペースを含むことができないことです。したがって、名前を書くスタイルがあります。C#では、命名規則はcamelCaseです。小文字で始まり、次の語は大文字で始まる "myLight"などの単語をスペースなしで追加します。

Unityがスクリプトコンパイルすると、パブリック変数がエディタに表示されます。インスペクタから下の画像を参照してください。スクリプト上で myLight と正しい命名規則で名付けられた変数名はエディタ上では My Light に変換されていますね。

f:id:nightowlgames0314:20180908230752j:plain

Functions

スクリプトは、関数を使用して変数を操作します。Unity 内で自動的に実行される多くの機能があります。下記画像を参照してください。

f:id:nightowlgames0314:20180908231413j:plain

Awake は、そのコンポーネントを持つ GameObject がインスタンス化されたときに一度だけ呼び出されます。GameObject が非アクティブな場合、それがアクティブになるまで呼び出されません。しかし、Awake は、GameObject がアクティブであるにもかかわらずコンポーネントが有効になっていなくても呼び出されます(その名前の横に小さなチェックボックスがあります)。Awake を使用すると、値を割り当てるために必要なすべての変数を初期化できます。

Start は Awake のように、GameObjectがアクティブな場合、コンポーネントが有効な場合にのみ Start が一度だけ呼び出されます。Awake との違いの詳細については、このビデオを参照してください。

Awake と Start - Unity

Update はフレームごとに1回呼び出されます。これは、アニメーション、AI、およびゲームの他の部分が絶えず更新される必要があるように、連続的に実行されるロジックを定義するコードを配置する場所です。

FixedUpdate は物理的な作業をしたいときです。 ご覧のとおり FixedUpdate と Update があり、スクリプティングチュートリアルのセクションでは、Update と FixedUpdate関数を使用してフレームごとに変更を適用する方法と、その違いを知ることができます。

Update と FixedUpdate - Unity

LateUpdate は Update と似た関数ですが、LateUpdate はフレームの最後に呼び出されます。Unity はすべてのゲームオブジェクトを見て、すべてのアップデートを見つけて、LateUpdate を呼び出します。これはカメラのようなものに適しています。あなたのゲームでキャラクターを動かしたいとしましょう。そして、彼は別のキャラクターにぶつかり、別のポジションで終わる。私たちがキャラクターと同時にカメラを動かすと、揺れがあり、カメラは必要な場所にはありません。だから、基本的に、それは非常に便利な2番目のループです。

Writing functions

関数を書くときには、関数が返す型、関数の名前、括弧内のパラメータ(もしあれば)の記述から関数が始まることに注意してください。関数名は大文字で始まり、関数の本体は中括弧の間に入ります。関数の記述方法の例を次に示します。

f:id:nightowlgames0314:20180908232617j:plain

この関数をどのように呼ぶか

f:id:nightowlgames0314:20180908232741j:plain

関数は計算を行い、値を返すことができます。あなたは何かをするために関数に依頼し、情報を処理して、答えを返すことができます。タイプ "void"を使用すると、何も返されません。

Classes

クラスは、これらの変数と関数の集合です。たとえば、このスクリプトはクラスです。

f:id:nightowlgames0314:20180908232929j:plain

クラス名は C#スクリプトのファイル名と一致しなければならないことに注意してください。GameObject にアタッチするには、MonoBehaviour という別のクラスから派生しなければなりません。これは、スクリプトを最初に作成するときに自動的にそこに配置されます。クラスは public または private にすることもできます。

Unity では、下の例のような MonoBehavior から派生していないカスタムクラスを作成する場合、それをシリアライズするように要求する必要があります。これは、Unity が Inspector で見ることができるシンプルなデータに変換されることを意味します。そうすると、クラスが Inspector に表示されることがわかります。

Serialization and Game Data - Unity

f:id:nightowlgames0314:20180908233752j:plain

変数、関数、クラスは、Unity でのコーディングを始める基本に過ぎません。Learn セクションをチェックしてください。最初からプログラミングについて学び、その後進んでプロジェクトの詳細なコードを作成するのに役立つ一連の便利なスクリプトチュートリアルがあります。

Scripting - Unity

経験豊富なプログラマですが Unity は初めてです。

強力なプログラミングスキルを持って Unity にお越しいただいた方には、大きなメリットがあります。プログラミングは、最も単純なものでさえ、ゲームを開発するために不可欠です。Unity では、スクリプトを使用して、ゲームやインタラクティブコンテンツのあらゆる部分を開発することができます。

様々なゲームを構築するための方法

Unity でのゲームの作成方法を理解するには、まず Unity の基本的なビルディングブロックについて知る必要があります。

1.ゲームオブジェクト

Unity のあらゆる種類のコンテンツは、GameObject で始まります。あなたのゲーム内の全てのオブジェクト(キャラクター、ライト、特殊効果、小道具など)は GameObject です。

f:id:nightowlgames0314:20180908235044j:plain

GameObjects はそれだけでは何もできません。実際に何かになるには Component を追加して GameObject のプロパティ(性質)を与える必要があります。

2.コンポーネント

Component は、それらが接続されている GameObject の動作を定義し、制御します。簡単な例はライトの作成です。ライトコンポーネントを GameObject に添付することです(下記参照)。

f:id:nightowlgames0314:20180908235326j:plain

3.変数

Component には、エディタの Inspector ウィンドウやスクリプトを使用して調整可能な、いくつもの編集可能なプロパティがあります。上記の例では、光のいくつかの特性は、範囲、色および強度です。

プログラミングにより、すべてのオブジェクトとそのプロパティを制御できます

Unity のビルトインコンポーネント(最初から用意されているコンポーネント)は非常に多用途ですが、すぐに、自分のゲームプレイロジックを実装するためには不十分であることがわかります。スクリプトを使用すると、ゲームオブジェクトにそれらを適用するだけで、独自のゲームロジックと動作を実装できます。

スクリプトコンポーネントを使用すると、ゲームイベントのトリガー、衝突のチェック、物理の適用、ユーザーの入力への応答など、多くのことを行うことができます。

f:id:nightowlgames0314:20180908235905j:plain

Unityでどんなプログラミング言語を使用できますか?

Unityは、JavaやC ++に類似した業界標準の言語であるC#をサポートしています。

あなたはC ++の経験者ですか?

C ++と比較して、C#は簡単に学習できます。さらに、それは 「管理言語」です。つまり、C ++の初心者や多くのプロにとっても問題であるメモリ管理を自動的に行います。つまり、メモリの割り当てを解除したり、メモリリークをカバーしたりします。一般的に、C#はゲームを作成しプログラミングのより高度な側面に対処する場合は、C ++よりも好ましいです。

Unityでのデバッグ

ゲームプレイの変数はすべて、開発者がプレイしている間に表示されるので、調整やデバッグは効率的です。1行のコードを書くこともなく、その場で変更することができます。ゲームはいつでも中断することができます。また、一度に1つのプログラムの文章をステップ・スルーすることもできます。下記のページの最後に、ドキュメントとチュートリアルのプロファイリングとデバッグのリンクがあります。

Programming in Unity: For programmers new to Unity - Unity

Unityのスクリプトバックエンド:バージョン2018.1から MonoDevelop - Unity をVisual Studio Communityに置き換える

.NET:Unityは、C#をネイティブにサポートする標準的なMonoランタイムの実装をスクリプトに使用しています。しかし、バージョン2018.1以降、UnityはMacOS上でMonoDevelop-Unityの代わりにMacVisual Studioと共に出荷されます。Windows Unityでは、Visual Studio 2017 Communityが引き続き出荷され、MonoDevelop-Unityは出荷されません。 Unityの(現在の実験的な).NET 4.6スクリプトランタイムは、C#6.0以降で利用可能な新しいエキサイティングなC#機能とデバッグの多くをサポートします。これにより、新しいC#機能に付随する素晴らしいC#IDEエクスペリエンスも提供されます。

IL2CPP:Unityが開発したスクリプトバックエンドで、一部のプラットフォーム用のプロジェクトを構築する際にMonoの代替手段として使用できます。IL2CPPを使用してプロジェクトを構築する場合、Unityは、選択したプラットフォーム用のネイティブバイナリファイル(たとえば.exe、apk、.xapなど)を作成する前に、ILコードをスクリプトおよびアセンブリからC ++コードに変換します。 IL2CPPは、iOSWebGLを構築する際に利用できる唯一のスクリプトバックエンドです。

f:id:nightowlgames0314:20180909001151j:plain

エディタを拡張してUnityをカスタマイズする

プログラマとしては、Inspctor、Scene、または標準エディタの他のビルトインウィンドウと同じように動作する独自のカスタムウィンドウでエディタを拡張できるため Unity の柔軟性が大幅に向上します。Unity に独自のツールを追加することで、あなたとあなたのチームの独自のワークフローとニーズがサポートされ、最終的に効率性が向上します。

【補足解説付き】Unity公式チュートリアル日本語翻訳【Basic Tutorials - 04:Prefab power - Ramping up】

f:id:nightowlgames0314:20161005154001j:plain

チュートリアルの始め方

f:id:nightowlgames0314:20180827215208p:plain
上図はUnityを起動した直後の画面です。Projects タブにはあなたが作成したゲームの一覧が並びます。Learn タブには Unity の公式チュートリアルの一覧が並びます。チュートリアルを学ぶためには Learn タブを選択します。

チュートリアル本編

f:id:nightowlgames0314:20180902120409p:plain

「04:Prefab power - Ramping up」をダウンロードすると現れる「Start」ボタンをクリックして開始します。

プレハブはすべての Unity ゲームの背後にある秘伝のタレです。このレッスンでは、プレハブを構築する方法を学びます。

f:id:nightowlgames0314:20180902122338p:plain

ゲームオブジェクトを望みどおりに設定したら、そのゲームオブジェクトを保存してそれをコピーすることができます。保存されたファイルをプレハブと呼びます。このチュートリアルではプレハブの使い方を学びます。

f:id:nightowlgames0314:20180902122933p:plain

最初に解決しなければならない問題を見てみましょう。テストをするために再生ボタンをクリックします。

f:id:nightowlgames0314:20180902123055p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを緑色の三角マーカーまで動かします。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180902123203p:plain

ゴール前の扉が開きましたが、そこまで行くことができません。私達のゲームに変更を加えるために、再生ボタンをクリックして再生モードを終了します。

f:id:nightowlgames0314:20180902123320p:plain

明るく強調されているウィンドウはプロジェクトウィンドウと呼ばれています。プロジェクトウィンドウにはゲームで使用される全てのファイルが表示されています。これらのファイルはアセットと呼ばれます。 アセットの種類には3Dモデル、音声ファイル、スクリプトなどがあります。プレハブはゲームオブジェクトのコピーを作るためのテンプレートです。プレハブもアセットの一種なのでプロジェクトウィンドウの中から見つけることができます。

f:id:nightowlgames0314:20180902124012p:plain

明るく強調されたプロジェクトウィンドウの中から Ramp と名付けられたプレハブをクリックして選択します。

f:id:nightowlgames0314:20180902124228p:plain

プロジェクトウィンドウからヒエラルキーウィンドウもしくはシーンビューにプレハブをドラッグすることでシーン内にプレハブのコピーを置くことができます。これは、プレハブのインスタンスを作成することとして知られています。

f:id:nightowlgames0314:20180902124620p:plain

Ramp プレハブのインスタンスを作成してみましょう。プロジェクトウィンドウから Ramp プレハブをヒエラルキーウィンドウ内の何もない空間にドラッグします。シーン内に Ramp プレハブのインスタンスが作成されます。

f:id:nightowlgames0314:20180902124941p:plain

Ramp プレハブをプロジェクトウィンドウからヒエラルキーウィンドウにドラッグした時に、シーン内にプレハブのコピーが置かれました。より高い場所に登るための斜道がプレイヤーの使用可能な場所にあります。

f:id:nightowlgames0314:20180902125454p:plain

再生ボタンをクリックして、私達が行った変更をテストしましょう。

f:id:nightowlgames0314:20180902125544p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを緑色の三角マーカーまで動かします。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180902125629p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを赤色の四角マーカーまで動かします。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180902125731p:plain

レーザーが道を妨げているため進むことができません。私達のゲームに変更を加えるために、再生ボタンをクリックして再生モードを終了します。

f:id:nightowlgames0314:20180902125959p:plain

私達はレーザーを妨げるためのプレハブをシーンに追加する必要があります。プロジェクトウィンドウの中から PushableBox と名付けられたプレハブを見つけます。PushableBox プレハブをヒエラルキーウィンドウの何もない空間にドラッグします。PushableBox プレハブインスタンスがシーンに作成されました。

f:id:nightowlgames0314:20180902130435p:plain

PushbaleBox プレハブのインスタンスの作成が完了しましたが、それは望む場所にありません。私達は定位置に動かす必要があります。ゲームオブジェクトを動かすためには、Transform と呼ばれるコンポーネントの値を変更します。全てのゲームオブジェクトが Transform コンポーネントを持っています。Transform コンポーネントはゲームオブジェクトがシーン内のどこにあるか、どのように回転され、どのようにスケーリングされるかに関する情報を保持します。

f:id:nightowlgames0314:20180902131305p:plain

Transform コンポーネントの値を変えることでPushableBox ゲームオブジェクトを定位置まで動かしてみましょう。インスペクターウィンドウで Transform コンポーネントの position x の値を -2 に変更してゲームオブジェクトの x 座標を移動させます。

f:id:nightowlgames0314:20180902131559p:plain

インスペクターウィンドウで Transform コンポーネントの position y の値を 2.5 に変更してゲームオブジェクトの y 座標を移動させます。

f:id:nightowlgames0314:20180902131722p:plain

インスペクターウィンドウで Transform コンポーネントの position z の値を 10 に変更してゲームオブジェクトの z 座標を移動させます。

f:id:nightowlgames0314:20180902131807p:plain

PushableBox ゲームオブジェクトの Transform コンポーネントの値を変更することで、ゲームオブジェクトのシーン内での位置を変更できました。PushableBox ゲームオブジェクトとは正しい場所にあります。

f:id:nightowlgames0314:20180902132019p:plain

再生ボタンをクリックして、私達が行った変更をテストしましょう。

f:id:nightowlgames0314:20180902132059p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを緑色の三角マーカーまで動かします。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180902132136p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを赤色の四角マーカーまで動かします。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180902132228p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターをゴールまで動かします。ゴールは動く矢印が目印です。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180902132300p:plain

ゴールできました。再生ボタンをクリックしてチュートリアルは完了です。

f:id:nightowlgames0314:20180902132336p:plain

このチュートリアルで私達は下記を学びました。

・プレハブはゲームオブジェクトのテンプレートのようなアセットの一種である

・プロジェクトウィンドウでプロジェクト内のアセットを見る方法

・シーン内にプレハブのインスタンスを作る方法

この章までで Basic Tutorial は全て完了です。Unity のチュートリアルやサンプルをもっと見たい場合は、Done をクリックしたあと Tutorial Projects や Resources を選択してみましょう。

【補足解説付き】Unity公式チュートリアル日本語翻訳【Basic Tutorials - 03:Tweaking Components - Values vs Zombies】

f:id:nightowlgames0314:20161005154001j:plain

チュートリアルの始め方

f:id:nightowlgames0314:20180829204252p:plain
上図はUnityを起動した直後の画面です。Projects タブにはあなたが作成したゲームの一覧が並びます。Learn タブには Unity の公式チュートリアルの一覧が並びます。チュートリアルを学ぶためには Learn タブを選択します。

チュートリアル本編

f:id:nightowlgames0314:20180829204509p:plain

「03:Tweaking Components - Values vs Zombies」をダウンロードすると現れる「Start」ボタンをクリックして開始します。

コンポーネントを理解するためのチュートリアルです。コンポーネントの数値がゲームにどのような影響を与えるのかを学習します。ゾンビから逃げるためにゾンビのスピードを遅くしてみましょう。

f:id:nightowlgames0314:20180829204626p:plain

コンポーネントに値を設定することによって、コンポーネントがゲームオブジェクトに影響を及ぼす程度を微調整できます。このチュートリアルでは、コンポーネントの値を設定する方法を学習します。

f:id:nightowlgames0314:20180829205141p:plain

最初に解決しなければならない問題を見てみましょう。テストをするために再生ボタンをクリックします。

f:id:nightowlgames0314:20180829205224p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを赤色の四角マーカーまで動かします。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180829205432p:plain

柵が開いて閉じ込められていたゾンビが出てきました。ゾンビの動きが早すぎるため通ることができません。変更を加えるために再生ボタンをクリックして再生モードを終了します。

f:id:nightowlgames0314:20180829205632p:plain

変更を加えるためには、まずそのゲームオブジェクトを選択する必要があります。明るく強調されたヒエラルキーウィンドウの中から Enemy と名付けられたゲームオブジェクトを選択します。

f:id:nightowlgames0314:20180829205918p:plain

Enemy ゲームオブジェクトは NavMeshAgent と呼ばれるコンポーネントを持っています。NavMeshAgent コンポーネントは Speed と名付けられた値を持っています。Speed の値を変更してみましょう。明るく強調された Speed の値を 1 に変更します。

f:id:nightowlgames0314:20180829210523p:plain

NavMeshAgent コンポーネントは Unity に組み込まれた AI( Artificial Inteligence )システムの一部です。ゲームオブジェクトが NavMeshAgent を持っているとき、そのゲームオブジェクトは AI を使って、周辺環境を考慮した経路を見つけることができます。つまり、人工知能によって壁や人間にぶつからないように避けて歩くことができます。

NavMeshAgent コンポーネントの Speed の値を操作することで、そのゲームオブジェクトが動く速度を調整することができます。

f:id:nightowlgames0314:20180829211857p:plain

私達が加えた変更をテストしてみましょう。再生ボタンをクリックしてください。

f:id:nightowlgames0314:20180829211950p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを赤色の四角マーカーまで動かします。柵が開いて閉じ込められていたゾンビが出てきましたが、ゾンビの動きが遅いため通ることができます。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180829212040p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを緑色の三角マーカーまで動かします。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180829212322p:plain

キャラクターを緑色の三角マーカーまで動かすと、ゴールがある部屋への扉が一瞬だけ開きますがすぐに閉じてしまいます。これではゴールできません。変更を加えるために再生ボタンをクリックして再生モードを終了します。

f:id:nightowlgames0314:20180829212543p:plain

まずは変更を加えたいゲームオブジェクトを選択します。ヒエラルキーウィンドウを使って AutomaticDoors と名付けられたゲームオブジェクトを選択してください。

f:id:nightowlgames0314:20180829212712p:plain

選択したゲームオブジェクトは Door と名付けられたコンポーネントを持っています。Door コンポーネントは TimeUntilClose と名付けられた値を持っています。インスペクターウィンドウから Door と名付けられたコンポーネントを見つけてください。TimeUnitlClose と名付けられた値を 10 に変更します。

f:id:nightowlgames0314:20180829213301p:plain

Rigidbody コンポーネントは Unity に組み込まれた物理システムの一部です。NavMeshAgent コンポーネントは Unity に組み込まれた AI システムの一部です。これまでのチュートリアルで紹介してきたコンポーネントは全て Unity に最初から組み込まれているシステムの一部でした。ですがこの Door コンポーネントは Unity に組み込まれているシステムの一部ではなく、このサンプルゲームのためだけに作られた特別なコンポーネントです。私達はコードを記述することで、オリジナルのコンポーネントを自由に作成することができます。後のチュートリアルでは実際にコードを記述します。

f:id:nightowlgames0314:20180829215827p:plain

私達が加えた変更をテストしてみましょう。再生ボタンをクリックしてください。

f:id:nightowlgames0314:20180829215919p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを赤色の四角マーカーまで動かします。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180829215959p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを緑色の三角マーカーまで動かします。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180829220222p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターをゴールまで動かします。ゴールは動く矢印が目印です。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180829220323p:plain

ゴールできました。再生ボタンをクリックしてチュートリアルは完了です。

f:id:nightowlgames0314:20180829220431p:plain

このチュートリアルで私達は下記を学びました。

・インスペクターウィンドウからコンポーネントの値を変更する方法

・Unity に最初から組み込まれているコンポーネントもあれば、コードを記述して独自のカスタムコンポーネントを作成することもできる。

 

 

【補足解説付き】Unity公式チュートリアル日本語翻訳【Basic Tutorials - 02:Game Objects & Components - Rigidbodies to the rescue】

f:id:nightowlgames0314:20161005154001j:plain

チュートリアルの始め方

f:id:nightowlgames0314:20180827215208p:plain
上図はUnityを起動した直後の画面です。Projects タブにはあなたが作成したゲームの一覧が並びます。Learn タブには Unity の公式チュートリアルの一覧が並びます。チュートリアルを学ぶためには Learn タブを選択します。

チュートリアル本編

f:id:nightowlgames0314:20180828210629p:plain

「02:Game Objects & Components - Rigidbodies to the rescue」をダウンロードすると現れる「Start」ボタンをクリックして開始します。

私達はゲームオブジェクトとコンポーネントを使用して、Unity でゲームを構築します。ゲームオブジェクトが物理法則に基づいた挙動をするためには Rigidbody コンポーネントを追加する必要があります。その方法について説明します。

f:id:nightowlgames0314:20180828212853p:plain

私達がシーンビューの中で見えているものはすべてゲームオブジェクトです。ゲームオブジェクトは Unity に欠かせない要素です。ゲームオブジェクトはそのままでは何もしません。私達はゲームオブジェクトの外観や挙動を変更するためにコンポーネントと呼ばれるものをゲームオブジェクトに追加します。コンポーネントは Unity に、そのゲームオブジェクトが何をするのか(=移動したり音を出したりなど)を教えます。

f:id:nightowlgames0314:20180828214352p:plain

最初に解決しなければならない問題を見てみましょう。テストをするために再生ボタンをクリックします。

f:id:nightowlgames0314:20180828214805p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを緑色の三角マーカーまで動かします。緑色の三角マーカーを踏むと Box1 を乗せている板が倒れます。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180828215427p:plain

このままでは先に進めません。私達のゲームに変更を加えるために、再生ボタンをクリックして再生モードを終了します。

f:id:nightowlgames0314:20180828215657p:plain

私達は先に進むことができませんでした。なぜなら私達が緑色の三角マーカーに移動して Box1 を乗せている板を倒しても Box1 には物理法則(=重力)が存在せず落下しないためです。この Box1 を落下させるためには、私達はあるコンポーネントを Box1 に追加する必要があります。そのコンポーネントは Rigidbody と呼ばれるものです。Rigidbody コンポーネントは Unity に組み込まれた物理システムの一部です。Rigidbody コンポーネントをゲームオブジェクトに追加することは、そのゲームオブジェクトが重力のような物理法則による影響を受けるようになることを意味します。

f:id:nightowlgames0314:20180828221125p:plain

ゲームオブジェクトにコンポーネントを追加するための手順を説明します。まずシーンビューにある Box1 をクリックして選択します。

f:id:nightowlgames0314:20180828221409p:plain

明るく強調されているウィンドウはインスペクターウィンドウと呼ばれています。私達がゲームオブジェクトを選択したときに、そのゲームオブジェクトについての情報をインスペクタービューで見ることができます。

f:id:nightowlgames0314:20180828221740p:plain

インスペクターウィンドウでは、選択したゲームオブジェクトにコンポーネントを追加することができます。インスペクターウィンドウの最下部にある [ Add Component ] ボタンをクリックすると現れるメニューから Physics を選択し、その中の Rigidbody を選択します。これで現在選択中のゲームオブジェクトに Rigidbody と呼ばれるコンポーネントが追加されます。

f:id:nightowlgames0314:20180828222408p:plain

インスペクターウィンドウの中に Rigidbody コンポーネントが追加されているのが確認できますね。

f:id:nightowlgames0314:20180828222526p:plain

私達が行った変更をテストし、物理法則の影響を受けたゲームオブジェクトに何が起こるかを見てみましょう。再生ボタンをクリックします。

f:id:nightowlgames0314:20180828223506p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを緑色の三角マーカーまで動かします。緑色の三角マーカーを踏むと Box1 を乗せている板が倒れます。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180828223620p:plain

板が倒れ、重力によって落下した Box1 がレーザーを塞きとめました。これで先に進むことができます。キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを赤色の四角マーカーまで動かします。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180828224057p:plain

赤色の四角マーカーを踏むとロボットアームが動くのですが Box2 をすり抜けてしまい、レーザーを塞きとめることができません。これでは先に進めません。変更を加えるために再生ボタンをクリックして再生モードを終了します。

f:id:nightowlgames0314:20180828224551p:plain

明るく強調されたウィンドウはヒエラルキーウィンドウと呼ばれています。ヒエラルキーウィンドウは私達がシーンビューで見ることができるすべてのリストです。ヒエラルキーウィンドウはシーン内のオブジェクトを整理して表示するために使います。

f:id:nightowlgames0314:20180828225201p:plain

Box2 ゲームオブジェクトには物理法則が効いていないため、ロボットアームに押されることができません。私達は Box2 にも Rigidbody コンポーネントを追加する必要があります。今回はヒエラルキーウィンドウを使用してゲームオブジェクトを選択する練習をしましょう。ヒエラルキーウィンドウの中から Box2 をクリックして選択します。

f:id:nightowlgames0314:20180828225723p:plain

インスペクターウィンドウの最下部にある [ Add Component ] ボタンをクリックすると現れるメニューから Physics を選択し、その中の Rigidbody を選択します。これで現在選択中のゲームオブジェクトに Rigidbody と呼ばれるコンポーネントが追加されます。

f:id:nightowlgames0314:20180828230053p:plain

再生ボタンをクリックして、私達が行った変更をテストしましょう。

f:id:nightowlgames0314:20180828230400p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを緑色の三角マーカーまで動かします。緑色の三角マーカーを踏むと Box1 を乗せている板が倒れて Box1 が落下し、レーザーを塞きとめます。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180828230533p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターを赤色の四角マーカーまで動かします。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180828230659p:plain

赤色の四角マーカーを踏むとロボットアームが動き Box2 を押し込んでレーザーを塞きとめました。キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターをゴールまで動かします。ゴールは動く矢印が目印です。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180828230933p:plain

ゴールできました。再生ボタンをクリックしてチュートリアルは完了です。

f:id:nightowlgames0314:20180828231048p:plain

このチュートリアルで私達は下記を学びました。

・ゲームオブジェクトとコンポーネントは Unity に欠かせない要素

・ゲームオブジェクトはコンポーネントを追加することで挙動が変わる

・シーンビューまたはヒエラルキーウィンドウからゲームオブジェクトを選択する方法

・インスペクターウィンドウからゲームオブジェクトにコンポーネントを追加する方法

【補足解説付き】Unity公式チュートリアル日本語翻訳【Basic Tutorials - 01: Play & Edit mode】

f:id:nightowlgames0314:20161005154001j:plain

チュートリアルの始め方

f:id:nightowlgames0314:20180827215208p:plain
上図はUnityを起動した直後の画面です。Projects タブにはあなたが作成したゲームの一覧が並びます。Learn タブには Unity の公式チュートリアルの一覧が並びます。チュートリアルを学ぶためには Learn タブを選択します。

チュートリアル本編

f:id:nightowlgames0314:20180827222437p:plain

「01:Play & Edit Mode」をダウンロードして最初の一歩を踏み出して下さい。Unityには2つのモードがあります。ゲームを編集するための編集モードと、それをテストするための再生モードです。このチュートリアルでは2つのモードについて学びます。

 ダウンロードが完了すると現れる「Start」ボタンをクリックします。 

f:id:nightowlgames0314:20180827222939p:plain

【再生モードと編集モードについて】

Unityでゲームを作るときの基本的なステップは下記の通りです。

    ・編集モードでゲームに変更を加える

    ・再生モードでゲームをプレイすることでその変化をテストする

私達はこのループを何度も繰り返します。このチュートリアルでは、ゲームをテストする方法を学習します。

f:id:nightowlgames0314:20180827224020p:plain

明るく強調されているウィンドウをチュートリアルウィンドウと呼びます。指示と情報がここに表示されます。このウィンドウの右上には[ホーム]ボタンがあります。クリックすることでいつでもチュートリアル選択画面に戻ることができます。[ホーム]ボタンの横には[再起動]ボタンがあります。クリックすることで現在のチュートリアルの最初に戻ることができます。[次へ]ボタンをクリックして続行します。

f:id:nightowlgames0314:20180827224827p:plain

明るく強調されたウィンドウをシーンビューと呼びます。私達はシーンビューでゲームを編集します。シーンは内部に物を納めるための容器です。世界やキャラクターなどのゲームを構築する全てがシーンに納められます。私達はシーンビューを使用して、シーン内に物体を表示および整列させることができます。編集モードとはシーンビューのことです。

f:id:nightowlgames0314:20180827225903p:plain

明るく強調されたウィンドウはゲームビューと呼ばれます。ゲームビューには実際にプレイヤーがゲームをプレイするときに見えるものが表示されます。私達はゲームビューでゲームをテストできます。再生モードとはゲームビューのことです。

f:id:nightowlgames0314:20180827230253p:plain

ゲームをテストしてみましょう。明るく強調された再生ボタンをクリックします。

f:id:nightowlgames0314:20180827230606p:plain

キーボードの W, A, S, D あるいは矢印キーを使ってキャラクターをゴールまで動かします。ゴールは動く矢印が目印です。Escキーを押下すると最初からやり直しができます。

f:id:nightowlgames0314:20180827231003p:plain

ゴールできたら、明るく強調された再生ボタンをクリックして再生モードを終了します。

f:id:nightowlgames0314:20180827231129p:plain

このチュートリアルで私達は下記を学びました。

・Unity でゲームをテストする方法

・再生モードと編集モードを切り替える方法

 

【徹底解説】開発者が知っておきたいUnityのインストール作業の全て【Unity2018】

f:id:nightowlgames0314:20160922054329j:plain

Unityとは

Unity とは世界最大シェアを誇るゲームエンジンです。ゲームエンジンとはゲームを作るための統合開発環境のことです。ゲームを開発しようと思った時に3D描画やサウンド再生や重力計算などの、どのゲームでも必要になる汎用的な機能をゼロから開発するのは無駄が多いですよね。ゲームエンジンはそれらの機能を最初から備えた、ゲーム開発の効率を大幅に向上するためのツールであり、現代のゲーム開発において欠かせない存在となっています。 Nintendo や SQUARE ENIX も、自社タイトルのゲームエンジンとして Unity を正式に採用しています。

【 ↓ Unity で作られたゲームの例】

ライセンスの違い

Unity には4種類のライセンスが存在します。ライセンスとは使用許可証のことです。ライセンスの種類によって Unity で使用できる機能やサポートの手厚さが異なります。それぞれのライセンスの違いを紹介します。

価格

【 Personal 】

無料

【 Plus 】

月額4,200円、もしくは年間プラン一括払いで35,880円(月額2,990円相当)

【 Pro 】

月額15,000円、もしくは2年間プラン一括払いで342,000円(月額14,250円相当)

【 Enterprise 】

特別なサポートやコンサルティングを必要とする大きな組織向けのライセンスで、価格は要望内容に応じて変動します。

資格要件

【 Personal 】

会社の年間総売上が $100,000 よりも多い場合、または $100,000 を超える資金がある場合、プロトタイプであるなしにかかわらず Personal を利用する資格はありません。例外として、資格がなくてもUnityを試用する目的だけのためであれば30日以下の範囲内で Personal を使用することが認められています。30日の使用期限が過ぎたらアンインストールして Personal の使用を停止するか Pro にアップグレードする必要があります。

【 Plus 】

会社の年間総売上が $200,000 よりも多い場合、または $200,000 を超える資金がある場合、Plus を利用する資格はありません。

【 Pro 】

どなたでも利用できます。

【 Enterprise 】

特別なサポートやコンサルティングを必要とする大きな組織向けのライセンスで、資格要件は要望内容に応じて変動します。

機能

コアエンジンのすべての機能 Personal Plus Pro 

Unity でゲームを開発するためのすべての機能は、どのライセンスでも利用できると考えて問題ありません。ライセンスによる差は主に「 Unity スペシャリストとチャットできる権利」や「ユーザーの行動分析機能のグレードアップ」など補助的な側面に現れます。

すべてのプラットフォームへの対応 Personal Plus Pro

プラットフォームとはゲームを公開する環境のことです。例えば Google PlayApple Store、あるいは PS43DS などです。本来ゲームを開発する際にはプラットフォームごとに別々に開発する必要があります。しかし Unity にはマルチプラットフォームと呼ばれる機能があり、あなたが開発したゲームをボタン一つで Google Play 用、Apple Store 用、PS4 用に変換することができます。Unity は全部で27種類ものプラットフォームに対応しています。

ベータ版の利用 Personal Plus Pro

ベータ版とは、Unity の新しいバージョンが開発された際の、正式にリリースされる前の段階でユーザーに提供されるサンプルのことです。

Multiplayer: 同時接続プレイヤー(ソフトキャップ) Personal Plus Pro 

Unity でリアルタイムオンライン対応のマルチプレイヤー向けゲームを最も簡単に作るための仕組みです。実装や高度なカスタマイズもあっという間です。Unity が提供するサーバーで、ゲームプレイヤーはお互い一緒に遊ぶプレイヤーを見つけることができます。ライセンスによって同時接続数の上限が異なり、Personal なら20人、Plus なら50人、Pro なら200人までです。同時接続数とは「ある時点において、ゲームをプレイしているアクティブユーザー数」を指します。用途としてはシューティングゲーム、レースゲーム、アクションRPGゲームなどのようにセッションに基づいたリアルタイムゲームなどが適しています。使用には別途料金が発生し、下記のリンク先で簡単な見積額が出せます。https://unity3d.com/jp/unity/features/multiplayer

Analytics:コアアナリティクス Personal Plus Pro 

ユーザーの行動を分析するための機能です。ゲームプレイ体験を改善することで収益を最適化します。Personal では、Plusと比較して多少機能に制限がかかります。

広告 Personal Plus Pro 

モバイルゲーム向けに、広告を表示して収益を得たり、広告を出稿することが可能です。当然ですが、ライセンスによって広告で得られる売上に上限があります。Personal なら$100,000、Plus なら$200,000までです。

アプリ内課金 Personal Plus Pro 

複数のプラットフォームにまたがるアプリ内課金の設定を簡易化します。

継続的なアップデート Personal Plus Pro 

新機能、機能強化や新プラットフォーム対応を含む継続的な更新が利用できます。

ロイヤリティフリー Personal Plus Pro 

Unity ライセンスのプランは、ロイヤリティーフリーです。売上に応じて別途料金を支払う必要はありません。

Unity Success Advisor(英語のみ) Plus Pro

Unity のスペシャリストからチャットで下記のような支援を受けることができます。

  • Unity のエンジニアや営業が主催する、トレーニングセッションやライブ Q&A などの限定イベントへの招待
  • Unity での開発を極限まで効率的かつスマートに行うためのツールやリソースの紹介
  • クリエイティブ面の成長を支援する新たなコンテストやトレーニングの紹介
  • 契約中のライセンスで使える最新機能の紹介
  • 契約中のライセンスのサービスを最大限活用した開発のサポート

Unity Game Dev Courses(英語のみ) Plus Pro

Unity でのゲーム開発を一から学ぶための学習用動画に12 ヶ月間無料(16200円相当)でアクセスすることが可能になります。基礎から始めて、アート、プログラミング、ゲームデザインへと学びを広げていけます。

アセットストア 20% 割引特典 Plus Pro

Asset Store というゲーム開発の素材となるものをダウンロードできるデパートのようなところがあります。そこでの人気のアセットを20%オフで購入することができます。

スプラッシュスクリーンのカスタマイズ Plus Pro

スプラッシュスクリーンで使用する画像を指定できます。スプラッシュスクリーンとは、アプリを開いてから起動が完了するまでのつなぎとして表示される画像のことです。Untiy で制作されたアプリにはデフォルトでは Untiy のロゴが表記されたスプラッシュ画面が強制で表示されるようになっています。これを変更することは Unity Personal Edition(無料版)では許可されていません。

Pro 用エディタースキン UI Plus Pro

美しく目に優しいダーク系スキンのUI環境でゲームを作ることができます。ただのオシャレ機能です。

Performance Crash Reporting Plus Pro

バイス、プラットフォームやビルド間で発生するアプリエラーを自動的にキャプチャーします。リアルタイムに報告されるエラーに優先付けを行います。

フレキシブルなシート管理 Plus Pro

チーム内の誰がどのように Unity を使うかを管理することができます。

Analytics: Priority Support & Livestream Plus Pro

優先サポートを利用してすばやく質問に答えていただけます。また、ユーザーの行動をリアルタイムで集計して可視化します。ゲームイベントや広告、販売促進などのプロモーションを行った際の急上昇を確認できます。

Analytics:月 50GB までの生データエクスポート Pro

蓄積した分析データに簡単にアクセスすることができ、エクセルファイルとして出力することが可能です。制限は50GBまでです。

Analytics: 3D ヒートマップによる視覚化 Pro

ゲーム中のプレイヤーの行動や課金などのヒートマップによる視覚化ができます。

別途ソースコードも購入可能 Pro

ソースコードにアクセスして Unity を必要に応じて自由にカスタマイズできる可能性を提供します。エンジンの好きな部分を改良して、他に類を見ないゲームや、限界を超えたパフォーマンスを実現できます

別途プレミアムサポート(英語のみ)へ加入可能 Pro

Unity のプレミアムサポートチームは、販売までの時間を短縮し、タイトルが注目され、問題が発生するのを防ぎ迅速に処理する最良の方法、トレーニングやガイダンスも提供します。プレミアムサポート(英語のみ)の購入に関して興味がある場合は営業担当に連絡をします。

Unity Teams Advanced Pro

Unity Teams と呼ばれるサービスの有料版です。Unity Teams は、チームで一緒に、より速く、メンバー間のスムーズな開発を支援します。具体的には Unity プロジェクトを誰とでも保存、共有、同期することが簡単になります。無料版との違いは下記の通りです。

  • 無料版では1GBのクラウドストレージが用意されますが、有料版では25GBです
  • 無料版ではチームメンバーの上限は3人までですが、有料版では無制限です
  • クラウドビルドと呼ばれる、ビルドを作成してチーム全体に配布する方法を合理化する機能が利用できるため時間を節約できます

インストール手順

まずは下記のURLから Unity の公式サイトにアクセスしましょう。

https://unity3d.com/jp

f:id:nightowlgames0314:20180822222625p:plain

画面右上の「 Unity を入手」をクリックします。

f:id:nightowlgames0314:20180822222750p:plain

ライセンスによる価格、資格要件、機能の差については先述した通りです。

今回は Personal のインストール手順を例に紹介していきます。

「 Personal を試す」をクリックします。

f:id:nightowlgames0314:20180822223337p:plain

チェックボックスにチェックをいれて条件に同意すると「 Mac OS X 用のインストーラーをダウンロードする」がクリックできるようになります。インストーラーとはコンピューターに新たにアプリをインストールするためのツールです。「 Unity Hub(プレビュー版)をダウンロード」という選択肢もありますが、こちらはまだプレビュー版のため説明を割愛します。簡単な紹介だけすると、 Unity Hub は複数のバージョンの Unity をインストールおよび管理し、プロジェクトごとに使用するUnityのバージョンを指定することが可能になる機能です。今回は「 Mac OS X 用のインストーラーをダウンロードする」をクリックして先に進みます。

f:id:nightowlgames0314:20180822224155p:plain

UnityDownloadAssistant-2018.2.4f1.dmg のようなファイル名のインストーラーがダウンロードされるのでダブルクリックします。

f:id:nightowlgames0314:20180822224749p:plain

「 Release Notes.html 」をダブルクリックで選択すると Unity 公式サイトにあるリリースノートのページが開きます。リリースノートとは Unity の新しいバージョンが公開されるときにその特徴などを説明するために同時に公開されるものです。

「 Unity Download Assistant.app 」をダブルクリックしてインストール作業を進めます。 

f:id:nightowlgames0314:20180822230443p:plain

Apple Store 以外からダウンロードしたアプリを開く際には、そのアプリが安全な場所からダウンロードしたものなのか確認を求められます。 store.unity.com は信頼できる提供元なので「開く」をクリックします。

f:id:nightowlgames0314:20180822231129p:plain

最初に Introduction (=前書き)が表示されます。ここに書かれている内容は、あなたへの挨拶とインストール手順の簡単な説明です。「 Continue 」をクリックして先へ進みます。

f:id:nightowlgames0314:20180822231703p:plain

Unity の利用規約が表示されました。ここで書かれている内容は下記の通りになります。

  • Unity を購入あるいは Unity にあなたの作品を提出するためには18歳以上である必要があり、そうでなければ保護者の同意が必要です。
  • パスワードの流出などによりあなたのアカウントが不正使用された場合には support@unity3d.com にメールを送信することでUnityアカウントをキャンセルすることができます。Unity アカウントをキャンセルしてもサービスのために残っているすべての金額を支払う義務は免除されません。
  • その他、著作権や支払義務など当然の内容につき割愛…

「 Continue 」をクリックします。

f:id:nightowlgames0314:20180822233954p:plain

利用規約への同意を求められています。「 Agree 」(=同意)をクリックします。

f:id:nightowlgames0314:20180822234238p:plain

どの機能をダウンロードするのかを選択する画面が表示されました。それぞれの機能が何かを下記で解説します。ダウンロードしたいものにチェックをいれて「 Continue 」をクリックします。

Unity 2018.2.4f1

Unity アプリの本体です。必ずダウンロードしましょう。

Visual Studio for Mac

Microsoft 社が開発している総合開発環境です。統合開発環境とは開発で必要なものがほぼ全部詰め込まれているツールのことで、一般的には「コードエディタ」「コンパイラ」「リンカ」「デバッガ」「テストツール」「バージョン管理ソフト」などで構成されます。必ずダウンロードしましょう。

Documentaition

Unity のマニュアルです。インターネット上でも公開されているのでダウンロードしなくても問題はありません。

Android Build Support

Google Play でアプリを公開したい場合はダウンロードします。

iOS Build Support

Apple Store でアプリを公開したい場合はダウンロードします。

その他…

その他のダウンロード物はすべて各プラットフォームに対応するためのビルドサポートです。作りたいプラットフォームが決まっている場合などは、合わせてダウンロードしましょう。

f:id:nightowlgames0314:20180823001242p:plain

Unity は、Microsoft 社が開発している総合開発環境である Visual Studio や、同じく統合開発環境である Mono を内包しています。そちらの利用規約への同意もここで要求されています。「 Contiune 」をクリックして「 Agree 」を選択してください。

f:id:nightowlgames0314:20180823001625p:plain

Unity をインストールする場所を選択する画面が表示されました。選択肢が二つあるように見えますが右側の「 Unity Do...Assisutant 」にはインストールできません。「 Macintosh HD 」を選択して「 Continue 」をクリックします。

f:id:nightowlgames0314:20180823001936p:plain

ダウンロードが開始しました。

f:id:nightowlgames0314:20180823002057p:plain

ダウンロードが完了するとインストールが開始しました。

f:id:nightowlgames0314:20180823002204p:plain

インストールが完了しました。まだ作業は終わりではなく、最後に Unity のアカウントを作成する必要があります。「 Launch Unity 」にチェックをいれたまま「 Close 」をクリックすると自動で Unity が起動します。

f:id:nightowlgames0314:20180823213213p:plain

ログイン画面が表示されます。2012年に Unity のユーザーアカウントシステムが刷新されて各サービスがシングルサインオン(一つのアカウントでログイン)に対応しました。Unity Ads などの Unity 関連のすべてのサービスにこれから作成する Unity のアカウントだけでログインできるようになります。

 「 create one 」をクリックしてアカウントの作成を開始します。

f:id:nightowlgames0314:20180823215634p:plain

【Email】

Unity のアカウントとして使用するメールアドレスを入力してください。

【Username】

Unity のコミュニティなどで表示するニックネームを入力します。

【Password】

大文字と小文字と数字を含む8文字以上のパスワードを入力してください。

【Full Name】

名前を入力します。

【I agree to the Unity Terms of Use and Privacy Policy】

Unity の利用規約と個人情報保護方針に同意するかと聞かれています。チェックをいれます。

【I understand that checking this box that I am agreeing to receive promotional materials from Unity】

Unity からの販促メールを受け取りますかと聞かれています。チェックをいれます。

【Create a Unity ID】

すべての項目に入力が完了したらこちらをクリックします。

f:id:nightowlgames0314:20180823221006p:plain

確認画面が表示されました。この画面にはあとで戻ってきて作業するので閉じないでください。先ほど登録したメールアドレス宛に下図のような確認メールが届きます。

f:id:nightowlgames0314:20180823221643p:plain

「 Link to confirm email 」をクリックします。

f:id:nightowlgames0314:20180823221843p:plain

先ほど作成した Unity アカウントのメールアドレスとパスワードを入力して「 Sign In 」をクリックします。

f:id:nightowlgames0314:20180823222445p:plain

Unity のアカウント設定ページが開きます。このページはもう閉じてしまっても構いません。先ほど開いたままにしておいた下図の確認画面に戻ります。

f:id:nightowlgames0314:20180823221006p:plain

「 Continue 」をクリックします。

f:id:nightowlgames0314:20180823222903p:plain

ライセンスの選択画面です。今回は Personal を使用するので「 Unity Personal 」にチェックをいれて「 Next 」をクリックします。

f:id:nightowlgames0314:20180823223149p:plain

あなたの事業規模の確認です。下記の中から該当するものを選択してから「 Next 」をクリックして先へ進みます。

【 The company or organization I represent earned more than $100,000 in gross revenue in the previous fiscal year. 】

「前期の売り上げが10万ドル以上あります」という意味です。売り上げが10万ドル以上ある場合、本来 Personal を使用する資格は無いのですが、試用目的であれば30日以下の範囲内で Personal を使用することが認められています。こちらを選択した場合は、30日の使用期限が過ぎたらアンインストールして Personal の使用を停止するか Pro にアップグレードする必要があります。

【 The company or organization I represent earned less than $100,000 in gross revenue in the previous fiscal year. 】

「前期の売り上げが10万ドル以下です」という意味です。

【 I don’t use Unity in a professional capacity. 】

「営業していません」という意味です。趣味で使用する場合などはこちらを選択します。

f:id:nightowlgames0314:20180823224221p:plain

プロフィール設定画面が表示されました。回答して「 OK 」をクリックします。

【 Where are you located? 】

居住国を聞かれています。日本にいる場合は Japan を選択しましょう。

【 In what capacity do you primarily use Unity? 】

Unity を使用する主目的を聞かれています。

【 What is your primary role? 】

本業を聞かれています。

【 How would you rate your Unity skills? 】

Unity の習熟度を聞かれています。

【 Platforms of interst 】

興味のあるプラットフォームを聞かれています。

【 What type of project do you primarily plan to develop with Unity? 】

Unity で何を開発する予定かを聞かれています。

f:id:nightowlgames0314:20180823225537p:plain

Unity のアカウントが作成できました!「 Start Using Unity 」をクリックします。

f:id:nightowlgames0314:20180823225645p:plain

この画面が Unity を起動した時に毎回最初に開かれる画面です。今は何も無い画面ですが、あなたがUnityで作成したものがここにリスト化されて並んでいきます。

最後にもう不要となった Unity のインストーラーを削除しましょう。

f:id:nightowlgames0314:20180823230133p:plain

画面右上の「 Unity Download Assistant 」を削除します。画面左下の顔アイコンをクリックすると「 Finder 」が起動します。「 Finder 」の左側メニューの「デバイス」のところにある「 Unity Download Assistant 」を選択して「 "Unity Download Assistant" を取り出す」 をクリックすると画面右上から「 Unity Download Assistant 」が消えます。

以上で Unity のインストール作業は完了です。

お疲れ様でした!

【第一章】ゲームの作り方【準備編】

f:id:nightowlgames0314:20180805121121j:plain

MacBookProを購入しよう

ゲームを開発するためにはパソコンが必要です。ゲーム開発をしたいプログラマーへはMacBookProを購入することを推奨します。スマートフォン用アプリを開発する際にWindowsではAndroid用のゲームしか開発できませんが、MacOSならAndroid用とiOS用の両方のゲームを開発することができるため、MacOSを搭載したApple社製のパソコンが必須になります。MacBookProであればゲーム開発に必要になる画像編集ソフトや2Dアニメーションソフトなどの各種ソフトウェアの推奨環境も満たしています。他のApple社製のパソコンはどうかというと、MacBookとMacBookAirでは性能が心許なく、MacMiniは2014年発売のため型が古く、iMacは持ち運びができず、MacProとiMacProはとても高価です。

購入する場所は何処がよいのかについても紹介します。基本的には家電量販店で買うのが良いかと思います。ビックカメラヨドバシカメラなら貰えるポイントの分だけ安く購入することが可能です。ただし「JISキーボードではなくUSキーボードに変更したい」「家電量販店で販売されている標準モデルではなく高性能なオプションをもっとつけたい」など性能と利便性の向上のためにカスタマイズをしたい方は家電量販店では対応できないことがほとんどですので、Apple Storeから購入する必要があります。

下記の記事でパソコンの選び方についてより詳しく解説しています。

MacBookProの初期設定をしよう

MacBookProの初回起動時には音声ガイド付きの初期設定作業があります。初期設定の手順については下記の記事を参照してください。下記の記事に簡単な補足をさせて頂くと、記事内ではAppleIDを事前に作成するとありますが、初めてMac製品を購入した方には事前にAppleIDを作成することは難しいと思います。しかしメールアドレスさえ作成しておけば問題はありません。初期設定中にそのメールアドレスをAppleIDとして作成できます。ただ注意点としてはキャリアのメールアドレスはAppleIDには非推奨です。Gmailなどのフリーアドレスを取得しましょう。もう一つ、「キーボード入力環境を選択」の設定画面で「キーボード配列を選択してください」とあるのですが、ここはUSキーボードでも「日本語」を選択しましょう。日本語以外を選択すると日本語が打てなくなります。

apple-teach.com

MacBookProを使いやすいようにカスタマイズしよう

MacBookProの操作性を向上するために下記の記事を参考にして設定してみましょう。下記の記事に補足すると、ウイルス対策ファイアウォールとFileVaultの設定をオンにするように書かれていますが、後述するウイルス対策ソフトにもファイアウォールが実装されておりそちらと競合してしまうためウイルス対策ソフトを使用予定の方はオフにしておきましょう。

ウイルス対策ソフトをインストールしよう

ゲーム開発のためのパソコンには大事な情報をたくさん詰め込むことになります。ウイルス対策はしておきましょう。ウイルス対策ソフトの選び方は下記の記事が参考になります。私はESETをインストールしています。ゲーム制作のために様々なソフトウェアを同時起動することを想定して動作の軽さを重視した選択です。コストパフォーマンスが良いことも魅力に感じました。まずは無料体験版を試してゲーム制作用のソフトウェアらと競合を起こさないことを確認してから製品版を購入しましょう。

ブラウザをインストールしよう

Apple社製であるMacBookProには最初からSafariと呼ばれるブラウザがインストールされていますが、ゲーム開発の工程ではブラウザ依存の不具合も起こり得るため、他のブラウザもインストールしておきましょう。 最低限SafariChromeさえインストールしてあれば問題はないかと思います。ブラウザの基礎知識については下記の記事が参考になります。

ゲームエンジンをインストールしよう

下記の記事ではUnityのインストール方法が初心者の方にもわかりやすく紹介されていますので参考にしてください。補足させて頂くと、下記記事では画像のように、デフォルト設定のままContinueを押して次に進むと書いてありますが、iOS用ゲームを開発したい場合は「iOS Build Support」、Android用ゲームを開発したい場合は「Android Build Support」、ブラウザ用ゲームを開発したい場合は「WebGL Build Support」にもチェックをつけてください。

f:id:nightowlgames0314:20180805175849p:plain