hololensを試していました。

LINEで送る
Pocket



先日一週間ほどhololensを借りることができました。
最終的には中途半端な話になってしまいそうですが触ってみたので記録を残しておこうと思います。

って前置き無しなのも良くないのでそれなに?って言う方。
hololensの凄さはこの動画を見ると伝わるはずです。

ここ最近はOculusHTC ViveのようなVR機器やgoogle glassなどのメガネ系デバイスが出てきていますが、それらとは一線を画し、別の方向性での未来を感じることができるものでした。

違いとしては、

  • メガネ系デバイスで当然レンズの向こうが見えるので現実世界の上に映像(CG)を重ねることができる
  • リアルタイムで現実世界の形状を認識するので、テーブルの裏側にキャラクターが隠れたり、壁からモンスターが出て来るというような現実世界とリンクしたコンテンツを制作できる
  • hololens単体で動作する(PCが入っている)ので別途スマホを用意したりごついPCとケーブルでつなぐ必要がない。→ワイヤレスなので自由に空間を動き回ることができる!

というところでしょうか。

個人的にはリアルタイムで形状を認識している(メッシュを生成している)というだけで大興奮なのですが、VRのように視界すべてが映像で閉じられた別世界になるのではなく、現実世界を利用できるので「そこにいるから、hololensをつけているから体験できること」というコンテンツを作ることができるので大人数で体験する演劇やライブなどでも有効な使い方があるのではないかと思っています。




で、どんな感じでつくるのかな?ということでUnityで試してみました。

VRが流行ることでより五感を使った体験が重要度を増していると感じているのでhololensの音ってどんな感じだろうと思って音を使った何かを作ろうとしました。

目標としたものは
「壁や床などからボールが自分に飛んできて、それをひたすら避けるゲーム(?)」
です。

開発情報はやはり中村さんの記事を参考にしました。
さすがのスピード、さすがの充実感。
http://www.naturalsoftware.jp/entry/2016/04/07/093200

いざ作るぞ!と気持ちは高まったものの環境構築とかインストールに時間がかかってしまい、
結局本格的に試すまで進められなかったのですが、いざ作ってみると

  • 壁から向かってくるボールのスピードを速くしたかったが音にそこまでの指向性を感じられなかったのでよくわからないまま常にキョロキョロしないとかわすことができなかった
  • 素早くキョロキョロするとなるとhololensの視野角の狭さが気になってしまった(音がなっている方向を向いているつもりでも小さめの視野角にボールがなかなか入らず、音のなる方を向いているのにボールを発見できずに全然かわせない)

ということを嫌というほど実感することができました。(さらに動画まで撮り忘れてしまった・・・)

とはいえどまだまだ開発途中のデバイス、これからデバイスの性能も向上するだろうし、楽しみです。
なんというかSF映画で見た世界を突然現実に体験することができ、また自分がそのコンテンツを作ることができると思うとこれからワクワクしてたまりません。

で、こんなところで時間が無くなりそうだったのでタップするとボールがまっすぐ飛んでいって、壁に跳ね返る、というだけのものを作って一旦返却。

これだけでも現実世界のものにCG世界のオブジェクトが跳ね返り、そこから音がなっていることくらいはわかるようになります。

また借りる機会はあるのでもっと色々と作ってみて経験を積もうと思います。
もっとちゃんとしたアプリを作りたいと思いました。

なんだかんだ新しいことが多く覚えることも新しいことに触れるたびに増えて大変はありますが、新しいもの、未来を感じることができて幸せです。

また借りる機会ができたらもうちょっと音の面も深堀していこうと思います。


#VRもいじってるのにいきなりこっち書くのも順番すっ飛ばしている気がしますが、そちらは後日ということで。
#自宅の風景が映ってしまうのちょっと恥ずかしいですね・・・

2014年振り返り

LINEで送る
Pocket

2014年も終わりということで、今年は振り返りを書こうと思います。

今年はどうなるかと思って不安だったのですがなかなか面白い1年になったかと思います。
マイコンを使って無線でLEDを自動制御することやレーザーを使った演出や今までのようにセンサーを使った演出もよりたくさん経験できました。
2014年頭でやってみたいと思ったことは一通りできた良い1年になりました。


まずはLEDやってる関連でお誘いいただいた某ショーレストランでのLED衣装と装置の設置とか制御ソフト・ハードの開発から光り方含めてなかなかハードでしたが全般ですごい良い経験ができました。

特にハードでは中山さん、まりすさんにすごくお世話になりました。
また、現場では無茶なことにもこたえてくれたゆきちゃんありがとうございました。
お話をいただいて一緒にご協力していただいた加藤さんもありがとうございました。
このお仕事で関わったみなさま、また何かありましたらぜひ。


そのあとは前々から興味のあったTMCNで発表。→Project Daftyに見事に巻き込まれるという経験をしました。fabcafeさまにも色々とお世話になり、Fab Meetup vol.9でも発表させていただきました。http://fabcafe.com/tokyo/events/g00f1b7bf

https://www.facebook.com/TokyoMotioncontrolNetwork

TMCNでは参加が決まったのが直前とか、発表のタイミングとかいろいろ勝手に運命を感じる流れでおもしろかったです。

Project Daftyでは以前にやっていたScience Nonfictionのコンテンツを見てもらっていたようで、自分が関わったコンテンツを誰かが見ていてくれているということをようやくちゃんと実感できました。

で、Project Daftyはこちら。4分ちょいくらいから。

直前までバタバタでしたがみなさまありがとうございました!

参考(TMCNで発表してきました、という記事です):
http://blog.hi-farm.net/2014/05/09/tokyo-motion-control-network-8/


TMCNの流れでNaked様にて開催されたイベントにて軽く発表させてもらいまして、それきっかけで新たな出会いがありました。
その一つがIntegral VisionさまのKAGURAです。こちらは9月中旬にロンドンで開催されました。

NADA Project Vol2 – Kagura – Full version from Takayuki Baba on Vimeo.

デジハリの授業にちょっと顔を出してしゃべる→何か困ってそう→ちょっと口出しする→やっぱり自分でやりたくなって結構がっつり参加、
みたいな定番の結末でした。
この時期は別件の仮押さえ予定などがあったり他の事情もあって現地には行けなかったのともっと早い段階から参加できなかったのが心残りです。。。
次回あれば是非!よろしくお願いします。


これとはちょっと別ですが、7月上旬にはLive & Event産業展に出展の手伝いをしてきました。
こちらもScience Nonfictionのコンテンツをこの展示会向けにアレンジしたものになりました。
音楽イベント系の展示会とか初めてでしたが展示会ならではのハプニングもあり、こちらもとても楽しかったです。
ゼロシーセブンさまとTachytelicさまの共同出展でした。
こちら来年はあるのかな??

http://www.live-event.jp/ja/HOME/

そして夏休み最終日、科学技術館にて1日限りの限定イベントを行ってきました。
映像はこちら。

子供向けインタラクティブレーザーでございます。
Kinect(実際はXtion Pro live)の前に立つとレーザーでアバターが出て、映像中のボールを触ると得点!というもの。
小学生だけじゃなく、もっと小さいお子様にも体験してもらえました。


夏頃はこれと同時にレーザー屋さんとしてこのへんのお手伝いもしました。

で、この流れでORANGE RANGEのテブラ DE ゴメンツアーでもお手伝いしました。
ホールの現場での経験ができたことは本当に感謝です。また今後もあるといいなあ。

他にもなかなか面白い使い方があったのですがどこかでみてもらえるといいなあ。
※画像が見えない場合はこちら


これをやりつつ、別の案件も走っていて、、、本当に夏から冬にかけては色々と重なっていました。 一つ、非公開イベントだけど3分半のショーにてモーションセンサーで音楽と映像とレーザーをコントロールする、というコンテンツを発表しました。 これ個人的には音楽も映像もすごいお気に入りのショーなんですが、、、、いつかどこかで発表したい!! 非公開なので何をどこまでいえばよいかわからないのですが関わったみなさま本当にありがとうございました! 途中すごい心配おかけしてしまったかと思いますがみなさまのおかげで無事乗り越えることができました。 うーん、やっぱり表に出したいなあ。 技術的なチャレンジもあったので今後もどこかで活かせるのではないかと思います。 インタラクティブレーザーはもっと強化したいと思いました。 すごいモザイクですがとりあえず。

secret


そして何と言っても!初海外初南半球初アフリカ! タンザニアにてレーザーと映像やってました!

もともとPANDA1/2は好きで曲を聴いたりライブ見に行ったりustを見たりしていたのですがジェームズパンダJrさんがやっているバーに何回か飲みに行って話をしているうちにタンザニアに行かないかい?というお誘いをいただきました。
お話をいただいた時点ではロンドンが初海外になる予定でしたが結果的には初海外がタンザニアというのはなかなか良かったのではないかと思っています。
本番ではいろいろとあり心残りな事もありますのでまた機会つくっていきたい!

時間がなかったので直前のリハやらができなかったのと、バーで何回か話したくらいだったのに打ち合わせとか演出プランを現地で考えたりして作り上げるのはなかなか楽しかったです。
その後のトークショーも出たかったなー。日程が被ってたので残念!
パンダさん、佐藤さんほか現地でお世話になったみなさまありがとうございました!

かなり良い思い出になっております。


その他・・・・
・イベント色々と参加させていただきましてありがとうございました!

・レーザーとLED衣装で関わっているRAM RIDERさんですが、実は内部的にはパワーアップしまくっていて、
・LED衣装の無線化対応がおわり
・反応もかなり改善
・自動化機能も実装済み

ということで来年以降は今まで以上にぴちっとコントロールできたライブができるかと思うと楽しみで仕方がありません。
やればやるほど人がいらなくなる、というものなのでちょっと複雑な気持ちはありますけどね!

・もっとうまくできたはずのhalloweenイベントは絶対別の形でお返ししたいしTMCNを通じた良い出会いやレーザーの経験、タンザニアという海外での経験を活かし、新しいこともやりつつ今年広げたことをしっかりとレベルあげしたいと思っています。
参考までに。

他にもかけない事などありますがとても充実した一年になりました。

来年はこれ以上にまた面白いことができるといいなあ。
何か困ったことがありましたらお気軽にお声がけくださいね!

特に、LEDやレーザーといった光の演出とセンサーとの組み合わせのインタラクティブな演出をより深めてやっていきたいですね。
ライブ以外でもできるようになると面白そうですね。

来年もよろしくお願い致します。

hi-farm
武内 満

OpenNIのUnityWrapper

LINEで送る
Pocket

このエントリはOpenNI Advent Calendar 2011 : ATNDの12月24日分です!!


さてクリスマスイブですが、
少し前からOpenNIにはUnityWrapper版が存在していますのでそれについて紹介します。

unity_screenshot

最近話題になっている、ゲームの開発環境のUnity3Dというものがあり、OpenNIのサイトからUnity3Dで使うためのUnityWrapperをダウンロードできます。

追記:
2013/06/12時点では(もう少し前からだったと思います)OpenNI公式のUnityWrapperは配布していません。
有料ではありますがこちらのZigfuを使えば同じ事+それ以上の事が出来ます。

opennidownload


Unity3Dについて:

Unity3D ( http://unity3d.com/unity/ ) とはゲーム開発ツールであり、WindowsとMacのどちらでも開発する事が可能です。
IDEがあるのでステージの画面を見ながら次々とオブジェクトを配置するだけでゲームの世界を簡単に作る事ができます。
プログラムはJavascriptとC#(mono)で書く事ができるのでweb開発者や.NETの開発者にも取っ付きやすいのではないでしょうか。
MacでもC#で記述する事ができます。

また、一人でグラフィックやサウンドやモデリング、プログラムを行うのは大変ですが、Unity3DではAsset Storeというものが用意されており、これを利用する事で必要な素材を入手する事ができるので気軽にゲーム開発を進める事ができます。

Unity3Dの無料版、有料版、ライセンスについて

無料版と有料版があり、無料版では制限はいくつかありますが、WindowsとMacで実行できますし、有料版にアップグレードする事でAndroidやiOSに対応させる事も可能です。
詳しいライセンスなどはUnity3Dのサイト( http://unity3d.com/unity/licenses )か、「強火で進め」さまのサイトが詳しいです。( http://d.hatena.ne.jp/nakamura001/20110710/1310292561


Unityのダウンロードからインストール

それでは、Unityをダウンロードしましょう。

http://unity3d.com/unity/download/より、Unityをダウンロードし、流れに沿ってインストールしてください。
インストール後、先ほどOpenNIのサイトからダウンロードしたファイル(Unity OpenNI toolkit 0.9.7.1.unitypackage )をダブルクリックしImport Packageより一式をunityにインポートします。
importが完了すると、Projectタブにこのようなファイル群が表示されます。
unity_project

OpenNI/Sample Scenes以下にすぐに試せるようなサンプルシーンが入っていますのでダブルクリックしてシーンを開き、三角の再生ボタンを押して次々と試してみるとUnity3D+OpenNIの可能性を試せると思います。
Unity_IDE

私はライブなどで使ったりしていますが、骨格をちゃんと映していれば問題なく現場でも使えます。今のUnityWrapperだと全身映す前提のコードになっているので、上半身だけ認識などに変更する事でより柔軟なアプリケーションが開発できます。

ではそれぞれのサンプルのキャプチャやサンプル動画をのせておきます。


サンプルのシーンについて

MultipleSkeletons:
僕は一人なので試せませんでしたが、複数人のスケルトンを認識できるサンプルだと思います。
MutipleSkeletons
NIGUIControl:
NIGUIControl
NIInputControl:
すごく地味なのですが、手を動かすと黒い四角が追従します。XBoxでもあるような、手で操作するゲームはこれを使うと作れそうですね。

SimpleGame:
上からふってくるボールにタッチするゲームです。実際に動いたりジャンプするとそれにあわせて画面も動きます。一番運動している感じになりそうですね。

SingleSkeleton:
スケルトンの情報をもとに画面のキャラクターが動きます。

せっかくなのでスケルトンをサンタにかえてみましたよ。サンタ気分で小さく踊ってみました。
あ、サンタのデータはAsset Storeで購入可能ですよ!

※この記事は、下記の環境で確認しました。

OpenNI 1.5.2.7
NITE 1.5.2.7
Unity3D 3.4.2f3

ListBoxとDataTemplate

LINEで送る
Pocket

なんと今回はC#あるいはWPFについてです。

自分があまりにも物事を忘れやすいことを反省して、忘れないようにするためのタスク管理アプリを作りました。
その時にListBoxで困ったのでメモ。
やりたい事は、ListBoxのItemsSourceに自分で作成したクラスのプロパティのコレクションを適用させる、ということ。

Window1.xamlの一部
ListBoxの定義:

<ListBox x:Name="dataList" ItemTemplate="{StaticResource listTemplate}"/>

DataTemplateの定義(TodoEntityというのが自分で定義したエンティティクラスです。):

<DataTemplate x:Key="listTemplate" DataType="{x:Type local:TodoEntity}">
            <Grid ToolTip="{Binding Path=DescriptionValue}">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <StackPanel Orientation="Horizontal" Grid.Column="0">
                   <TextBlock Text="件名:"/>
                   <TextBlock x:Name="subject_tb" Text="{Binding Path=SubjectValue}" />
                </StackPanel>
                <StackPanel Margin="10,0,0,0" Orientation="Horizontal" Grid.Column="1">
                    <TextBlock Text="概要:"/>
                    <TextBlock Text="{Binding Path=DescriptionValue}"/>
                </StackPanel>
               
            </Grid>
        </DataTemplate>

で、これがエンティティクラスのTodoEntity

/// <summary>
        /// 終了しているか。
        /// 1: 終了
        /// 0: 未
        /// </summary>
        public int isFinished;
        /// <summary>
        /// 件名
        /// </summary>
        public string subject;
        /// <summary>
        /// 詳細
        /// </summary>
        public string description;
        /// <summary>
        /// 登録時間
        /// </summary>
        public DateTime registerDateTime;


        #region アクセサ。なぜかこうしないとデータバインドしなかった.

        public string SubjectValue
        {
            get
            {
                return subject;
            }
            set
            {
                subject = value;
            }
        }
        public string DescriptionValue
        {
            get
            {
                return description;
            }
            set
            {
                description = value;
            }
        }
        #endregion

DataTemplateにTodoEntityのsubjectプロパティを表示させたかったのですが、なぜか表示できなくて困ってたのですが、#regionに書いているようにアクセサ(SubjectValue, DescriptionValue)を作ってそれにバインドさせてやると、無事にデータが表示されました。

これなんでだろう。。。

あ、コードの書き方が統一されてなくてすみません。。。

アプリは見栄えがもう少しまともにできたらアップしますね。