概要 ずっと気になっていたARKit。やっと触ることができたので、ひとまず、空間認識して色々触ったあと、VRのポジトラに流用するのをやってみたのでまとめておきます。 AR自体がポジトラしてモデルなんかを表示できるので、これをVRモードのカメラの位置に転…
概要 とあるオブジェクトが「カメラに映る対象か」というのを知りたいケースはあると思います。 また、通常のカメラだけでなく、「視界」を表した視錐台を定義してその中にオブジェクトが含まれるか、というのもあるとありがたい機能でしょう。 (例えば敵AI…
概要 前回の記事(ComputeShaderを触ってみる その1 ~スレッド編~)で、Compute Shaderのスレッドの概念について書きました。 edom18.hateblo.jp 今回は、Compute Shaderを実際に使って、少し意味のある計算をしてみたいと思います。 意味のある計算をさせ…
概要 今回は、AIの中でも比較的スタンダードな、「Behavior Tree」について書きたいと思います。 (内容は、いろいろな記事を拾い読みしながら、自分の解釈で実装したものになるので、多少の誤解や間違いがあるかもしれません) 実装したサンプルはGithubで…
概要 開発環境の整備 adbをWi-Fi経由で実行する コントローラを使う コントローラの状態を知る Buttons GvrEventSystemを使う ハマったこと Single Passレンダリングを利用すると色味がおかしくなる Daydreamコントローラの感度が悪い Playerにコライダを設…
概要 今回の記事に関しては以下の記事をほぼそのまま参考にさせてもらっています。 実装自体はUnityで行い、コードもC#で作りましたがベースとなる理論は記事をそのまま参考にさせていただきました。 マルペケさんの記事には毎度本当にお世話になっています…
概要 とある実装をしていて、アニメーション周りをわりと触ったのでそのメモです。 具体的には、メッシュカットを利用してメッシュを分断したあと、分断したメッシュもボーンアニメーションさせたくて実装したメモです。 実際に切断してアニメーションさせた…
概要 前に使っていたNetworkViewを使った処理はdeprecatedになり、新しく UNET という仕組みが登場しました。 今回はこれを使っていくにあたって色々新しい概念が出てくるのでそれをまとめておこうと思います。 用語整理 UNETを使う上で、(慣れるまでは)色…
概要 Unity4.6から導入されたEventSystem。 調べてみると色々と学びがあるのでメモとして残しておきます。 (若干、今さら感がありますが) まず最初に大事な概念として、このシステムはいくつかのクラスが密接に連携しながらイベントを処理していく形になっ…
概要 並列化可能な、膨大な数の計算を行う場合はCompute Shaderの出番です。 今回はこの「Compute Shader」を触ってみたのでそのメモです。 Compute Shaderの最小単位 Compute Shaderを利用する場合、まずは.computeファイルを作成します。 そして作成したCo…
概要 HTC Viveのヘッドマウントディスプレイには、フロントカメラが埋め込まれています。 このカメラは、メニュー表示時にカメラを起動し外の状況を確認したり、ゲーム画面自体にオーバーレイで周りの状況を表示して、HMDを脱がなくても色々とできるように、…
概要 Unityでは標準ではスケールのPivot位置を変更することができません。 とはいえそうした要望はきっと多いと思います。 実際にググって見ると、モデリングツールで変更しろ、だとか、Empty Objectを作って子にしてからスケーリングしろ、だとか、色々な情…
概要 今作っているコンテンツで、なにもない空間からオブジェクトが転送されてきたような演出をしたいと思い、そのために色々シェーダを書いたのでそのメモです。 以下の画像を見てもらうとどういう効果かイメージしやすいと思います。 今回はこれを実装する…
概要 今作っているコンテンツはネットワークの同期を行って遊ぶゲームを想定していて、プラットフォームにPhotonを選びました。 ネットワーク同期をする場合、サーバ・クライアント型のものとP2P型のものとがあり、PhotonはP2P型のものになります。 UNETもPh…
概要 今回の記事は、この記事を熟読して実装したものになります。 www.gamasutra.com 今作っているVRコンテンツは、「VRコンテンツ内で誰しもが共通してやることは、掴んだものは必ず投げる」というところに着目して、「VRで投げる」をコンセプトに開発を進…
概要 やってることはただのMenuItemのEditorスクリプトですが。 UNETなどネットワーク対応のコンテンツを作っていると、複数のエディタを立ち上げてネットワーク経由でのやり取りをデバッグしたくなることが多々あります。 (ちなみに、同一プロジェクトを複…
概要 VR開発をしていると、HMDをかぶるのが意外と手間になります。 そこで、マウスで位置や回転を制御できると便利です。 ということで、カメラに適用しておくとさっと動かせるスクリプトを残しておきます。 こんな感じ↓ using UnityEngine; using System.Co…
概要 VRコンテンツのネットワーク対応をしていると、ビルドしてexeファイルとエディタのふたつでデバッグするときがあるんですが、VRモードを双方ともオンにしているとあとから起動したほうが終了されてしまいます。 (HMDはひとつのアプリでしか使えない) …
概要 スクリプトをアタッチして、インスペクタからVector3型の値を操作する、というケースはままあるでしょう。 インスペクタから設定する場合、XYZそれぞれの値を手入力で入力して設定していくことになりますが、位置の調整だったり、回転だったり、といっ…
概要 「Standard Assets」に含まれている「GlassStainedBumpDistort」を覗いてみました。 どういうシェーダかというと、以下のように、オブジェクトの背面を歪ませる効果を実現するものです。 準備するのは歪ませるための法線を持たせたBumpMap用のテクスチ…
概要 「ゴール駆動型エージェントの実装(概念編)」の続編です。 こちらでは、前回書いた概念を元に、実際にサンプルプロジェクトで実装した内容を解説していこうと思います。 ※ 前回も書きましたが、あくまで書籍を読んで実際に自分が実装したものの解説で…
概要 Unityだけに関わらず、ゲームやそれに類するコンテンツを制作する際に必要となるのが「AI」の存在です。 格闘ゲームやシミュレーションの対戦相手のような明確な相手ではなくとも、例えばちょっとした敵が出現するコンテンツなどでも、AIで操作されたキ…
概要 NavMeshを使うことで、Unityでは簡単に目的までのパス(経路)を計算することができます。 docs.unity3d.com 経路探索して移動させたいオブジェクトに「NavMeshAgent」をアタッチし、「Window > Navigation」メニューで表示されるナビゲーション設定に…
もっぱらQiitaで記事を書いていましたが、そろそろUnityの話題に絞ったブログを作りたくなったので、過去に少しだけ使っていたこのブログをまっさらにしました。 今後のUnityの記事はここにまとめていこうと思います。 ということで、第一回目はメモとして残…