夜風のMixedReality

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

Python

BlenderPythonで現在のオブジェクト数、非表示になっているオブジェクト数をコンソールに出力する

本日はBlenderPython枠です。 〇環境 ・Blender4.1 ・Windows11PC 〇現在のシーンにあるオブジェクト数を取得する 現在のコードを取得するには次のコードを使用します。 import bpy # 全てのオブジェクト数を取得 total_objects = len(bpy.data.objects) pri…

ヒッパルコス星表とBlenderでの使用方法 その②BlenderPythonでCSVファイルを読み込む

本日はPython枠です。 前回に引き続きヒッパルコス星表をBlenderで使用します。 前回はヒッパルコス星表についてみていきました。 redhologerbera.hatenablog.com 今回はBlenderでこのデータを使用するためにCSVファイルを読み込んでいきます。 〇環境 ・Win…

SubstancePainterでPythonコードを実行する

本日はSubstance枠です。 SubstancePainterはBlender同様にPythonコードを実行して自身のプラグインを作成することができます。 今回はどのようにPythonAPIが提供されておりどのように実行するのかについて軽く見ていきます。 〇環境 ・Windows 11PC ・Subst…

Blender Pythonであるオブジェクトに対して別のオブジェクトの向きを向ける

本日はBlender枠です。 今回はBlender Pythonを使用してあるオブジェクトの向きをもう一つのオブジェクトに向ける実装を行っていきます。 〇環境 ・Windows11 ・Blender 4.1 〇最初に選択したオブジェクトに2つ目に選択したオブジェクトを向ける 今回は次の…

Blender Pyhonで選択中の複数オブジェクトを順に取得する

本日はBlender Python枠です。 BlenderではオブジェクトモードでShiftキーを押しながらオブジェクトを選択すること複数のオブジェクトを選択することができます。 結合(Ctrlキー+Jキー)やウェイトペイントの転写など一部の機能は最後に選択したオブジェクト…

BlenderPythonを使用して実行中のPCのスペックを取得する

本日はBlenderPython枠です。 前回Pythonを使用してCPUやOSの情報を取得しました。 redhologerbera.hatenablog.com しかしながらPythonでは通常psutilやGPUtilなどのライブラリをしようしない場合GPUなどの情報にアクセスすることはハードルが高いです。 と…

Blender Pythonで使用しているPCのシステム情報をログとして出力する

本日はPython枠です。 今年度より筆者は教育機関で教員としてのキャリアを積み始めたのですが、IT系の指導においてトラブルはつきものです。 そのトラブル時に使用しているPCのスペックが非常に重要な情報になります。 今回は学生さんにトラブル時にPythonコ…

BlenderPythonでメッシュをフォーマットを指定してエクスポートする

本日はBlender Python枠です。 BlenderではワールドメニューからGUIを使用してオブジェクトを他ツールで使用できるフォーマットでエクスポートすることができます。 今回はGLFT,OBJ,USDZの拡張子について、それぞれPythonスクリプトでのエクスポート方法を見…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pythonを使用して任意のテキストからQRコードを作成する

本日はPython枠です。 BlenderでPythonになれてきたため、今回はQRコードを作成する実装を行います。 〇QRコードについて QRコードは今では電子決済を含め日常生活の中で多く使用されていますが、もとはデンソーウェーブ社が開発した情報表示形式とその読み…

コマンドラインから引数を指定して実行可能なPythonを書く

本日はPython枠です。 GUIを使わない自作のPythonコードはエディタ上で実行するほかコマンドラインを使用して実行することが一般的です。 python 〇〇.py この場合変数を変えたい場合にエディタで開いて内部の変数を直接いじる必要があるなど扱ううえで問題…

BlenderPythonで行列を使用して頂点座標を計算してオブジェクトを回転させる

本日はBlender Python枠です。 今回はグラフィックの勉強の一環として行列を使用してオブジェクトを回転させます。 〇3DCGの頂点と行列 3DCGは3D空間(XYZ座標)に配置された頂点とそれを結ぶ辺によって構成されるメッシュ(面)で構成されています。 頂点はX…

BlenderでPythonを使用してマテリアルスロットごとにペイントマスクを設定する

本日はBlenderPython枠です。 今回は頂点ペイントモードでのユーティリティを改善するためのちょっとしたツールを作ります。(prototype) 〇ペイントマスク 頂点ペイントモードでは頂点カラーを設定することができますが、Blender3.xではctrlキー+Kキー、Bl…

BlenderでPythonを使用して頂点カラーを設定する

本日はBlenderPython枠です。 今回はPythonで頂点カラーを設定していきます。 〇頂点カラーとは? 3Dモデルは頂点とそれをつなぐ辺によって構成される面(メッシュ)で構成されています。 基本的に座標や法線、UVなどの各情報は頂点が持っています。 頂点カ…

BlenderでGIF書き出しプラグインを作る その⑥ 動画編集機能としてのGIFエクスポートの対応

本日はBlender及びPython枠です。 前回まででBlenderでGIFのレンダリングプラグインを作成しました。 redhologerbera.hatenablog.com もともと作成の動機としてはGIF画像を作成する際によいソフトウェアが見つからなかったため自作していました。今回は仕上…

Pythonを使用して音源ファイルのシーケンスを行う

本日はPython枠です。 今回は音源ファイルのシーケンスファイルを作成していきます。 もともとのきっかけは私の師であるがちもとさんが動画のシーケンスのやり方を紹介していたため、音源ファイルだとどうなるのかと思ってチャレンジします。 qiita.com 〇環…

MayaでHumanIKを使用する

本日はMaya枠です。 以前よりBlenderではIKを用いたアニメーションなど実装をしていたのですがMayaでは試せていなかったため今回はMayaでのIKについてまとめていきます。 redhologerbera.hatenablog.com redhologerbera.hatenablog.com redhologerbera.haten…

MayaのPythonで外部ライブラリを使用する

本日はMaya、Python枠です。 先日Blenderで仮想環境を立て外部ライブラリを使用しました。 redhologerbera.hatenablog.com 今回はMayaでも同様に外部ライブラリを使用していきます。 Mayaの場合は公式ページでドキュメントを見つけることができたのでこれを…

BlenderでPython仮想環境を立て外部ライブラリを使用する

本日はBlender枠です。 BlenderはどちらもPythonを使用したスクリプトを実行できますが、Pythonの開発では異なるバージョンのPythonやライブラリを使用することや、モジュールの更新などの容易さにより同じマシーン内に異なる環境を構築する仮想環境を使用す…

BlenderでGIF書き出しプラグインを作る その④ GIFの生成設定

本日はPython枠です。 先日BlenderでGIFの作成に関して行いました。 今回はGIFの生成設定を実装していきます。 〇GIFフォーマットの設定 GIF(Graphics Interchange Format)は簡易アニメーションを実現できる動く画像です。 GIF画像はフレーム処理時間、ルー…

BlenderでGIF書き出しプラグインを作る その③ 仕上げ

本日はBlender Python枠です。 昨日GIF書き出しを作ったのでUI等を仕上げていきます。 redhologerbera.hatenablog.com 〇現状のコード 現状のコード #アドオンの定義 bl_info = { "name": "GIFMaker", "blender": (3, 5, 0), "category": "Object", } import…

BlenderでGIF書き出しプラグインを作る その② GIF画像の作成

本日はBlender及びPython枠です。 昨日Blenderでレンダリングのシーケンス画像を作成する処理を記述しました。 redhologerbera.hatenablog.com 本日はこちらをもとにGIF画像を作成する処理を組み合わせていきます。 〇GIF画像の生成 GIF画像の生成自体は昨日…

BlenderでGIF書き出しプラグインを作成する その① シーケンス画像のレンダリング

本日はBlender Python枠です。 ここのところ3DCGやPython関連が続きHoloやUnityに触れることがなかなかできていないですが、本日もPython系です。 先日Pythonを使用してGIF作成を行いました。 redhologerbera.hatenablog.com こちらでは任意のパスからシーケ…