夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

2023-10-01から1ヶ月間の記事一覧

iPhoneでGeoSpatialAPIを試す

本日はiOS枠です。 iOSでGeoSpatialAPIを試していきます。 〇GeoSpatialAPIとは? GeoSpatialAPIはGoogleが開発した地球規模でのVPS(Visual Positioning Service)です。 VPSとはあらかじめアプリケーションが実行される環境情報を登録することによって現在…

Blenderスクリプトで任意のパスにあるテキストの内容を書き換える

本日はBlender(Python)枠です。 以前BlenderPyrhonで外部ファイルを読み込むことを行いました。 redhologerbera.hatenablog.com 今回は任意の外部パスにあるテキストファイルの内容をBlenderで書き換えていきます。 〇BlenderPythonで外部テキストファイルの…

Blenderで外部パスのバッチファイルを実行する

本日はBlender枠です。 現在Blenderのアドオンを作成していますが、筆者のツールでは外部ライブラリのインポートを必要としています。 筆者自身の環境では環境構築は簡単に行うことができますが、アドオンとして配布する場合、環境構築によるエラーが発生す…

Blenderでスクリーンショットを撮影する

本日はBlender学習枠です。 〇環境 今回はBlender 3.4で動作確認、コードの実行を行っています。 〇Blenderでスクリーンショットを撮影する Blenderではレンダリング以外に本ブログのように作業状況など、Blnederの画面をスクリーンショットして撮影する機能…

MRTK3のサンプルシーンを実行する BoundsControllExamples その①

本日はMRTK3枠です。 今回はBoundsControllExamplesシーンを見ていきます。 〇BoundsControllExamples BoundsControllExamplesシーンはUIUXにかかわるサンプルシーンです。 Boundsとは領域という意味で、このサンプルシーンではオブジェクトを操作する際の領…

最大公約数計算プログラム

本日の1日1題枠です。 〇お題 問題: 最大公約数 (GCD) 計算 与えられた2つの整数の最大公約数 (GCD) を計算するプログラムを作成してみてください。GCDは、2つの整数が共通で割り切れる最大の整数です。 プログラムは以下の要件を満たす必要があります: …

MixedRealityGrapicsToolsのNormalMapScaleが機能しない問題の解消 その②

本日はMRGT枠です。 今回はMRGTシェーダーのNormalMapScaleが機能しない問題の解消を行います。 redhologerbera.hatenablog.com 〇UnpackScaleNormalの処理 UnpcakScaleNormalの処理は次のようになります。 half3 UnpackScaleNormal(half4 packednormal, hal…

HoloLens 2でシステムキーボードを使用する

本日はHoloLens 2枠です。 先日iPhoneのシステムキーボードを実装する際にTouchScreenKeyboardクラスを使用しました。 TouchScreenKeyboard はOSが提供するデフォルトのキーボードを起動するメソッドです。 サポートされているプラットフォームとして,Androi…

Unity iOSアプリでシステムキーボードを使用する

本日はiOS枠です。 今年の夏からmacを使い始め開発を始めていますが、今回はキーボードを使用していきます。 〇環境 ・Unity2021.3.21f1 〇iOSのシステムキーボード WindowsなどのPCにはアクセシビリティ機能を使用しない場合デフォルトで物理キーボードがあ…

SubstancePainterでポリゴンごとにマスクする

本日はSubstance 3D枠です。 本日はSubstancePainterでポリゴンごとにマスクを作成し、塗り分ける手法をまとめます。 〇SubstancePainterでポリゴンごとにマスクを作成する ①SubstancePainterにモデルをインポートします。 今回はベイクまで済ませました。 …

ゼロから始めるUntiyShader開発 #pragma Targetって何?

本日はShader枠です。 〇#pragma Targetとは? ShadferターゲットはShaderLabでシェーダーを記述する際に使用できる#pragmaディレクティブです。 用途としてはシェーダーコンパイルターゲットレベルを指定します。 シェーダーコンパイルターゲットレベルとは…

素因数分解プログラム

本日の1日1問プログラミング学習枠です。 〇お題 問題: 素因数分解 与えられた整数を素因数分解するプログラムを作成してみてください。素因数分解は、与えられた整数を素数の積に分解するプロセスです。たとえば、整数 12 は素因数分解すると 2 × 2 × 3 …

UnityでビルドインシェーダーマクロのUnityCG.cgincの中身を見る方法

本日はShader枠です。 〇UnityCG.cgincとは? UnityCG.cgincはUnityで提供されている組み込みのシェーダーファイルで、ヘルパーメソッドと定義を提供しています。 例えばUnityObjectToClipPos()などのUnity座標や空間に合わせてデータを与えるだけで変換して…

文字列の反転

本日の1日1問プログラミング学習枠です。 〇お題 問題: 文字列の反転 与えられた文字列を反転させるプログラムを作成してください。プログラムは以下の要件を満たす必要があります: ユーザーから文字列を入力として受け取ります。 入力された文字列を反転…

SubstancePainterで文字やマークを刻印する

本日はSubstance枠です。 今回はSubstancePainterのAlphaマスクを使用して任意のマークや文字をオブジェクトに刻印していきます。 〇SubstancePainterのマスク 今回は次のようなモデルに工業製品のようにコーションマーク(注意文)やマークを付けて情報量を…

素数の判定プログラム

本日の1日1問プログラミング学習枠です。 本企画ではChatGPTにお題を出題させ回答していきます。 〇お題 問題: 素数の判定プログラム 与えられた整数が素数であるかどうかを判定するプログラムを作成してみてください。素数は1と自分自身以外の約数を持たな…

MixedRealityGraphicsToolのNormalMapScaleが機能しない問題の解消 その①

本日はMRGT枠です。 MRGTのGitHubイシューに次のようなバグレポートが上がっていました。 github.com NormalMapScaleの機能は筆者が提案、実装した機能です。 今回は気になったこともあり修正していきます。 〇バグの確認 バグレポートによるとUnity 2021.3.…

C#でアナグラム判定

本日の1日1問枠です。 〇お題 問題: 文字列のアナグラムを判定するプログラム 与えられた2つの文字列がアナグラムであるかどうかを判定するプログラムを書いてみてください。アナグラムは、同じ文字を含む単語またはフレーズです。アナグラム同士は、文字…

MetaQuest3 を使用してPCVRを設定する

本日はQuest枠です。 MetaQuestでは外部デバイスなしにxR体験を行うことができます。 初代Questやその全形であるOculus Goが登場するまではVR体験を行うためにはハイスペックのPCが必要でした。 コンシュマー向けのデバイスであるプレイステーションVRもゲー…

回文を判定する

本日の1日1問枠です。 〇1日1問プログラミング学習枠とは? この枠ではプログラミングの勉強としてChatGPTにお題を出してもらいプログラムを組んでいく筆者の学習枠です。 今回はいくつか問題を出してくれたうちの1つ、回文を判定するプログラムを書いて…

MRTK3×MetaQuestでパススルーモード(MR)を実装する方法

本日はQuest枠です。 MetaQuestではMRモードと呼ばれるビデオ映像を通して現実世界とオブジェクトを対話するモードがあります。 この機能はもともとはVRでは周囲の環境が見えなくなるためにあらかじめ、どのくらい動き回れるスペースがあるのかを設定するガ…

MRTK3×MetaQuest3でハローキューブアプリを作る

本日はMRTK3&Quest枠です。 〇環境 ・Unity2021.3.21f1(LTS) ・MRTK3(バージョンはパッケージによって異なるので後述) ・MixedRealityFeatureTools ・MeatQuest3 ・Windows 11PC またQuestで独自のアプリケーションを導入するためにはデバイスが開発者モー…

MetaQuest3を開発者モードにする&PCと接続しAPKファイルをインストールする

本日はQuest枠です。 MetaQuest3はMetaが開発、展開している最新のXRデバイスです。 Quest3でアプリケーションを開発したり、高度な機能を使用するためには開発者モードを有効化する必要があります。 〇開発者モードの有効化の手順 開発者モードを有効にする…

MixedRealityGraphicsTools StndardShaderで不透明オブジェクトの描画が行われない問題の解消

本日はトラブルシューティング枠です。 MRTK3のグラフィックツールであるMixedRealityGraphicsToolsで描画に関する問題が発生しました。 今回はこちらを解消します。なお原因等は後述していますがMRGTに限らずこの問題はURPにおいてカスタムシェーダーを使用…

Tailscaleを使用してVPN環境を構築する

本日はネットワーク周りのネタです。 筆者はフロント側ばかりでサーバーサイドはほぼ触ったことがなかったのですが、筆者の開発しているMixedRealityModelingToolsでは通信を使用してBlenderとUnityアプリケーションで通信を行っており、勉強をしています。 …

正式リリース版MRTK3各パッケージをとまとめる。+導入手順

本日はMRTK3枠です。 〇環境 ・Unity2021.3.5f1 ・Windows 11 〇導入 MRTK3はUnityのPackageManagerを使用することで導入できますが、パッケージの管理、運用をするための専用ツールとしてMixedRealityFeatureToolsというものがあります。 MixedRealityFeatu…

Blenderでポリゴン数が多い順にオブジェクトを表示する その⑤アドオンとして登録できるようにする

本日はBlender枠です。Blenderでポリゴンを可視化するツールを作成しています。 今回はアドオンとして仕上げていきます。 redhologerbera.hatenablog.com 〇bl_info Blenderではアドオンとして正式に登録するためにはbl_infoという辞書形式のデータの定義が…

Microsoft系ブラウザで使えるAI機能で作業効率を上げる

AI

本日はAI枠です。 先日家族と電話で話している中でMirosoft Edgeについての話題が上がりました。 22年にOpenAIがChatGPTを発表してから、パートナーであるMicrosoftではMicrosoft365だけでなくEdgeにAI機能を取り入れる動きが加速しています。 筆者はメイン…

StreoKitをUWPテンプレートでビルドするときにEETypeRva:0x00047188エラーが出る問題の解消

本日はStereoKit枠です。 先日Stereokitの開発者のNickさんにお会いしてから再び熱が入っているStereokitですが、UWPのテンプレートを使用したさいにエラーが出てビルドができない問題がありました。 今回はトラブルシューティングを行います。 〇発生したト…

BlenderPythonでBlenderのバージョンによって処理を分ける

本日はBlenderPython枠です。 BlenderのPythonAPIであるbpyはBlenderのバージョンによって若干の挙動が異なります。 今回はBlenderのバージョンによって処理を変える実装を行います。 〇Blenderのバージョンを取得する まずは条件分岐を行うためにBlenderの…