仮想空間VR:AIThirdPersonControllerとWalkTargetとNavigationのBakeをやってみる。

こんにちは (‘ω’)ノ 圧倒的かずまなぶ です。

きょうの作品は

”アイドルの追っかけ” です。

アイドルをasdwキーで操作すると、追っかけが付いてきます。どこまでもついてきます。崖から落っこちても、死を恐れずに追いかけてきます。たぶん。

追記:崖から追いかけては来ませんでした!おっかけには歩ける領域が定義されているからです。そこまでの根性はないようです( ゚Д゚)

ユニティちゃんだけが落っこちて おっかけは見えない壁にひっかかって足踏みしていますす。

やったこと

  1. カメラを適当に配置します。私はいつも、MainCameraをGvrEditorEmulatorと一緒にMeMyselfEye(EmptyなGameObject)の子に入れています。
  2. >アイドル役としてUnityちゃんを設置します。UnityChan>Prefabs>for Locotion>unitychanプレハブ です。ロコモーションの方です。
  3. おっかけ役として、Standard Assets>Characters>ThrdPersonCharacter>Prefabs>AIThirdPersonController.プレハブを設置します。
  4. おっかける対象として、WalkTarget(EmptyなGameObject)を設置します。
  5. このWalkTargetをInspectorからAIThirdPersonControllerのAI Character Control(Script)のTargetにドラッグアンドドロップします。
  6. そしてこの、WalkTargetをunitychanの子に入れます。
  7. 歩ける場所を定義します。メニューWindow>AI>Navigation>Bake>BakeでNavMeshを作成します。この青い領域が歩ける場所です。
はまりどころ : Navigationってどこにあるの?

以上です。スタートボタンを押して、走ってみましょう。

written by 圧倒的かずまなぶ

おまけ

VR:動かない・・・

かずまなぶです。

さっきまで、ethanが浮いていました。

地面(plate)のMesh Collider(衝突)のconvexのチェックを外すと、浮かなくなりました。見えない厚みの定義でしょうかね?1時間悩みました。

しかし、まだethanが動いてくれません。 Cキーでしゃがむことはできますが、asdwxキーが機能しません。

わかりません・・

タスケテ

仮想空間VR:BlenderでUV作成#2 Unityで使ってみる

こんにちは かずまなぶ(‘ω’) です

前回Blenderで作ったオブジェクトをUnityに取り込んでみましょう。

ボディを .blendファイルとして保存します。

テクスチャーを.pngファイルとして保存します。

Unity側ではAssetsフォルダの下のModelsフォルダ と Textureフォルダにそれぞれ入れましょう。フォルダがなければ作りましょう。

そして、Modelsフォルダに入れた.Blendファイルをシーンビューの中にドラッグ&ドロップしてオブジェクトを配置します。そのオブジェクトにTextureフォルダにいれた.pngファイルをドラッグ&ドロップします。

以上です。だんだんUnityに慣れてきましたね。ボキャブラリーが増えてきたおかげで、覚えが速くなってきました。

Mirage Solo:自分で作ったVR空間を自由に歩く!

こんにちは かずまなぶです。(‘ω’)ノ

遂に

自分で作ったVR空間を自由に歩く

という 一つの大きな目標を達成できましたので記録しておきます。

前回はスマホで3DOFだったので、この位置から動くことはできませんでした。

初めてのVR ファーウェイP9と安物ヘッドセット。 それでも感動モノ (*´ω`*)

こんどは Mirage Soloに同じデータをインストールして起動したシーンです

初期位置はこの状態です。当然360°見渡せますし。スマホの時よりも視野が広くて、解像度も段違い! 美しいのひとこと!

函館の輝きがさらに向上しています(*´ω`*)

では、回り込んでみましょう。

やりました!完全にもくろみ通り、背中が見えております!

これが

6DOF です (; ・д・´)

これだけで、5万円の価値あります。

VR世界は広いですが、現実世界(家の中)では障害物だらけですので、すり足で恐る恐る行きましょう(; ・д・´)

ではさらに移動してみましょう。

ずいぶん離れたところまで来ました。

完全に自由に動けます!

これが

スタンドアロンの力です!

もうアンビリカルケーブルは必要ありません(; ・`д・´)

函館の夜景にも接近してみましたが、眼前に広がる夜景に圧倒されます(*´ω`*)

この光景を見ながら我思います。

VRは広大だわ・・・・。

草薙素子少佐の気分です。

VRというものを知ってからここまで3週間。Unityをインストールしてからでは2週間でここまで来れました。

みんなもやろう VR!

ではまた逢う日まで。(‘ω’)かずまなぶ

Mirage Solo:はじめの一歩

こんにちは かずまなぶです

遂に、レノボ ミラージュソロを導入いたしました。”スタンドアロンの6DOF” といったら現時点でのベストはコレだと思います。選択肢がありませんので。買わない理由はありませんでした。

早速やっていきましょう。

lenovo mirage solo

スペックを見るとCPU メモリは半年前のハイエンドスマホって感じです。

立ち上げると、googleの儀式 メルアドとパスワードを聞かれます。もはやgoogleなしでは生きていけませんね。

web ブラウザを入れる

これがないと始まりませんよね

google playから chrome と chrome dev というのを入れてみました。今のところ違いは感じられません。(chromeは最初から入ってたのかな?)

で、インストールしたあと、このアプリ どうやって立ち上げるのか?悩みました。

設定>アプリと通知>〇個のアプリをすべて表示>アプリを選択する>アプリの詳細>開く です。 長い!

一度起動すると、以後はトップ画面に出てきます。

移動制限を解除する

次にやったのが、移動制限の解除です。半径1mの制限を解除して、どこまでも行けるようにします。

ディベロッパーモードにするとワールドセンスの制限がなくなります。やり方:設定>システム端末情報>ビルド番号 を 7回クリックする。

そして、設定>daydream>VR設定>ディベロッパー>Enable safety graphics>off して 再起動させる。

但し、これは何かにぶつかったり怪我をしたりする恐れがありますので、メーカーとしても推奨していません。十分理解した上でご判断願います。

USBデバッグをONにする

PCとUSBをつないで、データのやり取りができるようにします。(と、説明には書いています。が・・・)

設定>システム>開発者向けオプション>USBデバッグ>ON

前述のディベロッパーモードにすることで、選択が可能になります。

が!データのやり取りがまだできません!

PCのデータをMirage Soloに入れる

USB経由でやる方法が解りませんでしたので他の方法を考えました。

googleドライブを介してデータを渡します。

PCのgoogle Playからgoogleドライブをリモートで Mirage Soloへインストールします。

渡したいデータをgoogleドライブに入れます。私はUnityで作ったapkファイルを入れてみました。

Mirage Soloから、googleドライブを開きます。(めんどくさいケド、はじめの一回だけは設定からしかアクセスできません。)

apkファイルを見つけて、クリックすると無事インストールが始まりました。

スクリーンショット

スクショの取り方をメモしておきます。

ディベロッパーモードにしておきましょう。

設定>daydream>VRの設定>デベロッパー向けの設定>Enable VR screen recording via chords>ON

これで、〇ボタン+右側面の下ボタン同時押しでスクリーンショットが記録できます。通知エリアに通知されるのでクリックするとみることができます。

ちなみに動画は〇ボタン+右ぎ側面の上ボタン同時押しだそうです。

保存はどこかにされているようですが、PCへ転送する方法が解らないので、リンクボタンを押して、自分宛てのメールで飛ばしてみました。

問題・・・

ディベロッパーモードにしたので、移動制限が解除されているはずですが、されていません・・・

Enable safety graphics>off をしないといけないようです!

PCとUSB接続すれば、データのやり取りができると思ってたのですが、つないでもPC側から認識していません。

開発モードをOFFにするとMTPを有効にできという情報を得ました。MTPをONにしなければならないとは考えていましたが、なぜかオプションボタンにチェックを入れることができない状態だったのです( ゚Д゚)。

いやいやいや! 開発モードをOFFにすると開発者向けオプションの項目が消えてしまうので、このMTPを有効にするためのこのウィンドウ自体が出せなくなります。これは完全に詰んでいます!最高に意味が解らない状態です(; ・д・´)

タスケテー!

MTP選択の画面は 開発者向けオプションの中にある。よって開発者モードをやめるとこの項目自体が消えてしまいます。どうすることもできない(; ・д・´)

仮想空間VR:BlenderでUV作成 #1 できました!

かずまなぶ です

Blenderやっていきます。インストールまでは前回やったのでOKですね。下の絵が今回の完成形です。

choose screen leyout から UV editing を選択!! これかー!画面が真っ二つに割れました。

書籍:UnityによるVRアプリケーション開発 に従ってやってもダメでした。もう内容が古いんですかね。

事前準備

  1. まずは、初期状態でObject Modeの画面になっています。Aキーで全選択し、カメラと光源とcubeオブジェクトを全て消し去ります。
  2. 作業のために画面レイアウトをいじりましょう。画面上部のchoose screen layoutからUV editing を選択して、UV用画面を作りましょう。画面が左右真っ二つになります。
  3. 右側のobject Modeの画面の左端 CreateタブのUVSpherで球体を設置しましょう。
  4. 球体を空間の原点に移動しましょう。右側メニューのTransform>Locationで座標(0,0,0)にしましょう。
  5. 球体のサイズをわかりやすく Dimensions(1,1,1)にしましょう
  6. object Mode画面でTabを押して Edit Modeに切り替えましょう。球体がハイライトします。

展開する

  1. 右側のedit modeのウィンドウでテンキーの1を押して姿勢を正す。
  2. その見え方のまま、Uキーを押してUV mapping>project from viewを選択すると、左のUV editingウィンドウに展開図が出る。

画像ファイルを張り付ける

  1. UVウィンドウの下側メニューにopen imageボタンがあるので、そこから画像データを選択する
  2. 展開図のサイズ調整:Sでスケール調整 SXで水平方向スケール調整  SYで垂直方向調整
  3. 展開図の位置調整    :Gキーで移動 GXで水平移動 GYで垂直移動
  4.  まだ、貼れてないので注意
  5. edit modeの右上のつまみを下げて、新しいウィンドウを作る(上の画像の状態)
  6. 作ったウィンドウの左下のボタンを押して、propertyiesに切り替える
  7. type of active date to display and edit(material) > Newボタンを押す
  8. type of active date to display and edit(texture) > Newボタンを押す
  9. type をimage or move にする
  10. image >左のボタン(browse image to be linked)から、さっきedit modeウィンドウに張り付けた絵と同じファイルを選択する。
  11. edit mode window の下の丸い球ボタンを押して、renderingにする

なんか真っ黒なんですけど!!

でもだいじょうぶ、ちゃんとできてます(‘ω’)ノ

ライトで照らしましょう

  • object mode ウィンドウで create>Lamp>Hemi の追加で美しく輝きます。

ひとまず、セーブして exportしましたので、次回はUnityへの取り込みをやっていきたいと思います。かずまなぶ

仮想空間VR:BlenderでUV作成 #0

こんにちは かず まなぶです。

以下、うまくいかなかった例です。

別途、解決した記事を書きましたのでそちらを見ていただけたら幸いです。

今日はBlenderを少し学んでいこうかと思います。

まずはインストール

Blender 2.79bを入れました。

立ち上げましょう。

基本操作

NキーとTキーを押すと、左にツール窓 右にtransform窓がピコピコ出てきます。

立方体を作りましょう 左のToolsタブをCreateタブに切り替えてAdd Primitive>Mesh>Cube

この立方体、デフォルトの(2,2,2)になっていることに注意してください。単位立方体(1,1,1)に直しましょう

カーソルを原点に移動するには shift+S でsnapウィンドウが開くのでConsor to Centerです。

Aキーを押すと全選択になります。 ctrl+A ではありません。

なんと、Xキーが削除です( ゚Д゚) 危険。

UVテクスチャを作ってみる

下にもメニューバーっぽいものがありますので Object ModeになっているところをEdit Modeに切り替えましょう。ほかにはTexture Paintモードというのもあり、こういうモード群をインタラクションモードといいます。

左のShading/UVsタブ>UVs>UV Mapping>Unwrap>Smar UV Project>ok

これで、展開図ででてくるはず・・・ でない。

わかりません!blender やめます(; ・`д・´)

仮想空間VR:遂に初めてのVR作品ができました!

こんにちは かずまなぶ です。

少し、ブログを休んでしまいましたが、その間、VR作品の製作に全エネルギーを傾けていました。

世界3大夜景である函館山からの夜景とユニティちゃんです。

ぜんっぜん!伝わりませんね(*’▽’)

ヘッドマウントディスプレイは ファーウェイP9をアマゾンのタイムセールで売っていた1000円のVRゴーグルに入れて使ってみました。

視野角90度あるかないかってところなので、没入感は強くありませんが、それでもしっかり360°全天周視界の3DOFを実現しています。

Unityをインストールするところから、ここまでちょうど10日間かかりました。色々とはまりどころはありましたが、勉強会で教えてもらったり、ネットの海を彷徨いながらなんとか、VRゴーグルで映し出せるまでにはなりました。

今日は大満足です(*’ω’*)

年末か来年頭くらいに、6DOFでスタンドアロンのoculus Santa Cruzとやらが出そうなので、それを買おうかと思います。

それまでは、スマホで腕を磨いていこうと思います。

はまりどころをメモしておきます。

  1. GridProgectorをつけると、オブジェクトが真っ黒になる(意味不明)
  2. Assets>import Assets は機能しない。普通にAsset Storeでダウンロードしてインポートが吉。
  3. Unity用Google VR SDK(GoogleVRForUnity_1.170.0.unitypackage)を入手するのはココ
  4. ダウンロードしたらそれを実行するとAssetsフォルダ内にインポートされる。
  5. Assets>GoogleVR>Prefabs>GvrEditorGvrEditorEmulator.prefab をMeMyselfEyeにアタッチする。GvrViewerMainというものは今どきはもうない。
  6. Build Settingsでは、Scenes In Buildに 作成中のシーンを追加する。Add Open Scenesを押せばいい。
  7. Platformは Android >Switch Platform
  8. Player Settingsは Android settings内でResolution and Presentation>Orientation=Landscape Leftにする。
  9. Other SettingsはIdentification>Package Name=com.自分の名前.プロジェクトの名称 を任意でつける
  10. 超重要!!Minimum API Levelを19以上にする.
  11. 超重要!!XR Settings>Vritual Rality Supportedのチェックを入れる(外すと書いてある書籍があるのでミスリードに注意)
  12. 超重要!!virtual Reality SDKs>Cardboardを追加
  13. atoha
  14. Build And Run

本日はこれでおしまい。寝ます!おやすみなさい。かずまなぶ( 一一)

仮想空間VR:Unity2018 効果音を組み込んでみる

こんにちは(*’ω’*)かずまなぶです。

今日は、オブジェクトが動き出すときに効果音が鳴るようにしてみました。

スクリプトとしては

GetComponent<AudioSource>().Play();

を一行追加するだけですが、その前にオブジェクトの設定を色々しなければなりません。

オブジェクトの追加

  1. 効果音を鳴らすオブジェクトをGameSceneパネルから選択します。>car
  2. Inspectorパネルの一番下のAdd Componentボタンを押してAudio>AudioSorceを追加します
  3. Audio Souce ウィンドウがInspectorの中に追加されますので、その中のAudioClipの右枠の中にProjectパネル>Assetsの音楽ファイル(car_se)をドラッグインしてください。
  4. Play On Awakeのチェックは外しておいてください。

スクリプトの追加

  • 効果音を鳴らすオブジェクト(car)にアタッチしているCarContorollerスクリプトを開いてください
  • たった一行です! GetComponent<AudioSource>().Play(); を追加してください。

以上です!たったこれだけで効果音を追加できるんですね。簡単でした。

次回は、当たり判定をやっていきます。