tobinekoのブログ(oculusでのあれやこれや)

tobinekoのブログ(oculusでのあれやこれや)

oculusを使って、面白そうなものを作るのが目的。
OpenGLとoculusSDKを使ってやるつもりだけど、Unityのほうがさっくり作れそうなので、まずはこちらで遊んでみる。

Amebaでブログを始めよう!
ちょっと時間ができたので、またアプリ作りを始めてみようと思います。

ちなみに、PCがあまりに重すぎたのでHDDを止めて、SSDに切り替えました。
前の環境は重要なファイルをバックアップに残して、全て消去!

また1から環境を作るところから始めるかー。
やったこと。
・DrowGrid.csを無効にして、Grid線を廃止
・カメラオブジェクトをキー押しによって変更し、アングルを変えれるように修正。
・オブジェクト数を14 * 14 * 14に変更
・光源の位置を調整。

スライムっぽいオブジェクトをつくって見た。

$tobinekoのブログ(oculusでのあれやこれや)

後、やること。
・各ブロックに色を設定できるように変更
・オブジェクトの位置をデータとして保存し、他のUnityアプリ上で再現できるように修正
 (恐らく、3次元配列として、持っておき位置を覚えておくのがよさそう)
・Android上でオブジェクト表示が出来るようなアプリを作成
色々調べて見たが、粘土のような流体をUnity上で表現するのは、難しそう。
なので、彫刻アプリに変更します。

100x100x100のオブジェクトを作成して、
触るとdisableになるような作りにすれば、多分いける。。。はず。

とりあえず、Unity Proにアップグレードして、SDKを入れるところまでやった。
1. https://developer.leapmotion.com/downloads
からSDKを落としてくる

2. UnitySandbox.unity を開く。 LeapDeveloperKit_release_win_1.0.8+7665\LeapDeveloperKit\Examples\UnitySandbox\Assets\Scenes
にあります。

既に手のオブジェクトもあるので、意外と簡単にいけるかも!

tobinekoのブログ(oculusでのあれやこれや)
せっかくの3連休だし、残念ながら予定も無いのでアプリをがっつり作ろうと思う。

作るのはLeap motionを使用した、ろくろアプリ。 時間があれば、鑑賞用アプリも作りたい。

まずはSDKを入れてろくろを作れるかどうか調べるところからスタート。


懸念点。
1. 粘土っぽいオブジェクトってどうやって作るんだろう。
2. 衝突判定どうすんの
3. 作成したオブジェクトの保存形式は?

他にも色々出てくるとは思うが、とりあえず始めるか。。。




下記の記事によると、現在、月に1250台ペースで製造しており、6/18時点で、
約12000台が製造されてるらしい。

http://www.roadtovr.com/2013/05/04/oculus-rift-news-bits-3700-units-shipped-oculus-visits-dice-and-rollercoaster-reactions-5470

自分のオーダーが50000台だったので、今のペースで行ったら来るの5ヶ月後(11月ぐらい)になりそ
う。
ちゃんと調べてみると、結構先だったので凹むなー。



Unityを使って、AR処理をやってみた。

現状、SDKとして公開されているものは、以下の二つ。
- String (iOS向け)
- Vuforia (iOS,android向け) QualCommが作ってる。

今回は、Vuforiaで試して見た。

http://voro.jpn.org/wp/?p=136
上記のサイトを参考に開発をすすめた。
ただ、ちょっと内容が古かった内容自体は変わっていませんでした。

こっからダウンロード可能。
https://developer.vuforia.com/resources/sdk/unity
ユーザー登録が必要なので、適宜登録お願いします。


Unityで使えることで、ARがぐっと身近な感じになりました。



土日で簡単なミニゲームを作ってみた。

バイトヘル2000を知っている人ならお馴染みの
薪割りゲー。
色々なところからweb素材をもらっていることもあり、公開は控えます。

本当、資料を読みながらだと、一瞬で出来るが、実際につくってみるとなると結構難しい。。。

以下、詰まったところ箇条書き。

■MMDとUnityについて
- MMDのモーションをUnityに読み込ませると認識しないモーションがあった。
 中身を確認したところ、vmdとなっているが、実際には動きの無い処理となっていた。
 → 同じモーションを別のフレームにコピーすることで、Animationとして呼ばせることが出来た

- MMDのpmx形式のオブジェクトはMMD Loaderで、Unityで呼び出せない。
 その場合、PMDEditorにて、一度pmxとして読ませた後、pmdファイルとして[ファイル]→[エクスポート]することで、pmdとすることが可能。

■MMDオブジェクトについて
- MMDでシルバーチャリオットの武器を左手から、右手に持ち替えさせる。

http://www6.atwiki.jp/vpvpwiki/pages/118.htmlを参照。
 1.いらないオブジェクトを消す
  [絞]→[材質]→関係箇所をクリック→[選択材質のパーツ削除]
2.必要なオブジェクトを移動
2-1 [絞]で必要なオブジェクトを選択
2-2 [編集]→ [全てのオブジェクトを選択]
2-3 移動ボタンにそって、必要な箇所にスライド。
 3. IKを合わせる。
  右腕の武器を左腕の武器に持ってくる場合、
  PMX編集の、[ボーン]タブ→ 必要なボーンを選択 → [親ボーン]に左腕の親にIKを合わせればOK

- MMDでKinectで取ったモーションを一部触る。
http://www.nicovideo.jp/watch/sm12995526 を参照。
1. 必要の無いところを削る
2. 必要なポーズを一部調整する。
の流れで、何とかなる。
ショートカットの I+Kは便利。

■Unityについて
- 実体のないオブジェクトへのsendMessageについて
http://d.hatena.ne.jp/shinriyo/20111127 を参照。

publicで宣言したプレハブのインスタンスを作成して、それに対してmessageを
送ろうとすると、
SendMessage ~~ has no receiver!
というエラーが出ます。

この場合、インスタンスを
GameObject spawn = Instantiate(poruporu, new Vector3(-0.6f, 1f, 0f), Quaternion.identity) as GameObject;
みたいな感じで複製してあげて、
いらなくなったら、
Destroy(spawn);
というように消してあげないと駄目です。

- GUI Textの色。
 createで作っても、colorの設定は出来ません。
その場合、javascriptの場合、
 function Start () {
  guiText.material.color = Color.black;
 }
 といったスクリプトを追加してやら無いといけない。

 本当は、C#だと良かったのだけど、うまいやり方が分からないので、これは後日やる予定。

- MMDから androidに書き出す際のエラー。
 - 日本語フォントが駄目なことによるエラー
  →原因確認中。とりあえず、英語で
 - MMDのファイルが読めないことによるエラー
  →これはファイルを同じ名前のダミーファイルを用意してやることでOK.

- androidに書き出す際に、横画面表示/縦画面表示にしたい
- [File]→ [Build Setting] →[Player Settings] → [Resolution and Presentation]
→ Resolutionを変更
 縦画面:Poartaint
 横画面:LandScape Left


そろそろOculusに向けた準備もすすめよう。
$tobinekoのブログ(oculusでのあれやこれや)