仮想空間VR:AIThirdPersonControllerをあれこれいじってみた

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

わたしのVR空間にだんだんと人が集まってきました。紹介します。

アイドルのおっかけ

  1. 先日紹介しました、アイドルのおっかけです。ユニティちゃんはロコモーションなのでPCのキーボードで自由に動けるのですが、それをずっと追っかけていきます。
  2. おっかけはAIThirdPersonControllerプレハブでAICharacterControlスクリプトのTargetをWalkTargetに設定しています。
  3. walkTargetはEmptyの名前を変えただけのオブジェクトです。追跡対象であるユニティちゃんの子オブジェクトにいれています。
  4. 言い換えれば、おっかけはユニティちゃんではなく、ユニティちゃんの保有するWalkTargetオブジェクトに反応しているのです。
  5. 星白しずかのエナがいつもカビザシを見つめているような感じです。ランカ・リーのVウィルスだったり、バサラのアニマスピリチアだったりもします。解らなかったらスルーしてください。

石盤のおっかけ

  1. アイドルのおっかけを改良して、追跡対象をユニティーちゃんから、地面を這う石盤に変更した「石盤のおっかけ」です。
  2. ユニティちゃんのときは追跡対象のユニティちゃんの中にTargetを入れていましたので、今回は石盤(cylinderオブジェクト)にTargetを入れていると普通は思いますが、違います。
  3. AIThirdPersonControllerプレハブのAICharacterContorolスクリプトのTargetをWalkTarget_lookMoveToオブジェクトにし、LookMoveToスクリプトを適用しています。
  4. LookMoveToスクリプトでは、カメラ目線の始点座標とベクトルを調べ、そのベクトルの延長上に何かしらのオブジェクトがあり、それが地面(変数ground)だったら、その座標にWalkTarget_lookMoveToオブジェクトを移動させるのです。変数GroundにはInspectorパネルからGroundPlaneを適用します
  5. そして、目線によって任意に動かすことができるようになったWalkTarget_lookMoveToオブジェクトに対してはcylinderオブジェクトという実体を与えて(子にして)、目で見ることができるようにしました。
  6. ゲームを実行してみると、目線の先に常に石盤がいるかと思います。

うろちょろゾンビ

  1. ランダムに出現する見えないターゲットに向かってひたすら歩き続けます。ターゲットは5秒間隔で移動します。
  2. AIThirdPersonControllerプレハブのAICharacter ControlのTargetにWalkTarget_Randomオブジェクトを適用する。
  3. WalkTarget_RandomオブジェクトはRandomPositionスクリプトを持ちます。
  4. RandomPositionスクリプトがWalkTarget_Randomオブジェクトの座標を移動させます。

バイツァーダストの被害者

  1. 目線を合わせると、赤いパーティクルが体を包み3秒後に爆死!します。
  2. 何回でもリスポーンしますので、タイミングよくバイツァーダスト!と叫びましょう。要練習です。
  3. AIThirdPersonControllerプレハブのThirdPersonCharacterスクリプトには何もいれません。こいつは特になにかの目標に向かって移動する知能は与えていません。爆死能力だけです。AudioSourceに爆発音だけ入れましたが、機能していません。(課題です)
  4. EmptyからGameControllerを作ります。killTargetスクリプトとAudioSource爆発音をコンポーネントとして追加しました。AIThirdPersonControllerプレハブの中にGameControllerを入れておきましょう。
  5. killTargetスクリプトにはTarget , Hit Effect , Kill Effect , Time To Select , Score、といったいろいろなものをセッティングできるようにしました。
  6. killTargetスクリプトでは、カメラ目線をレイとし、レイが変数targetに当たっていたら、当たっている座標にEffiectを出し、設定時間経過後にkillEffectを出し、そのあとに新しい座標にリスポーンします。
爆死!(; ・`д・´)

仮想空間VR:ユニティちゃんをジャンプさせる

こんにちは、(; ・д・´)圧倒的かずまなぶ です。

ユニティちゃんがジャンプできないので、小一時間かけて解決した記録をUPしておきます。

走っているときにスペースキーを押すと、ジャンプするはずですが、ジャンプして、浮いた瞬間にスクリプトが止まってしまいます。Projectパネル横のConsoleパネルで確認できます。

UnityChanControlScriptWithRgidBody.csを開いて(エラーログをダブルクリックでもいけます。)

126行目

cameraObject.SendMessage("setCameraPositionJumpView"); // ジャンプ中のカメラに変更

で引っかかっているので、//でコメントアウトします。

ジャンプ中にカメラが切り替わるようですが、そんなカメラ作った覚えはないですし。

それだけ。以上 圧倒的かずまなぶ でした。(; ・д・´)

仮想空間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キーが機能しません。

わかりません・・

タスケテ

圧倒的python:numpy についてまとめる

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

きょうは、python numpy についてまとめました。超基本的なことだけです。

応用例や他の便利メソドなどはdocsで確認してください。

基本形を作る

調べる

変形する

演算する

ベクトル演算する

行列演算する

連結する

削除する

pandas.DataFrameにする

数学関数

インデックス指定をする

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