拡張現実(AR)と仮想現実(VR)のコンテンツ開発者の需要は、テクノロジーの進化と共に高くなってきています。では、どのようなスキルが求められるのでしょうか。開発者の間で人気のプログラミング言語は、以下の通りです。
- C#
- C / C ++
- Java
- JavaScript
- Python
- Swift
出典は、毎年最悪のパスワードを発表していることで知られているSlashData社です。同社は、26,000人の開発者を対象に収集しています。残念ながら、オリジナルの集計結果は同社サイトより失われています。しかし、ARやVRの開発に携わった者との肌感覚と近いため、この順位を元に言語選定には役立つ情報をまとめました。
ここでは学習する言語選びの観点から語っています。
AR/VRに人気のプログラミング言語
興味深いのは、IT業界の間で人気や学習対象として挙げられる順位と違いが大きい点です。IT業界で、使われている言語または学びたい言語の1~2位のJavaScriptが4位である一方、C#がトップに上がっています。
1位 C#
C#は、ゲームエンジンであるUnityが採用している言語です。世界の人気のあるゲームは、Unitiyによって作られており、エンターテイメント性を求められる分野で浸透しています。対応デバイスが多く、C#で作りさえすれば、それらサポートしているデバイスで動くことが保障されるクロスプラットフォーム開発が実現できます。
Androidのアプリとして作り、ブラウザで動作するコンテンツとして作り、といったUnityは夢のような作りができるのです。そのため、ARやVRコンテンツにエンターテイメント性が求められているだけではなく、デバイスを選ばない点が支持されているとも考えられます。
しかし、Unityにも弱点があります。ARのライブラリ(AR Core)のリリースが遅い点です。AndroidStudioやXcodeに対してリリースされているライブラリを数か月も待ってからでなければ使えないのです。しかも、デバイス毎の細かい設定が実現できないことも知られています。
これは、エンターテイメント性を求められる場合、ダメージになりかねません。ユーザーは新しいものを好む傾向があるため、常に最先端なければならないからです。
各デバイスに合わせて実装を変えるコストが抑えられますので、C#が選択の第一候補にあがるのは間違いないでしょう。
2位 C / C ++
デバイス依存を求められる時に必要になる言語です。C/C++は、高級言語に位置づけられていますが、アセンブリに近い記述もできます。それどころか、部分的にアセンブリで記述できるのです。そのため、非常に高速な動作が期待できます。
この高速性が限られたハードウェアのスペックを補えます。AR・VRのコンテンツを走らせる実機のスペックが高いとは限りません。しかし、ARやVRは3次元処理の上に映像加工を施しているため、演算処理が多いのです。
コンテンツはハイスペックが必要、しかし実機はロースペックという矛盾した状況で、唯一クリアできるのがC/C++です。そのため、C/C++を身に付けた人は、大切な存在として見られるでしょう。
3位 Java
Android端末向けのアプリ開発ができるAndroidStudioがメインとして採用しているためだと思われます。Androidは日本と違い、スマホのシェアで7割を占め(出典 statcounter)、プラス材料になったことは間違いありません。
開発現場では、ARのライブラリとして、”AR Core”が選ばれています。このライブラリは、Andoridの別の開発言語であるKotrin、iOSの開発言語であるswift、クロスプラットフォームのUnityにも対応しているため、移植性が高くできます。
4位 JavaScript
ブラウザ上でARを実現するために採用されますが、特徴は実装の容易さです。カメラで映した映像の上に3Dオブジェクトを乗せる機能が僅か10行程度で実現できてしまいます。
WebARというブラウザ上でARを実現するための技術があり、JavaScriptのライブラリで可能になります。具体的にはA-Frameとar.jsという2つのライブラリを使います。ブラウザ上で実現できるためユーザーがインストールする必要はありません。
A-Frameは、VR機能を簡単に実現できるフレームワークで、ar.jsはカメラが捉えた映像、その上のマーカー、オブジェクトを紐づけするものです。A-Frame上でar.jsを動かすイメージです。
実際に動かしてみると遅いというのが正直なところfです。しかし、とても簡単に実装できるうえに、ユーザーがインストールせずにお手軽に楽しめる点は見逃せないでしょう。
5位 Python
選ばれる理由はPythonが持つ記述量の少なさにあります。先述したJavaScript程ではありませんが、絶対量は他の言語よりも少なくなります。特に3D演算では、数学を用いて記述が多くなる傾向があります。Pythonは、それを簡単に実現できるので他の言語と比較するとアドバンテージがあります。
ARで実際に使われるライブラリは、オープンソースのOpenCVなのですが、機能が一通り揃っており他のライブラリと比較しても遜色はありません。
また、スマホでも動作しますので、アプリとしてインストールして、お手軽に試してみることができます。
6位 Swift
iPhone(iOS)向けのアプリ提供で使われます。iOSのARコンテンツの開発では、ライブラリとして”AR Core”の他、”Apple ARKit”が利用できます。
“AR Core”は、Androidに提供されているため移植が容易になりますが、”Apple ARKit”と比較すると機能が落ちます。モーションのキャプチャや物体の追跡する機能が弱いのです。そのため、より高性能なアプリを提供したい場合、この言語を選択することになります。
コメント