夜風のMixedReality

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

ゼロから始める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起動時に実行されていなければいけないアプリやなどもありますが、場合によっては起…

Nasaの公開データから太陽の位置を使用してBlenderで宇宙を創る

本日は昨日に引き続きBlender枠です。 昨日はNASAのHorizon Systemを使用して地球を中心とした月の極座標データを取得してBlenderで再現しました。 redhologerbera.hatenablog.com 地球から見た月の正確な位置のため例えば、月の満ち欠けなどが再現できるは…

Nasaの公開データから月と地球の位置関係をBlenderで再現する

本日はBlender枠です。 先日Nasaの公開データであるHorizon Systemを利用してデータの取得を行いました。 〇Horizon Systemとは? NasaのHorizon Systemはその名の通りアメリカNasaのデータサイトです。 日付を指定して地球から月の正確な位置座標のデータを…

Mayaでリトポロジーを行う

本日はMaya枠です。 本日はMayaの標準機能を使用してリトポロジーを行います。 〇環境 ・Windows11PC ・Maya2024 〇リトポロジーとは? リトポロジー(リトポ)はトポロジーを整える作業を指します。 トポロジーとはジオメトリの中でのメッシュの並び方を指…

pythonでNode.jsを使うシンプルなコードを書く

本日はPython勉強枠です。 PythonでNode.jsを使用していきます。 筆者自身はNode.js自体は触ったことはあるのですが、自身のプログラムと合わせて使用した経験がないため今回は勉強も含めて触っていきます。 〇Node.jsとは? Node.jsはJavascriptをサーバー…

HoloLensでGoogleのリモートデスクトップを使用する

本日はHoloLens枠です。 筆者はHoloLensを日常使いしていますが最近HoloLensにキーボード、Bloothothイヤホン、マウスを接続して外部でまさしくパーソナルなPCとしてもちいています。 redhologerbera.hatenablog.com この利用法は空間を使用することができる…

Blenderでアニメーションキーフレームを登録する際にキーフレーム挿入に失敗というエラーの解消

本日はBlenderトラブルシューティング枠です。 〇環境 ・Blender 4.0 ・Windows11PC 〇発生したエラー Blenderでアニメーションをつける際に最も基本的なアプローチはキーフレームの登録です。 ポーズモードでポーズをつけIキーを押すことで現在のフレームに…

NASAの公開データから惑星の位置関係を計算する

本日は3Dモデリングのための調査枠です。 近年インターネット上で様々なデータを入手することができます。 その中でも特に価値のある公共データをオープンデータと呼ぶことがあり、シュミュレーションやAIの学習データとしても用いられています。 今回はNASA…

機械がどのように絵を描くのか? ハードウェアの仕組みとグラフィックスパイプライン

本日は3DCGの描画に関しての記事です。 筆者はグラフィックに対して強い興味があり学び実務経験もありますが、改めて基礎となる部分について自分の言葉でまとめていきます。 〇機械が絵を描く仕組み パソコンやテレビ、日常生活にあふれているデジタルディス…

fspyとBlenderで実写写真から平面を解析してカメラ位置を割り出す

本日はBlender枠です。 Blenderで合成写真を作りたい場合写真から撮影されたカメラの位置を取得する必要があります。 今回はfspyというソフトを使用して実写写真から平面を検知してBlenderでオブジェクトと重ねていきます。 〇fspyの導入 fSpyは静止画像から…

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

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

BlenderPythonで面の面積を求める

本日はBlenderPython枠です。 昨日はBlenderPythonを使用して、頂点3つから構成されるメッシュの面の方程式を求めました。 本日はここで求める面の面積を算出します。 2次元でのおさらいですが、3つの座標で構成される図形の面積を求めるには 三次元空間…

BlenderPythonで面の方程式を取得する

本日はBlenderPython枠です。 先日はBlenderで辺の方程式を求めました。 今回は頂点3つから構成される面について方程式を取得します。 〇面の方程式 面の方程式を得るためにまずはベクトル計算を行います。 今回は仮に三つの頂点を(x1,y1,z1)(x2,y2,z2)(x3,…

BlenderPythonで選択した辺の数式を計算する

本日はBlenderPython枠です。 Blenderでは3次元空間で作業しますが、多くの数式が用いられています。 一番わかりやすい例では前回行った回転行列が挙げられます。 redhologerbera.hatenablog.com 今回はシンプルな例として辺の数式を求めていきます。 〇辺…