夜風のMixedReality

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

2023-01-01から1年間の記事一覧

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

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

Unityで一定間隔に処理を実行するメソッド

本日はUnity枠です。 筆者はUnityの暦としては7年近くになりますが、知らないことだらけで毎日が学習の日々です。 今回は一定間隔毎に処理を実行するメソッドについて紹介します。 〇InvokeRepeating InvokeRepeatingはStart関数など任意の関数で呼ぶことで…

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的な実装になっています。 …

BlenderPythonでマテリアルごとのポリゴンの選択を行う。

本日はBlender枠です。 BlenderのPythonを使用してマテリアルごとにポリゴンの選択を行っていきます。 今回はBlender3.4で動作確認をおこなっています。 BlenderのバージョンによってはAPIが異なるためエラーが発生する可能性があります。 〇コード 今回は次…

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

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

Unity RenderStreamingを試す。 

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

BlenderPythonでアドオン設定画面で設定したパスの情報を使用して処理を行う

本日はBlenderPython枠です。 先日Substance-Toolsを導入した際にアドオンの設定にSubstancePainterのエクスポートパスが指定されていることが確認できました。 今回はこの実装を行っていきます。 〇コード 今回は次のようなコードを実行しました。 環境はBl…

SubstancePainterとBlenderを連携させリアルタイムに編集を反映する

本日はSubstance3D枠及びBlenderモデリング枠です。 先日GitHub上でSubstancePainterとBlenderのワークフローを自動化するアドオンが公開されていました。 今回はこちらを試していきます。 github.com 〇環境 ・Windows 11 PC ・Substance Painter (Windows …

BlenderPythonでマテリアルごとの頂点情報を取得する

本日はBlenderPython枠です。 今回はメッシュの構造を理解するためにBlenderのスクリプトで1つのオブジェクトの持つマテリアルごとのメッシュの情報を取得していきます。 今回は以下の人体のモデルをサンプルにBlender3.5の環境で実行しています。 〇コード…

Blender4.0をBlenderLauncherで導入する

本日はBlender枠です。 先日Blender4.0が正式リリースしました。 今回はBlenderLauncherを用いてBlender4.0を自身の環境に導入して生きます。 〇Blender Launcherとは? Blender LauncherはBlenderの公式機能ではなくコミュニティが開発、提供しているサード…

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

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

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

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

マテリアルごとにメッシュをUnityに送信する

本日は筆者のツールMixedRealityModelingTools枠です。 現状筆者が開発しているMRMTではBlenderからメッシュを送信することができますが、単一のマテリアルにのみ対応しています。 〇マルチマテリアルのメッシュ マテリアルはメッシュに紐づいていますが、通…

Blenderでマテリアルの透明、不透明設定を取得する

本日はBlenderPython枠です。 Blenderでは透明度を再現する際にビューポート設定からブレンドモードをアルファブレンディングに設定することでビューポートでも透明度が反映されます。 今回はスクリプトでこのパラメータと、影のモードのパラメータを取得し…

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

本日はWindows枠です 〇Tailscaleを使用してVPN環境する TailscaleのTailnetというサービスを使用することで簡単にVPN環境を構築できます。 Tailscaleは100台まで無料で使用することができます。 ①Tailscaleのサイトへアクセスしログインを行います。 login.…

DirectX12 Triangles Samplesを試す。

本日はC++及びDirectX枠です。 筆者はUnityなどでShaderを書いていることでC++やDirectXに関しての多少の知見はありますが、本格的に勉強をしたことがなかったので、今回はDirectX12のサンプルを試していきます。 今回はMicrosoft LearnのSampleCodeよりTria…

Blenderでレンダリング時に非表示になっているオブジェクトをすべてレンダリング対象外にする

本日はBlenderPython枠です。 Blenderではビューポート上でオブジェクトを非表示にすることができますが、別の設定としてレンダリング対象から外すものがあり、例えばビューポート上では非表示で見えなくてもレンダリング時にレンダリング対象としてレンダリ…

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

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

BlenderでPythonスクリプトで選択しているメッシュをエクスポートする

本日はBlender Python枠です。 今回は選択されているオブジェクトをPythonスクリプトを使用してエクスポートしていきます。 通常エクスポートはGUIで行いますが、コードで行うことで将来的なアドオン内でのオブジェクトの書き出しを行うことを想定して学んで…

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

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

BlenderPythonで追加メニューに独自の項目を登録する

本日はBlender Python枠です。 BlenderではShiftキー+Aキーでメッシュやカメラなど新しいコンテンツの追加が可能です。 今回はこのメニューに独自の項目を追加していきます。 〇コード 先にコードを紹介します。 import bpy #Blenderライブラリ class Custom…

Blenderでバッチファイルを使用して外部Pythonライブラリを導入する

本日はBlenderPython枠です。 redhologerbera.hatenablog.com 〇BlenderのPythonパスの指定 前回はBlenderがインストールされているパスを取得することはできましたが、実際はBlenderのPythonに対してライブラリをインストールする必要があります。 そこで前…

Blenderでバッチファイルを実行してBlenderのインストールパスをエクスプローラーで開く

本日はBlender枠です。 今回は配布したアドオンで必要となる外部依存ライブラリをバッチファイルを使用してインストールするために、その前段階としてBlenderのインストールパスをバッチファイルに書き込む処理を行います。 ライブラリによってはBlenderにデ…

BlenedeIKで二つのコントローラーボーンで位置と向きを制御する

本日はBlender枠です。 〇BlenderのIK IKはInverseKinematicと呼ばれ、簡単に説明するとある場所にあるボーンがあるためには接続されている別のボーンはどのような挙動をしているかを計算するアルゴリズムです。 具体的にはキャラクターを例として、通常ボー…

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

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