夜風のMixedReality

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

2024-03-01から1ヶ月間の記事一覧

レイトレーシングについて歴史を交えまとめる。 その①概要

本日はShader枠(どちらかというと)です。 本日は論文などを読みながらレイトレーシングについての理解を深めながら書置きの記事になります。 〇レイトレーシングとは? レイトレーシングはコンピュータグラフィックスのレンダリング技術の一つで、非常にリア…

Blenderでスラスターエフェクトを実装する

本日はBlender枠です。 筆者の個人的プロジェクトの中でオリジナルのガンダムアニメを作成するというのがありますが、今回はスラスターエフェクトを実装します。 今回は筆者がファンアートとして作成しているオリジナルの機体を使用します。 スラスターとは…

Pythonで現在のプロジェクトにあるライブラリがインストールされているかどうかを調べるPythonコード

本日はPython枠です。 現在少しづつblenderアドオンを開発していますが、外部ライブラリの扱いで難航しており、ソースコードを含め配付する形を検討しています。 対象のライブラリをバインドすることはできましたが、配付されているライブラリの依存関係も同…

Pythonで指定したパスに存在するファイルを一覧で返す

本日はPython枠です。 Pythonにかかわらず、プログラミングで他のディレクトリを参照する場合はパスのタイポなどにより正しくパスが参照できていないことがあります。 今回は指定したパスに存在するファイルを一覧でコンソールに返す簡単な実装を行います。 …

Blenderアドオン用に外部ライブラリをバンドルする

本日はBlender Python枠です。 BlenderではPythonを使用することでアドオンを作成し、機能を拡張することができます。 またアドオンは配布することも可能です。 配付する際に問題となるのが、外部ライブラリを使用している場合です。 ローカル環境ではpipコ…

Blenderでオブジェクトコンストレイントを使用してオブジェクトに追従する実装を行う

本日はBlender枠です。 Blenderでは非常に多くの機能がありますが、今回はその中でコンストレイントを使用して他のオブジェクトに追従する方法を見ていきます。 〇コンストレイントとは? コンストレイント(constraint)は制限問う意味です。 これはオブジェ…

Blenderのマテリアルでライトが当たっている部分を検出する

本日はBlender枠です。 Blenderのマテリアルでライトが当たっている部分を検出していきます。 〇ライトが当たっている部分を検出する実装 現在のBlender(4.x)ではライトが当たっている部分を検出するノードは存在しません。 しかしいくつかのテクニックを使…

Blendeでリムライトを実装する

本日はBlender枠です。 Blenderでリムライトを実装していきます。 〇リムライトとは? リムライトはあるオブジェクトに対してカメラ方向の背部から光が当たっている場合にオブジェクトのリム(淵)に光があふれる現象をさします。 例えば宇宙空間で撮影され…

MuseScore4で自作のプラグインを実行する

本日は普段と少し種子が異なりますが、Musescoreで自作のプラグインを実行してみます。 〇Musescoreとは? Musescoreは無料で使用できる作譜ソフトウェアです。 GitHubに最新のものを含めたソースコードが公開されており、実際のコードを確認することができ…

Blender公式のアドオン公開共有サイト Blender Extensions Platform を試す

本日はBlender枠です。 先日Blender Foundation(公式)はBlender Extensions Platformを公開しました。 これはBlender公式のアドオン公開共有サイトになりますが、現時点ではα版となっています。 今回はこちらを触っていきます。 〇既存のアドオン共有の方法 …

ゼロから始めるUnityShader開発 第五章 オブジェクトを回転させるシェーダー2 回転軸を変更する

本日はシェーダー枠です。 以前回転するシェーダーを書きました。 redhologerbera.hatenablog.com このシェーダーでは回転行列を使用して頂点シェーダー内でオブジェクトを構成する頂点を回転させました。 今回はこの回転軸を任意に変更可能にしていきます。…

Blenderでオブジェクトの座標で変化するマテリアルを作成する

本日はBlender枠です。 オブジェクトの座標基準で色などが変わるマテリアルを作成します。 Unityで以前ワールド座標の情報を使用したシェーダーを実装しました。 redhologerbera.hatenablog.com このような表現をBlenderのマテリアルでも行っていきます。 〇…

Blenderでマテリアルのパラメータにキーフレームアニメーションをつける

本日はBlender枠です。 Blenderではキーフレームを使用することでタイムライン上にアニメーションを登録することができます。 redhologerbera.hatenablog.com redhologerbera.hatenablog.com 今回はオブジェクトではなく、オブジェクトの持つパラメータとし…

ゼロから始めるUnityShader開発 第九章 シアリング行列

本日はCGを理解するにあたって重要な概念である行列についての勉強です。 コンピュータ内では多くのデータをテンソルであらわします。 テンソルとは、多次元配列を意味し、例えば画像データを見てみると、RGBAの四次元であらわされる色チャンネルの集まり(…

Blender Pythonで指定したオブジェクトを指定した座標に配置する

本日はBlender Python枠です。 本日はオブジェクト生成系のアドオンなどでよくみられるあるオブジェクトをある座標に配置(生成)することをPythonを使用して行っていきます。 〇オブジェクトを生成する UnityのC#などではInstanciate()などを使用して生成し…

USDZの規格について調べる

本日は3DCGのフォーマットについての記事になります。 3Dモデルのファイル拡張子のフォーマットには様々なものがありますが、多種ソフトウェア間で標準的に互換を持ってインポート、エクスポートができるものとしては,fbxや,obj、.glbなどがあります、 今回…

BlenderでPythonスクリプトでNゴンを検知する

本日はBlender Python枠です。 〇Nゴンとは? Nゴンはメッシュの形状を表す概念です。 通常ポリゴンモデルは3つの頂点から構成される面によって構成されます。 3つの頂点の場合はポリゴンと呼ばれますが、Blenderを含む一部のアプリケーションについては3つ…

Blender用のGIFメーカーアドオンを完成させる

本日はBlender枠です。 redhologerbera.hatenablog.com 以前作成したGIFメーカーのツールをアドオンとして登録できるようににします。 redhologerbera.hatenablog.com 〇アドオンとして登録できるようにする BlenderではScriptエディタを使用することでPytho…

行列を理解する その② 行列の回転 回転行列

本日は昨日に引き続きCGを理解するにあたって重要な概念である行列についての勉強です。 コンピュータ内では多くのデータをテンソルであらわします。 テンソルとは、多次元配列を意味し、例えば画像データを見てみると、RGBAの四次元であらわされる色チャン…

行列を理解する その①  ベクトル、行列、テンソルの違い 行列の加算

本日はいつもと趣旨を変えて数学についての記事です。 3Dグラフィックスでは、座標変換の処理で行列が一般的に使用されます。 今まで回転行列、平行移動行列、スケーリング行列についてみていきました。 しかしながら筆者自身が行列についての基礎を完全に…

ゼロから始めるUnityShader開発 第九章 スケーリング行列

本日はシェーダー枠です。 前回は平行移動行列を見ていきました。 平行移動行列は座標変換において使用される行列で、イメージとしてはワールド座標系に位置するあるオブジェクトの子オブジェクトを移動させる際などに使用される行列です。 3Dグラフィック…

ゼロから始めるUnityShader開発 第九章 平行移動行列

今回はシェーダー枠です。 前回は回転行列についてみていきました。 redhologerbera.hatenablog.com 回転行列は座標返還で使用されます。 3DCGの世界ではローカル座標、多くの物体に対してトランスフォームというプロパティが存在します。 ワールド座標とは…

ゼロから始めるUnityShader開発 第九章  座標変換と回転行列

本日はShader枠です。 昨日はUnityのシェーダーで頂点シェーダーをしようして回転を行うアニメーションを実装しました。 redhologerbera.hatenablog.com シェーダーで回転を行うことはCPUで実行されるスクリプトのUpdate関数を使用しないため比較的軽量とい…

ゼロから始めるUnityShader開発 第五章 オブジェクトを回転させるシェーダー

本日はShader学習枠です。 今回は頂点シェーダーを利用してオブジェクトを回転させます。 頂点シェーダーステージでは3Dデータから頂点をスクリーン座標に直した計算が行われています。 つまり座標変換に際してバイアスをかけることでメッシュの形状を変え…

Unityでリアルな宝石をつくる

本日は木曜日のため熊本のコミュニティKumaMCNの毎週木曜ハッカソンです。 今回はリアルな宝石をテーマにBlenderやSubstance Painterなどを使用していろいろ作ってみます。 〇Blenderで基本形状のモデリングを行う 今回はテーマだけ決めてのチャレンジのため…

XR用の点字入力を作る その② iPhoneのアクセシビリティと点字入力

本日はアクセシビリティ枠です。 前回は筆者が構想しているXRでの点字利用の有用性についてまとめました。 redhologerbera.hatenablog.com 今回は、まず点字を理解する方法について学んでいきたいと思います。 〇iPhoneで点字入力を行う iPhoneではデフォル…

XR用の点字入力を作る その① 点字とXR

本日はアクセシビリティ枠です。 以前より筆者が構想していたプロジェクトを実現するために書き残していきます。 〇点字 筆者は以前指文字をテーマとしたHoloLensアプリを開発しました。 redhologerbera.hatenablog.com 指文字とは主に音を使用したコミュニ…

Blenderでテクスチャをモデルファイルに埋め込んでエクスポートする

本日はBlender枠です。 今回はBlenderでモデルをエクスポートする際にテクスチャを埋め込んでエクスポートしていきます。 通常BlenderからエクスポートしたモデルをUnityなどで使用する場合は別途テクスチャをインポートして、マテリアルに紐づけモデルに適…

3DCGがどのように描画されるのか? 3DCGの種類とデータの扱い

本日はモデリング枠です。 筆者自身の基礎理解もかねて今回は3DCGの根本部について触れていきます。 〇3DCGの種類 3DCGはコンピュータによって再現される3次元データによって構成されるオブジェクトを指します。 様々な種類がありますが代表的なものとし…

WindowsでPC起動時にバックグラウンドで実行されるアプリケーションを確認、管理する

本日はWindows枠です。 WindowsPCでは起動時にユーザーが実行を行わなくても自動的に実行されるアプリケーションがあります。 これらの中にはウィルス対策ソフトなど常にPC起動時に実行されていなければいけないアプリやなどもありますが、場合によっては起…