2021 やること

アニメを作る

自分の技術的興味と好みを満たせるものが何かと考えたときに 3DCG アニメがそれだと気づきました。 昔から完成作品を作ることよりもアセットパイプラインを整えることにのめり込みがちなのですが、本質に集中していきたいです。

ツールをいくつかリリースする

2020 年末は しわラボ を作っていました。 実用に供するにはまだ先が長いので引き続きがんばります。 3D のパイプライン整備、モデル・ポーズデータの作成、web フロントエンド開発とタスクが幅広いのでおもしろいです。 また、他にもアイデアだけ温まっている制作ツールがたくさんあるのでその中から一つ実装したいと思っています。

しかし、個人制作かつ中途半端な状態から公開していくような作り方をする場合、リリースって何なんでしょうね。

シェーダー芸に入門する

ピクセルシェーダーはある種の絵を描くための画材として非常に優れています。 そのスイートスポットを自分の絵に取り込みたいです。 最近 shadertoy をみてすごいやつを真似ています。

普段お世話になっている OSS を読む

何かをイチから作るのはおもしろいですが、そればかりだと自分のわかっている範囲のコードしか書かず技術的な向上が少ないので既存のすばらしいソフトウェアスタックに学びたいです。

ネタ帳:

量子情報を学ぶ

SF の面白さは現実世界の見方が変わる点にあると思っていますが、そもそも世界のありかたを古典物理の範囲でしか理解できていない(いや、古典物理すらわからない……)現状では楽しめる範囲が限られているように感じました。 古典計算機プログラマーがいらなくなった場合に量子計算機プログラマーに転身できるようになるという打算も込みで、世界の解像度を上げるために量子情報と関連する分野を芋づる式に勉強します。

【Blender】 いらないシェイプキーをまとめて削除する

使わないシェイプキー(Maya, Unity で言うブレンドシェイプ)が大量にあってファイルサイズが無駄に肥大化している場合、Python スクリプトで一括削除すると便利です。

シェイプキーが大量にある例
いらないシェイプキーが大量にある……

シェイプキーが設定されているメッシュが m_avg オブジェクトにあり、Basis シェイプキー以外を削除したい場合は以下のようなスクリプトを実行します。

f:id:arcturu:20201228184532p:plain
m_avg オブジェクト内のメッシュのシェイプキーを消したい

import bpy

# 消したいシェイプキーが存在するメッシュのオブジェクト名
target_name = "m_avg"

# 当該オブジェクトを選択する
bpy.data.objects[target_name].select_set(True)

# シェイプキーのリストを取得する
shape_keys = bpy.data.objects[target_name].data.shape_keys.key_blocks

# シェイプキーのリストを逆順に舐める
# (先頭から消すとインデックスがずれるので後ろから消す)
for i, shape_key in reversed(list(enumerate(shape_keys))):
    # 消したくないシェイプキーは除外する
    if shape_key.name != "Basis":
        # シェイプキーを選択して、削除
        bpy.context.active_object.active_shape_key_index = i
        bpy.ops.object.shape_key_remove()

参考

tangent がないモデルに法線マップを貼る

キーポイント

tangent space 法線マップを貼る際には、法線マップを作ったときの接空間を頂点ごとに復元する必要があります。一般には DCC ツールからのエクスポート時やゲームエンジンへのインポート時に tangent を計算してモデルの頂点属性に tangent を追加することが多いですが、頂点属性に tangent を入れずにフラグメントシェーダーで tangent を動的に計算することで接空間を復元することもできます。

tangent 再計算のためのキーとなるのが GLSL の dFdx() / dFdy() 関数(HLSL では ddx() / ddy() 関数)です。tangent を計算するには UV 座標とピクセルの位置座標の偏微分が必要ですが、dFdx() / dFdy() を使えばそれが求められます。(ただし、この関数で計算できるのはスクリーン座標系での偏微分なので適宜座標系を変換する必要があります。)

詳細

VFX of 2020.04

ツイッターで見たかっこいいエフェクト / 3DCG のまとめ 2020.04

 

 

VFX of 2020.03

ツイッターで見たかっこいいエフェクト / 3DCG のまとめ 2020.03

 Mitsuba 2 のソースコード公開

 汎用的なアイデアな気がする

 汎用的なアイデアな気がする(2)

VFX of 2020.02

ツイッターで見たかっこいいエフェクト / 3DCG のまとめ 2020.02

解説:Create nice and feasible volumetric cloud in Unreal Engine 4 | Asher.GG