FLINTERS Engineer's Blog

FLINTERSのエンジニアによる技術ブログ

【Unityへの道】はじめにはじめに・・・【C#もね】

こんにちは!@tsumakkyです。
もう新年明けて1ヶ月が経とうとしています…時の流れは早いですねぇ、っていつも歳の話をしてる気がします(笑)

新年の目標、皆さんは立てましたか?
私は今年は【Unityを操れるようになる!】と目標を立てました(言っちゃった)!
この目標に至った経緯を話すと少し長くなるんですが、最初の記事なのでUnityの軽い概要を織り交ぜながらお話したいなぁと思っています。よろしければお付き合いください!


f:id:septeni-original:20150722151452p:plain
最初にUnityのお話をしたいと思います。
ちなみに私もあまりわかってないのであしからず…

そもそもUnityって?

スマートフォンアプリにかかわらず、最近のハイクオリティなアプリ・ゲームってどうやって作ってるの?って思うことってありませんか?恐らく、その殆どがUnityで創られたといっても過言じゃないかもしれません!(何かUnityの回し者みたい笑)

まずはUnityサイトの映像を御覧ください→Unity

私もエンジニアをちょっぴりかじってる者として、例えば映像の中にあったような3Dなアプリとか、グラフィックがすごいゲームとか見ると、どの言語で書けばあんな風に表現できるんだろう…と思っていました。そんな高度なアプリが、気軽に案外簡単(らしい)に創れるのがこの【Unity】なんです!

Unityは、下で書きますが様々なプラットフォームで動かせるアプリ・ゲームを開発できる環境です。グラフィックを作るビジュアルエディタとゲームエンジンを作るスクリプトエディタがセットになっています。3Dのゲームを作るのにもってこいな環境ですが、ゲームだけでなく3Dのハイクオリティなグラフィックを生かしパイロットや医療現場のシュミレーターなどの開発にも利用されているようです。3Dは素晴らしいですが、もちろん2Dのものも作れます。

プラットフォームは?

UnityはスマートフォンAndroidiPhoneはもちろん、Webアプリ、はたまた家庭用ゲーム機用のゲームだって創れるんです!

スマートフォンアプリ
 →Android  →iPhone
○デスクトップアプリ
 →Windows  →mac  →Linux
○ブラウザアプリ
 →ほぼ全てのwebブラウザ(Internet Explorer, Firefox, Chrome, Safari, Opera)
 →Adobe Flash Player
○家庭用ゲーム機
 →Wii U  →PS3  →Xbox 360

これだけ多くのプラットフォームに対応しているので、完成したプロジェクトを別プラットフォームに横展開させることも簡単なのです!

そうそう、弊社が入居しているビルのカンファレンスホールで年に2回『秋葉原電気街祭り』というイベントが行われるようになったのです。興味本位で行ってみて、美少女ゲームのデモを見せてもらったのですが、もしかして…?と思い、「Unityですか?」と聞いたら、びっくりした顔で「そうです。」と言っていましたので、最近の萌えゲーム、美少女ゲームもUnityで創られているものが多いのかもしれませんね!

スクリプトは何の言語で書けばいいの?

Unityでは、3つのスクリプト言語をサポートしています。

C#
Javascript
○Boo (Pythonの方言)

これら3つの言語を、Unityのエディタ1つで書くことができるのです。つまり、1つのプロジェクトで複数の言語のスクリプトを混ぜて使用することもできます(ファイルごとに言語はもちろん分けないといけませんが)!なんて柔軟なの!
しかしやはりどの言語が1番向いている、使いやすいのかという疑問も湧くと思います。この答えとしては、本当に個人的な好みでいいとのことです。開発って、やはりそのシステムや、環境によってこの言語が有利だとか、向いているってあると思いますが、Unityに関しては、どれを使ってもほぼほぼ同様のパフォーマンスが期待できるそうです。
…ただ、やはり言語の仕様上、癖・強みがあるので、私たちが作りたいものを表現するためには、この言語が向いている、この言語しかできないってのはもしかしたらあるかもしれませんね。私が参考にしている書籍(*)でも『Unityを手早く覚えるならJavaScript、本格的に使い込むならC#』と書いてあります。やっぱ、Cがつく言語は最強なんでしょう…。

***最後にちょっと************

私は去年から、次の2つに興味を持ち、勉強したいなと思っていました。
それが、Unityとdartです。

Unityは、この業界の端っこの下っ端にいる私ですら、最近は良く聞く言葉です。
変にアプリなんか作ったものだから、別のプラットフォームで作ってみたいななんて気持ちが少なからずあり。いっその事、この今をときめくUnityで作っちゃう?なんて思って先輩と話してしまったのが始まりです。

話は変わり、私たちは普段のお仕事は、専らphpjavaScript(jQuery,Ajax等)を使って開発しています。しかし私、このjavaScriptが全然好きになれなくて、javaScriptに代わる、新しいjavaScriptで書けないものかといつも思っておりました。そんな時、システムのリファクタリング案を考える機会があり、javaScriptの代替案を調べることになりました。そこで出会ったのが、dartです。
dartはまた今度しっかり調べられたら記事にしたいなと思っています。

で、これが何に関係するのかといいますと、

Unityでアプリ創ってみたい→UnityのスクリプトjavaScriptで書きたくない≒C#かBoo(…って何?)を勉強しなければならない→Unityと一緒にC#も勉強しよう!

こういう構図ができたわけです!
Cがつく言語にも興味がありましたし。Javaにかなり似てるらしいし。
ですから、わたくし、Unityのために、C#も勉強します!
ちなみに周りにC#使いがいないので、俄然やる気でちゃいますよね!
目指せ渇望される女!(笑)

*****************

というわけで、これからちょっとずつUnityの勉強して、今年中にUnityを操れるようになりたいなという希望を込めて。学んだこと、気付きは随時更新していこうと思います。
次から、実際にUnity触っていきます!



(*)ミシェル・メナード著(2011)『Unityではじまるゲームづくり』SoftBank Creative