Unityで色々できることが分かるまとめ
手法メモ2018.12.19
こんにちは、本多です。ブログ記事を書くのはすごく久しぶりです。もくもく
今年の4月に面白法人カヤックから独立し、現在はフリーランスとして、空間系・体験系を中心にインタラクティブシステム制作を行っています。
今回は、いつもとてもお世話になっている開発ツールのUnityへ感謝をこめて、Unityって色々できるんだぞ〜!という所を参考事例や制作実績とともに紹介させていただきます。
本記事は面白法人カヤックOBのクリエイター陣がリレーする、ex-KAYAC Advent Calendar 2018の19日目の記事となっています。
対象とするひと
Unityはゲーム開発ツールというイメージが強いですが、本記事は、メディアインスタレーションや体験型コンテンツ、VR・ARコンテンツの開発のために、Unityをはじめたいという方むけに書いていきます。
僕自身に制作経験のあることを中心に紹介させていただくので、Unityのすべてを網羅しているわけではないことをご了承ください
インタラクティブ・空間・体験系のエンジニアを目指す方はぜひチェックしてみてください!
Unityでできること(もくじ)
- VRコンテンツ
- ARコンテンツ
- プロジェクションマッピング
- ポーズ検知(ボーントラッキング)
- フェイストラッキング
- 音声認識
- プリンターで印刷
- ハードウェアと連携(Arduinoなど)
- LED照明との連携
- グリーンバック合成
- ジェネラティブアート / インタラクティブコーディング
- 音声入力解析
- 2Dインタラクティブシステム
- お絵かきコンテンツ
VRコンテンツ
VRシステムを開発にするにあたって、Unityは定番のオーサリングツールになっています。
VR用HMDセットに代表されるHTC viveやOculusをはじめ、
多くのVRプラットフォームがUnityでの開発を前提にSDKやプラグインを用意してくれています。
また、HoloLensやMagic LeapなどでのMR(複合現実)コンテンツ開発にもUnityはうってつけです。
Unity + HoloLens コンテンツ事例
ARコンテンツ
AR(拡張現実)に関しても多くのライブラリがUnityに対応しており、従来のマーカーARではVuforia、ARToolKit等が代表格です。
マーカーレスな空間認識系のARではGoogleの開発しているARCoreやAppleの提供しているARKitがとても魅力的なものになっています。
参考リンク
- UnityでARKitアプリを開発するための環境構築チュートリアル
- Unity 2017.2で統合されるVuforiaを試してみる
- 【Unity】UnityでARToolKitを使ってみたら、意外と簡単だった
Unity + ARToolKit コンテンツ事例
kotomでは、ふきだし画像をマーカーにして、パネルの位置を検出しています。
プロジェクションマッピング
プリレンダリングな映像コンテンツではなく、体験者の動きなどに合わせてインタラクティブに変化する映像をプロジェクションマッピングするのにUnityは適しています。
マッピングする形状にもよりますが、MadMapperなどのマッピング専用ソフトと組み合わせて用いることで、より簡単に実現することができます。
参考リンク
ポーズ検知(ボーントラッキング)
Kinectなどのセンサーと連携することで、
体験者の体の動きやポーズを検知したコンテンツを開発することができます。
Unity + Kinect コンテンツ事例
上記の事例では、Kinectで行ったボーントラッキングと連動してデジタル衣装を動かし、カメラ映像と合わせてインタラクティブなARサイネージを実現しています。
なんだかんだでまだ購入できるのですが、Kinectは生産終了しており、代替手段として、Intel RealSense Depth Cameraや、OpenPoseも注目されています。
フェイストラッキング
体験者の顔の表情の動きを用いて、顔にお面のグラフィックが合成したり、CGキャラクターの表情を動かしたり、といったSNOWのようなフェイストラッキングコンテンツをつくるためのアセットやSDKもUnityには多く存在しています。
僕が最近使用した ARKit の FaceTracking は、iPhoneX系での動作限定ですが、黒目の動きも取得できるような高精度なトラッキングを行うことができます。
Unity + ARkit FaceTracking コンテンツ事例
音声認識
Unityから音声認識を用いることもできます。
いくつかありますが、オフラインで用いることができる、Intel RealSense SDKがおすすめです。
参考リンク
下記のコンテンツも Intel RealSense SDK を用いて制作しています。
Unity + 音声認識 コンテンツ事例
穴にむかって言葉をふきこむと、声から形になった言葉がひとりでに歩き出す様子が投映されます。
穴の中に3つのUSBマイクを組み込んでおり、それぞれのマイクで音声認識を行っています。
この作品では、KAKASHI という漢字→かな変換プログラムも、Unityからコマンドをたたいて利用しています。
プリンターで印刷
Unityからコマンドをたたく形で、プリンターで印刷を行うことも可能です。
多くのプリンターは、PCからlprというコマンドでアクセスできるようになっています。
参考リンク
Unity + プリンター コンテンツ事例
ゴリラコーヒー×面白法人カヤック「STICKER MAKER」
上記の事例では、あらかじめハーフカット(丸い形状ではがせるようにカット)しておいたステッカー紙にプリンターでグラフィックを出力することで、その場でジェネレートされるステッカー作成システムを実現しています。
ハードウェアと連携(Arduinoなど)
Unityではシルアル通信やUDP通信を用いて、Arduino等のデバイスと連携することもできます。
参考リンク
LED照明との連携
制御用APIを公開しているスマート照明の Philips Hue をはじめ、
方法次第でさまざまな照明機器と連携可能できます。
参考リンク
Unity + Philips Hue コンテンツ事例
この作品では、UnityWebRequestでHueのAPIにアクセスし、加圧センサー+Arduinoを連携して、照明と画面が連動するインタラクティブ体験を実現しています。
グリーンバック合成
Unityでは、カメラ映像とShaderによって、リアルタイムなクロマキー合成も可能です。
人肌の色と遠いグリーンやブルーを用いるのが一般的ですが、他の色の背景で合成することもできます。
Unityアセットでもいくつか公開されています。
参考リンク
Unity + グリーンバック合成 コンテンツ事例
上記コンテンツ開発の際は、細部の調整も実現するために、グリーンバック合成Shaderの自作も行いました。(ぱっと見つからなかったので.. こんどGithubにでもあげておきます。)
ジェネラティブアート / インタラクティブコーディング
ActionScript や Processing、openFrameworks 等でよく行われるような、プログラマブルなモーショングラフィックもUnityでつくることができます。Unityでは、3Dベースのジェネラティブアートが得意です。
参考リンク
音声入力解析
Unityではマイクからの音声入力情報にアクセスし、波形データを取得することもできます。
周囲の音と連携したコンテンツが開発できるようになります。
参考リンク
2Dインタラクティブシステム
Unityは3Dベースで開発を行いますが、2D開発向けの機能もとても充実しています。
Unity + 2Dシステム コンテンツ事例
この体験コンテンツでは、2Dグラフィックを3Dのように動かせるLive2Dとの連携も行っています。
お絵かきコンテンツ
Unityは3Dベースのコンテンツ向きなのであまり向いてはいないのですが、お絵かき系のコンテンツをつくることもできます。
参考リンク
Unity + お絵かき コンテンツ事例
米津玄師 『LOSER / ナンバーナイン』Release Teaser
以上、一生懸命まとめてみました。
この記事をとおして、Unityをはじめてみたい!という方が一人でも増えたら嬉しいかぎりです。
おわりに
この記事では、僕がカヤック時代に関わった制作物や、フリーランスになって制作した個人作品を中心に紹介させていただきましたが、他にも紹介しきれないぐらいたくさんのコンテンツをUnityエンジニアの方々が生み出しています。
僕自身も、openFrameworks、Processing、Electron、Max/MSP など、色々なオーサリングツール・プラットフォームを用いた経験がありますが、最近では万能すぎるUnity1本にまとめて行えるような開発をこころがけています。
この記事は自分のメモもかねているので、今後もしれっと追加・更新するかもしれません
*この記事にはコメント欄がないので、何かある場合はTwitterにてご連絡いただけるとうれしいです。