夜風のMixedReality

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

Unity

ゼロから始める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では周囲の環境が見えなくなるためにあらかじめ、どのくらい動き回れるスペースがあるのかを設定するガ…

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

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

ゼロから始めるUnyShader開発  第三章 透明度を持つシェーダー その①

本日はShader枠です。 今回は透明度について紹介します。 〇透明度を持つシェーダーを実装する 透明度を持つシェーダーはガラスや水、エフェクトなど様々なシチュエーションで使用されます。 透明度を持つシェーダーを実装するには次の要件をクリアする必要…

ゼロから始めるUnityShader開発 ShaderGraphを用いたアニメーション

本日はUnityシェーダー枠です。 今回はShaderGraphを用いたアニメーションを紹介します。 〇環境 ・Unity2021.3.5f1 ・URP 〇ShaderGraphを用いたアニメーション 今回はアニメーションで上下し、Y座標が0以下の場合透明になるというようなシェーダーを作っ…

UnityC#でキューブを作成しUVについて理解する

本日はMRMT枠です。 今回はUV情報をスクリプトベースでメッシュに組み込む方法を調べていきます。 〇UnityC#でUVを含むメッシュを生成する C#で頂点情報に加えUV情報を基にメッシュを構築する方法は次のようになります。 using System.Collections.Generic; …

MixedRealityModelingToolsその⑩ Blenderから送信するメッシュ情報にUV情報を組み込む

本日は筆者が開発しているMixedRealityModelingTools枠です。 〇MixedRealityModelingToolsとは? MixedRealityModelingToolsとは筆者が個人的に開発しているBlenderのソリューションで、目的としてBlenderからMixedRealityアプリケーション開発ツールと連携…

MixedRealityModelingToolsその⑨ Unityのカメラ情報を取得してMessagePack形式で送信する

本日はMixedRealityModelingTools枠です。 〇データフォーマットの定義 MRMTではデータの送信フォーマットにMessagePackを使用しています。 開発時はBlender側とプラットフォーム側で個のフォーマットが一致しているという条件のもとデータの送受信が行えま…

UnityのIEDとしてVSCodeを指定する

本日はUnity&VSCode枠です。 UnityではWindows、MacかかわらずデフォルトでVisualStudioがインストールされIEDとして使用されます。 Macの場合Xamarin StudioをベースとしてWindows版にUIや機能を会わせたVisualStudio for Macを使用できます。先日Microsof…

MixedRealityModelingTools その⑨ Unity上で受け取ったイメージデータを処理する

本日はMRMT枠です。 〇MRMTとは? MixedRealityModelingToolsは筆者が開発しているBlenderのアドオンと、UnityやUE5などMixedRealityアプリケーション内で連携させることができるパッケージで構成されるソリューションです。 github.com 〇データ形式と判別 …

MixedRealityModelingTools その⑧ Blender上でテクスチャの取得とバイナリの送信

本日は先日最初期のβ版リリースをしたMixedRealtiyModelingToolsの機能開発枠です。 〇MixedRealityModelingToolsとは? MixedRealityModelingTools(MRMT)は筆者が開発しているMixedReality空間内での3DCGのデータの取り扱いに関するパッケージです。 Blen…

MixedRealityModelingToolsのβ版をリリースしました。

本日はMRMT枠です。 前々から開発を進めていたMixedRealityModelingToolsのβ版をリリースしましたので紹介をします。 〇リリースページ github.com なお本日時点でデモを想定しているバージョンであり、バグが多々含まれている可能性があります。 またUI等も…

BlenderのPythonでサーバーを立てMessagePackでメッシュを送信する MixedRealityModelingToolsその④Unity側のメッシュデータのデシリアライズ

本日は昨日に引きつづき自身が開発中のパッケージMixedRealityModelingTools(仮)の機能紹介を行います。 昨日はUnity側のTCPクライアントの実装を見ていきました。 redhologerbera.hatenablog.com 本日はBlenderから送信されたメッシュデータの処理を解説し…

BlenderのPythonでサーバーを立てMessagePackでメッシュを送信する MixedRealityModelingToolsその③Unity側のTCPクライアントの処理

本日は昨日に引きつづき自身が開発中のパッケージMixedRealityModelingTools(仮)の機能紹介を行います。 昨日はBlender側でMessagePackを使用したメッシュデータの送信までを見ていきました。 本日はUnity側でデータの受信について紹介します。 〇MixedReali…

Unityでメッシュの見た目をフラットシェーディングとスムースシェーディングで自在に変える

本日はUnity枠です。 現在勉強もかねてBlenderとUnityアプリケーションを連携させるパッケージを作っています。 github.com こちらはまだ基礎機能ができただけで現時点では本ブログで紹介できるようなボリュームがないのですが今回はこの中からメッシュの見…

UnityEditor拡張で任意のウェブサイトのURLを開く

本日はUnity枠です。 UnityEditor拡張を使用することで自身のツールを作成することができますが、今回はUnityEditor拡張を使用してドキュメントなどの外部のウェブサイトを開く機能を実装します。 〇コード Editor拡張でボタンを押すことで任意のURLを開くコ…

ARFoundationを使用したiPhoneのARでURPプロジェクトでカメラのレンダリングが壊れる問題の解消

本日はトラブルシューティング枠です。 先月Macを購入してから少しづつiOSのARアプリケーションの開発も進めていますが今回はURPプロジェクトでカメラのレンダリングが破断してしまう問題があったため備忘録としてこちらの問題を残します。 〇環境 ・Unity20…

Unity2023で新しくなったWaterSystemを見る アイランド その③

本日はUnity枠です。 昨日はUnity2023で新しくなったWaterSystemのデモシーンを見ています。 redhologerbera.hatenablog.com 今回はアイランドシーンの実装を見ていきます。 〇Scene01 Island 昨日も紹介した通りこのシーンの海はWaterオブジェクトの子オブ…

Unity2023で新しくなったWaterSystemを見る アイランド その② 海の実装

本日はUnity枠です。 昨日はUnity2023で新しくなったWaterSystemのデモシーンを見ています。 redhologerbera.hatenablog.com 今回はアイランドシーンの実装を見ていきます。 〇Scene01 Island 昨日も紹介した通りこのシーンの海はWaterオブジェクトの子オブ…

Unity2023で新しくなったWaterSystemを見る アイランド その①

本日はUnity枠です。 Unityでは近年HDRPにおいて様々な新機能が開発、追加されています。 今回はその中で水の描画に使用されるWaterSystemの新機能でサンプルパッケージが公開されていましたのでこちらを見ていきます。 〇WaterSystemとは? WaterSystemはUn…

UnityEditor拡張で現在インポートされているパッケージを取得する

本日はUnity枠です。 UnityEditor拡張を使用して現在のUnityプロジェクトにインポートされているパッケージを取得していきます。 〇インポートされているパッケージを取得する インポートされているパッケージを取得するためには次のようなコードを使用しま…

UnityEditor拡張でウィンドウ上で表示されるアイコンを表示する

本日はUnity枠です。 UnityではEditor拡張を使用することで様々なUnityプロジェクト内でのツールを作成することができます。 例えば次のようにコードを作成しEditorフォルダ内に配置した場合はウィンドウを表示することができます。 ''' using UnityEngine; …

バッチファイルで任意の階層にjsonファイルを作成する

本日はバッチファイルを触っていきます。 先日作業の関係でUnityのmanifest.jsonをignoreしないといけないけど、ignoreした場合Clone時などにmanifest.jsonが存在せず自動で作られることで依存関係がエラーを吐いてしまうことがありました。 これは通常Unity…

ゼロから始めるUnityShader開発 _Time関数のヌマ

本日はshader枠です。 UnityでShaderを書く際にアニメーションなど時間軸を使いたい場合は_Timeを使用することが一般的です。 しかしながらこのTime関数をShaderLabで使用する際には注意が必要です。 〇_Time _TimeはUnityCG.cgincで定義されている変数で、S…

UnityEditor拡張を使用してUnityEditor起動時に表示されるウィンドウを実装する

本日はUnity枠です。 UnityではUnityEditor拡張を使用することでオリジナルのウィンドウやUnity内で使用できるツールを作成できます。 今回はUnityをUnityHubから立ち上げた際に起動するウィンドウを作っていきます。 〇起動時に表示されるウィンドウ アプリ…

Shaderってこんな感じ発表会 + IwakenLab公開ミーティングで登壇しました。

本日はイベント登壇枠です。 本日IkwakenLabの公開イベント』に参加、登壇しました。 今回は筆者のパートの内容をまとめていきます。 ※スライドと画像は後ほど更新します。 〇7分で誰でもかけるようになるUnityShader Part.1 〇Shaderの挫折ポイント 〇デバ…

ゼロから始めるUnityShader開発 第五章 複数のUVを切り替えて使用できるシェーダーを書く

本日はシェーダー枠です。 3Dモデルが持てる情報にUVがありますが、UVは複数持つことができます。 今回は任意に複数のUVを切り替えるシェーダーを書いていきます。 〇複数のUVを切り替えるシェーダー 通常頂点シェーダーに渡す情報を定義する構造体で3Dモ…

ゼロから始めるUnityシェーダー開発 第5章 Unityでボロノイ図を描くシェーダーを書く

本日はシェーダー学習枠です。 今回はボロノイ図を描くシェーダーを書いていきます。 〇ボロノイ図とは? ボロノイ図、ボロノイテクスチャとも呼ばれていますが、これは波の作成などに使用されるノイズテクスチャです。 座標上にランダムに割り当てた頂点同…