夜風のMixedReality

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

Unity

Unityでフェイズシフトシェーダーをつくる その4 ShaderLabでの実装

本日はShader枠です。 先日ShaderGraphでガンダムSEEDの作品中に登場する架空の技術であるフェイズシフト装甲のシェーダーを作成しました。 redhologerbera.hatenablog.com 本日は、ShaderLabのコードで再現していきます。 〇ShaderLabでフェイズシフトシェ…

Unityでフェイズシフトシェーダーを作る その3 カラーノイズをつける

本日は昨日に引き続きUnityShader枠です。 昨日に引き続いてフェイズシフト装甲のシェーダーを作成します。 昨日はむらをつけて展開するようにグレースケールを変異させる機能を実装しました。 今回は仕上げとして展開時に入る色のノイズを表現します。 〇色…

Unityでフェイズシフトシェーダーを作る その2

本日は昨日に引き続きフェイズシフト装甲をUnityのシェーダーで再現していきます。 昨日は一番の機能となるグレースケールに対応しました。 redhologerbera.hatenablog.com 〇フェイズシフト展開時のノイズ フェイズシフト装甲を展開する際は一様に展開する…

Unityでフェイズシフトシェーダーを作る その1

本日はシェーダー枠です。 先日筆者が大好きなアニメのガンダムシリーズの最新作「機動戦士ガンダムSEED FREEDOM」の映画を見に行きました。 ほかのシリーズと世界戦が違い独自の設定があるSEEDシリーズですが独特な設定の一つとしてフェイズシフト装甲とい…

iPhoneで基本的なARアプリを作る その② UnityのビルドとXCodeで実機にインストール

本日はUnity枠です。 昨日に引き続きARFoundationを使用した基本的なARアプリを作成していきます。 redhologerbera.hatenablog.com 環境やUnityでのARFoundationを使用したプロジェクト構築はその1の記事を参考にしてください。 〇Unityでのビルド ①Unityの…

iphoneでARカメラの向きをスクリプトから変更する

本日はApple枠です。 先日は ARKitの機能を使用して顔を検知しました。 redhologerbera.hatenablog.com この際にiPhoneに表示されるカメラの向きはインカメラ(スクリーン側)を使用していましたが、今回は動的にスクリプトでアウトカメラに切り替える方法を…

HoloLensのイベントをiPhoneからリモートで実行する HoloLens アドベントカレンダー4日目

本日はHoloLens枠です。 〇HoloLensアドベントカレンダー2023とは? HoloLensアドベントカレンダーとは毎年12月に私の師である、がちもとさんを中心に開催されているアドベントカレンダー企画になります。 qiita.com 〇iPhoneからHoloLensアプリの関数を実行…

MRTK3のシーンを実行する際のプロファイルが検知できないエラー バグ報告をする HoloLens2023アドベントカレンダー 2日目

本日はMRTK枠です。 またHoloLens2023アドベントカレンダー2023 2日目の記事でもあります。 本来は別の内容を調査する良い手ではあったのですがMRTK3を試している際に謎の不具合が発生し作業が止まってしまっていたため今回はこちらを調査していきます。 〇H…

HoloLensのリモートデバッグアプリを作る HoloLens アドベントカレンダー1日目

本日はHoloLens枠です。 またHololensアドベントカレンダー20231日目の記事になります。 〇HoloLensアドベントカレンダー2023とは? HoloLensアドベントカレンダーとは毎年12月に私の師である、がちもとさんを中心に開催されているアドベントカレンダー企画…

Unityで外部共有用にパッケージをエクスポートする

本日はUnity枠です。 UnityではGitHub上に自身のリポジトリを公開するときなどにGit ignoreによってファイルをgitのインデックス対象外にしてファイルの一部を公開しないことができます。 これは一般的にはローカル環境で自動生成されるファイルなどですが、…

BibcamVFXでiPhoneで撮影した映像のDepth情報に基づきエフェクトを加える

本日はUntiy枠です。 先日RenderStreamingの調査の中でBibcamについて触っていきました。 redhologerbera.hatenablog.com BibcamはLiDAR搭載のiPhoneで撮影したDepthなどの情報が含まれた映像をもとにあれこれをすることができるというサンプルです。 iPhone…

BibcamをiPhoneで試す。

本日はUnity枠です。 今回は先日RenderStreamingについて情報を調べているときにアイデアとして参考になると紹介されていたリポジトリを試していきます。 redhologerbera.hatenablog.com 〇環境 ・Mac Mini(M2) ・Unity2021.3.21f1 ・iPhone12 ProMax※ 実行…

UnityRenderStreamingでスマホARを実装する 背景の透過 その② ドキュメント

本日はUnity枠です。 UnityRenderStreamingを使用することでHDRPなどのハイクオリティなレンダリング結果をスマートフォンなどで見ることができます。 ただし、現状スカイボックスがそのまま表示され、ARというよりVR的表現になっています。 今回はドキュメ…

UnityPackageManagerで導入したパッケージのスクリプトを編集可能にする

本日はUnityの実験枠です。 UnityではPackageManagerを使用することでGitHubやURLから外部パッケージをインポートすることができます。 ここでインポートしたパッケージは通常AssetsではなくPackagesの階層に格納されます。 Packages内は容易に編集できない…

UnityRenderStreamingでスマホARを実装する 背景の透過 その①

本日はUnity枠です。 先日よりRenderStreamingを触っていますが、スマートフォンARまで実装しました。 ARといってもARFoundationの機能を使用してカメラを動かしている実装で、どちらかというと現実情報をベースとしたARではなくVR的な実装になっています。 …

UnityRenderStreamingでスマホARをHDRPで動かす。

本日はUnity枠です。 〇RenderStreamingとは? RenderStreamingはUnityが提供するクラウドレンダリングを実現するパッケージです。 WebRTCの技術を用いてネットワークを経由してリモートで処理を実行できるのが特徴です。 通常HDRPプロジェクトはハイエンド…

Unity RenderStreamingを試す。 

本日はUnity枠です。 本日はUnityのRenderStreamingを動かしていきます。 〇RenderStreamingとは? RenederStreamingはUnityによって提供されているパッケージでWebRTCの技術を用いてウェブブラウザ上でクラウドレンダリング(リモートでUnityアプリの実行)…

Unityで複数のオブジェクトをマテリアルスロットを維持して統合する

本日はUnity枠です。 昨日Unityでメッシュの統合を行うコードを実行しました。 redhologerbera.hatenablog.com このコードでは2つのメッシュを統合して新しいメッシュを生成していますが、マテリアルの処理をしておらず、片方のマテリアルが統合後のマテリ…

Unityで2つのメッシュオブジェクトを一つの新たなメッシュに統合する

本日はUnity枠です。 Unityでは基本的にfbxやobjなどのファイルをインポートして3Dモデルを扱います。 メッシュの削減や改変は基本的にはUnityのワークフローではありませんが、Meshクラスのスクリプトを使用することで手動でメッシュの改変を行うことはで…

Unityであるオブジェクトの頂点ごとのワールド座標を取得する

本日はUnityの実験枠です。 Unityで配置したオブジェクトは通常Transformコンポーネントでオブジェクト全体の座標を確認することはできますが、オブジェクトを構成している頂点自体の情報を取得することはできません。 今回はUnityに配置したオブジェクトの…

PLATEAU-SDK-Toolkits-for-Unity Publicの環境構築

本日はUnity枠です。 日本では国土交通省が主導するオープンソースな都市の3Dモデルを提供するPlateauがあります。 Plateauを使用することで自治体の災害ハザードマップの作成だけではなく、街づくりやエンターテイメントなど様々な領域で使用が期待されて…

UnityでiPhone向けにビルドする際にSDKエラーを吐いてしまった問題の解消

本日はiOSトラブルシューティング枠です。 UnityでiPhone向けにアプリケーションをビルドしようとした際にSDKのエラーが発生して困っていたため備忘録としてまとめます。 〇発生した問題 Unity2022.3.5f1でiOSプラットフォームでアプリケーションをビルドし…

iPhoneでGeoSpatialAPIを試す

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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