MRが楽しい

MRやVRについて学習したことを書き残す

2021-09-01から1ヶ月間の記事一覧

MRTKのObjectManipulatorで指定の平面上でオブジェクトを移動する

本日は MRTK の小ネタ枠です。 MRTKのObjectManipulatorで指定の平面上でオブジェクトを移動する方法を記事にします。 ObjectManipulator 片手または両手を使ったオブジェクトの移動、スケール変更、回転を実現するコンポーネントです。 設定を変更すること…

Blender2.9で利用可能なpythonスクリプトを作る その81(メッシュの三角面数を取得する)

本日は Blender の技術調査枠です。 Blender2.9で利用可能なpythonスクリプトを作ります。 メッシュの三角面数を取得する python スクリプトからメッシュオブジェクトの三角面数を取得してみます。 Mesh データの calc_loop_triangles() 関数を呼び出すと、…

Blender2.9で利用可能なpythonスクリプトを作る その80(メッシュのポリゴン数を取得する)

本日は Blender の技術調査枠です。 Blender2.9で利用可能なpythonスクリプトを作ります。 メッシュのポリゴン数を取得する python スクリプトからメッシュオブジェクトのポリゴン数を取得してみます。 Mesh データの polygons からメッシュのコレクションが…

HoloLensでユニティちゃんトゥーンシェーダーを使って輪郭線の表現を行う

本日は HoloLens の小ネタ枠です。 HoloLensでユニティちゃんトゥーンシェーダーを使って輪郭線(アウトライン)の表現を試してみます。 MRTKのMeshOutlineによるアウトラインの表現 以下の記事で MRTK の MeshOutline を使ったアウトライン表現を試してみま…

関数の戻り値にIEnumerableを使ってList型のプライベート変数を保護する

本日は C# の小ネタ枠です。 関数の戻り値に IEnumerable を使って List 型のプライベート変数を保護する方法を記事にします。 IEnumerableインタフェース 単純な反復処理をサポートする列挙子を公開するインタフェースの定義です。 List 型や Dictionary 型…

HoloLensでユニティちゃんトゥーンシェーダーを試す

本日は HoloLens の小ネタ枠です。 HoloLens でユニティちゃんトゥーンシェーダーを利用してトゥーンシェーダの動作を試してみます。 ユニティちゃんトゥーンシェーダー セル風3DCGアニメーションの制作現場での要望に応えるような形で設計された映像志向の…

MRTKのMeshOutlineを使って輪郭線の表現を利用する

本日は MRTK の小ネタ枠です。 MRTK の MeshOutline を使って輪郭線の表現を利用してみます。 MeshOutline MRTK で提供されている輪郭線を表示するためのスクリプトです。 Post-processing を利用しないため、描画コストを抑えることができます。 docs.micro…

自然なモーションを作成するCascadeurで人型モデルのモーションを作成する その2(作成モーションをUnityやBlenderに取り込む)

本日は Cascadeur の調査枠です。 アニメーションソフトウェアの Cascadeur で作成した人型モデルのモーションを Unity や Blender に取り込んでみます。 前回記事 以下の記事の続きになります。 bluebirdofoz.hatenablog.com 作成データのエクスポート Casc…

自然なモーションを作成するCascadeurで人型モデルのモーションを作成する

本日は Cascadeur の調査枠です。 自然なモーションを作成するアニメーションソフトウェアの Cascadeur で人型モデルのモーションを作成してみます。 シーンの新規作成 アプリを起動した際に表示されるダイアログから[New Scene]を選択することでシーンが作…

様々なキャラクターのモーションを作成するCascadeurのインストール手順

本日は環境構築枠です。 様々なキャラクターのモーションを作成するアニメーションソフトウェアの Cascadeur インストール手順を記事にします。 Cascadeur Cascadeur は人型またはそれ以外のキーフレームアニメーションを作成するためのアニメーションソフト…

HoloLens2でホロモンアプリを作る その62(アニメーションコントローラの複数のStateをSubStateMachineに纏める)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 今回はアニメーションコントローラの複数のStateをSubStateMachineに纏めるメモです。 SubStateMachine SubStateMachine はアニメーションコントローラにおけるいくつ…

HoloLens2でホロモンアプリを作る その61(「ピース」と言ったりチョキの手を見せるとホロモンがピースサインをする)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 今回は「ピース」と言ったりチョキの手を見せるとホロモンがピースサインをするメモです。 音声認識の追加 最初に「ピース」という音声認識を行えるように設定を変更し…

LINQのクエリ演算子の即時実行と遅延実行の動作を確認する

本日は LINQ の技術調査枠です。 LINQのクエリ演算子の即時実行と遅延実行の動作を確認して記事にします。 LINQのクエリ演算子の即時実行と遅延実行 LINQのクエリ演算子には以下の2つの実行形態があります。 実行形態はクエリ演算子ごとに定められています。…

MRTKのBillboardを使ってオブジェクトが常にユーザ側を向くようにする

本日は MRTK の小ネタ枠です。 MRTKのBillboardを使ってオブジェクトを常にユーザ側を向くようにする方法を記事にします。 Billboard Billboard を設定したオブジェクトは、常にユーザの方向を向きます。 これにより、ユーザが移動してもテキストやメニュー…

Unityのジンバルロックの動きを理解して制御する

本日は Unity の技術調査枠です。 Unityのジンバルロックの動きを理解して制御してみたので記事にしてみます。 ジンバルロック 複数の軸の回転を組み合わせたとき、1つの回転軸の自由度が失われてしまう事象のことです。Unity のトランスフォームの回転では …

ContextMenuまたはContextMenuItemを使ってUnityエディターのInspector上で関数呼び出しを行う

本日は Unity の小ネタ枠です。 ContextMenuまたはContextMenuItemを使ってUnityエディターの Inspector 上で関数呼び出しを行う方法を記事にします。 ContextMenuとContextMenuItemAttribute ContextMenu はコンテキストメニューにコマンドを追加することが…

Unityで共通のマテリアルを持つオブジェクトのマテリアル設定を一括で変更する

本日は Unity の小ネタ枠です。 Unityで共通のマテリアルを持つオブジェクトのマテリアル設定を一括で変更する方法を記事にします。 sharedMaterial Renderer.sharedMaterial を変更すると、このマテリアルを使用するすべてのオブジェクトの外観が変更されま…

HoloLens2でホロモンアプリを作る その60(コライダーの上半分だけで撫でる判定を行う)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 今回はコライダーの上半分だけで撫でる判定を行うメモです。 トランスフォームの特定ベクトルと角度 今回はトランスフォームの上方向を示す Vector3.up と Vector3.Ang…

HoloLens2でホロモンアプリを作る その59(眠っているときに他の行動を要求しても寝続けるようにする)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 今回は眠っているときに他の行動を要求しても寝続けるようにするメモです。 ホロモンの眠り行動 ホロモンの眠り行動を実装した記事は以下になります。 bluebirdofoz.ha…

HoloLens2でホロモンアプリを作る その58(台座の上から物が無くなると台座が自動的に消失する)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 今回は台座の上から物が無くなると台座が自動的に消失する実装を行いました。 Physics.RaycastNonAlloc 指定の方向にレイキャストを飛ばして衝突したオブジェクトの情…

オブジェクトの座標を指定の面に投影する

本日は Unity の小ネタ枠です。 オブジェクトの座標を指定の面に投影する方法を記事にします。 2022/1/31追記 本記事の方法では平面の位置を移動した場合、正確に座標を投影できない問題がありました。 以下の記事で平面を動かした場合でも追従可能な方法を…

HoloLens2でホロモンアプリを作る その57(食べ物を近づけられたり頷きを見たりすると待てを止める)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 今回は食べ物を近づけられたり頷きを見たりするとホロモンが待てを止める実装を行いました。 これまでの動作 これまではホロモンが食べ物を前にして、待て状態になった…

Unityで3Dオブジェクトのポリゴンの裏表の両面を描画する

本日は Unity の小ネタ枠です。 Unityで3Dオブジェクトのポリゴンの裏表の両面を描画する方法を記事にします。 ポリゴンの裏側が描画されない 以下は Unity のデフォルトの Standard シェーダを設定した Plane オブジェクトです。 デフォルトのシェーダでは…

MRTKのStandardシェーダを利用して特定のオブジェクトを常に最前面に描画する

本日は MRTK の小ネタ枠です。 MRTKのStandardシェーダを利用して特定のオブジェクトを常に最前面に描画する方法を記事にします。 サンプルプロジェクトの作成 最前面の描画を試すための、MRTK を取り込んだサンプルプロジェクトを作成します。 MRTKのインポ…

UnityのIK(インバースキネマティクス)を使ってアバターの手足を動かす その2(ヒントポジションで膝や肘の向きを調整する)

本日は Unity の技術調査枠です。 UnityのIK(インバースキネマティクス)を使ってアバターの手足を動かしてみます。 前提条件 本記事は前回記事の調査の続きです。 bluebirdofoz.hatenablog.com ゴールポジションのみ設定した場合の動作 前回作成したプロジェ…

UnityのIK(インバースキネマティクス)を使ってアバターの手足を動かす

本日は Unity の技術調査枠です。 UnityのIK(インバースキネマティクス)を使ってアバターの手足を動かしてみます。 IK(インバースキネマティクス) ジョイントのポージングを行う際、空間の目標座標から逆算してジョイントの向きを決定する機能です。 本機能…

よく見るロボット型アバターの「X-Bot」「Y-Bot」の3Dモデルを手に入れる

本日は3Dモデルの情報枠です。 よく見るロボット型アバターの「X-Bot」「Y-Bot」の3Dモデルを手に入れる方法を記事にします。 よく見るロボット型アバター 以下の「X-Bot」「Y-Bot」のことです。 赤い方が「X-Bot」、青い方が「Y-Bot」です。 Mixamo 「X-Bot…

HoloLens2からPCにMiracast機能を使って映像をリアルタイムに投影する

本日は HoloLens2 の小ネタ枠です。 HoloLens2 から PC に Miracast(ミラキャスト) 機能を使って映像をリアルタイムに投影する手順を記事にします。 PC側の準備 映像を投影するPC側でプロジェクションの機能が有効化されている必要があります。 2020年の Win…

HoloLens2でホロモンアプリを作る その56(ホロモンの頭を撫でるとホロモンが反応する)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 今回はホロモンの頭を撫でるとホロモンが反応するメモです。 頭に触られたことを判定する 頭に触られたことを判定する方法には、今回は視界システムと同じロジックを用…

HoloLens2でホロモンアプリを作る その55(Dictionary型で保持する視認オブジェクトのキーにInstanceIDを利用する)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 今回は Dictionary 型で保持する視認オブジェクトのキーに InstanceID を利用するメモです。 Object.GetInstanceID オブジェクトの InstanceID を返します オブジェク…