はじめに
こんにちは!最近、スマホの買い替えが喫緊の課題となっている、BFTの一三です。
以前、「【VR】ココがおもしろい!VRの世界!」と題して、VRの歴史から課題、活用場面(ユースケース)について紹介しました。
この記事の最後にも記載しておりますが、自社オフィスをVRのワールドとして作ったことで、VRコンテンツを開発することの面白さや特徴が見えてきました。そこで今回は、VRコンテンツを開発するにあたって必要な環境や用語について紹介したいと思います。
どんなPCでVRコンテンツを開発するの?
まず、VRコンテンツを開発する上で推奨されているPCのスペックは以下の通りです。(出典:『Unityでつくる建築VR入門』)
このスペックを満たすPCの例に、こんなものがあります。
こういったPCは、巷では「ゲーミングPC」と呼ばれています。そもそもゲーミングPCと言われてもピンとこない読者の方もいると思いますので、その説明から始めます。
ゲーミングPCって何?
ゲーミングPCには、普通のPCと比較して以下の3つの特徴があります。
- 特徴1 グラフィックカードを搭載
ゲーミングPCとは、3Dゲームができるグラフィックカードを搭載した高性能なPCのことを指します。また、グラフィックスはCPU内蔵ではなく、GeForceやRadeonなどの専用グラフィックスを搭載している必要があります。 - 特徴2 高性能なCPUを搭載
CPUの性能によって処理速度が変わるため、ゲーミングPCは高性能なCPUを搭載する必要があります。特に、高い解像度を必要とする際にCPUの性能がボトルネックになるケースがあります。 - 特徴3 高い冷却性能
高性能なグラフィックスは多くの熱を発するため、性能をフルで発揮させるには冷却機構が大切です。
開発可能なPCスペックを準備できたら、次に必要なのはVRSNS上にワールドを作成するための「Unity」の導入です。
Unityって何?
Unityは、モバイルゲームやパソコンゲーム、ブラウザゲームなどの製作に用いるゲームエンジンで、100万人以上の開発者が利用しています。白猫プロジェクトやポケモン GOなどプロのゲーム開発現場でも、Unityは多く採用されています。上のキャプチャは、実際のUnityの画面です。
こういった画面で、コンテンツを開発していきます。
Made with Unityでは、Unityを使って開発されたゲームの紹介や開発者のインタビューなどが載っています。皆さんがプレイしたことのあるゲームが、Unityで作られていたという発見があるかもしれません。
Unityの特徴とは?
Unityには大きく分けて二つの特徴があります。
- 特徴1 高機能
Unityエディタにはとても多くの機能があり、開発者はこれらの機能を使うことで、より早く、質の高い作品を作ることができます。ここでは、数多くある機能のうち、使う機会が多いものを2つご紹介します。
① スクリプト
Unityでは、C#やJavaScript(UnityScript)を使ってスクリプトを記述することができるほか、独自のShader(描画方法を記述したプログラム)も利用することができ、幅広い表現が可能です。
② UI(ユーザインタフェース)
メニュー画面やアイテムリストなどで、よく使われます。ボタンやリスト、スライドバーなどUIの機能が初めから多く用意されています。 - 特徴2 アセットストア
3Dモデルやアニメーション、機能スクリプトやマテリアル(Shader)など、Unityのアセットストアには、有料・無料のアセットが何千という数でリリースされており、開発者はストアから買って自分のプロジェクトで使うことができます。絵が描けない、BGMや効果音などの音が欲しい、または、簡単なプロトタイプ用にすぐアセットを用意したい場合などにアセットストアを使うとプロジェクトの質と開発速度を上げることができます。今回は、机や椅子などの小物をアセットストアで買いました。
上述したように、開発者はスクリプトを書くことでUnityが提供する機能を拡張したり、アセットストアでアセットパッケージを買ったりしながら、プロジェクトを作ることができます。しかも基本的な操作などUnityに初めから搭載されている機能を使う分にはC#やJavaScriptが全くわからなくても問題ありません。イメージとしては、プログラミング言語が全くわからなくてもWindowsのPCを使うのに困らないのと似ています。
筆者も、今回UnityでVRコンテンツを開発するための書籍を3冊入手しましたが、C#やJavaScriptを理解していることを前提としたものは1冊もありませんでした。Unityを使うのに慣れてきて、Unityに初めから搭載されている機能だけでは物足りないと感じてきたら、C#やJavaScriptを勉強するといった形で十分だと思いました。むしろ、初めからUnityを使いこなそうとしてC#やJavaScriptを勉強するところから始めると、ハードルが上がり挫折してしまうと思います。
また、VRSNSにワールドを作成する際の特有の問題として、VRSNSによって対応しているUnityのバージョンが異なることがあります。開発する際は、自分がワールドを作成したいVRSNSが対応しているUnityのバージョンを確認する必要があります。そしてUnityを動かす際には、「Unity Hub」をインストールしておくと便利です。
Unity Hubって何?
Unity Hubは、Unityのプロジェクトとあらゆるバージョンのインストーラの検索やダウンロード、管理などを効率化するスタンドアロンアプリケーションです。また、すでにマシンにインストールされているエディタのバージョンをUnity Hubに手動で追加することもできます。Unity Hubを使用すると、以下を行うことができます。
- Unity アカウントとエディターライセンスを管理できる
- プロジェクトを作成し、Unity エディタのデフォルトバージョンとプロジェクトを関連付け、複数バージョンのエディタのインストールを管理できる
- Unity の優先バージョンを設定するだけでなく、プロジェクトページから簡単に他のバージョンを起動することもできる
- エディタを起動せずにプロジェクトのビルドターゲットを管理および選択できる
- 同時に2つのバージョンの Unity を実行できる
- 既にインストールしたエディタにコンポーネントを追加できる
- プロジェクトテンプレートを使用して、通常タイプのプロジェクトの作成プロセスにすぐに取りかかることができる
今回のプロジェクトでは、ワールドを作る際の3DモデリングにBlenderを使用しました。Blenderを使用したのは、UnityがBlenderのアートアセットとファイル形式に対応しており、アセットをUnityのプロジェクトに追加したり、UnityのUIで管理したりすることができるからです。
Blenderって何?
Blenderは、本格的かつ商用のハイエンドクラスにも引けを取らないほど高機能な3DCGソフトウェアです。
WindowsやMacOS、Linuxといった幅広いプラットフォームに対応しており、ほとんどの一般的なPCで利用することができます。また、Blenderはオープンソースソフトウェアとして開発・配布されているため、無料で使うことができ、商用・非商用にかかわらず自由に使うことができます。
さらに、オープンソースソフトウェアのため世界中のプログラマにより日々改良が加えられるので、一般的なソフトウェアでは考えられないほどバージョンアップが早く、かつ頻度も非常に高く、次々と新たな機能が搭載されていきます。今回は、Blenderに搭載されている様々な機能のうち、代表的なモデリングを紹介します。
モデリングとは?
モデリングとは、画面内の仮想3D空間でモデル(物体)の形を作る作業を指します。上のキャプチャは、実際のBlenderの画面でモデリングをしている様子です。
モデリングの方式には、主に2つあります。
- ポリゴンモデリング
ポリゴンモデリングとは、ポリゴンと呼ばれる三角形面あるいは四角形面を組み合わせて形を作る方法のことを指します。ポリゴンモデリングは、直感的に操作することができ、次に紹介するスプラインモデリングよりも扱いやすいとされ、Blenderの入門書でもポリゴンモデリングを紹介している場合が多いです。ただ、ポリゴンモデリングは、スプラインモデリングに比べて、作ることができる形が限られるという欠点もあります。 - スプラインモデリング
スプラインモデリングとは、工業製品の設計などに使われる数式的なスプライン曲線を使って形を作る方法のことを指します。スプラインモデリングは、ポリゴンモデリングよりも扱いにくく難しいとされ、上級者向けの技術ともいえます。ただ、スプラインモデリングにはポリゴンモデリングでは作るのが難しい形も容易に作ることができるという長所もあります。
終わりに
今回は、VRコンテンツを開発するにあたって必要な環境や用語についてご紹介しました。現状、VRコンテンツを開発する上で必要な環境は、皆さんの持っているPCと性能面でかなりギャップがあるため、なかなか想像しづらいところがあります。
しかし、皆さんが普段利用するPCの性能が今後も上がっていくとすれば、近い将来このギャップも埋まってくると筆者は考えています。そうすれば、VRがより皆さんの身近なものになると思います。
次回の記事では、実際のVRコンテンツの開発の流れや様子について、写真を交えながら紹介したいと思います。気になった方は、次回の記事も是非ご覧ください。最後まで読んでいただき、ありがとうございました。