graphics.hatenablog.com

技術系テクニカルアーティストのあれこれ

PySide ウィンドウに大量の画像を表示する


そういや PySide でスレッド周りあんまやったことないなぁ……と思ってやってみた。
お題はアセットブラウザとかでよくあるサムネ画像の一覧表示。
おおよそ悪くないとこまでいけたので、主にパフォーマンス周りについてメモっておく。

コードはこちら → py3_test/thread_pool_test.py at master · hal1932/py3_test · GitHub

  • 概要
  • Thread と ThreadPool
  • スレッド間の役割分担
  • QImage と QPixmap
  • 雑多な話題
続きを読む

Maya 用 PySide メインウィンドウの雛形。

ホリデープログラミング向けの Maya メインウィンドウの雛形を晒してみる。
ちょいちょい雑な実装もしてるけど、まぁそこはあくまで個人開発のテスト向け*1ってことで。
maya_test/maya.py at master · hal1932/maya_test · GitHub

  • ライブラリコード
    • findChildren() を使わない多重起動防止
    • UI を動的に再構築するための一番楽な実装
    • QApplication 生成ロジックの隠蔽
    • QApplication の初期化と QMainWindow の初期化を分離
  • ユーザーコードの例

*1:そもそも業務で実戦投入してるコードをこんなとこで晒すわけにはいかない。ほんとはそっちを出したいんだけど……。

続きを読む

PySide で QGraphicsView を使ってみる。

f:id:hal1932:20190811210508j:plain

ノードエディタっぽいものを試しにつくってみたので、気になったとことかをいくつかメモっておく。
maya_test/tools/node_editor at master · hal1932/maya_test · GitHub

続きを読む

GUIとレイアウトの基本

こないだ会社で軽く説明したかんじ、意外と需要がありそうだったのでまとめておく。
ツールプログラミングの第一歩。理論編。

  • 基本のクラス構造
    • EventDispatcher
    • Widget
    • Layout
    • ItemsWidget
  • 自動レイアウトの基本形
    • Stack 系
      • Row (Horizontal)
      • Column (Vertical)
    • Grid 系
      • Fixed
      • Flow
  • ScrollWidget
  • 親子間での Event Routing
続きを読む

Python のプロパティあれこれ。

PyMEL の utils.cachedProperty をみてふと思ったのでやってみたコネタ。

python/property.py at master · hal1932/python · GitHub

  • public フィールド
  • property をそのまま使う
  • fget 内で hasattr してから setattr
  • property 作成時に setattr して getattr
  • property 作成時に setattr して getattr(値キャッシュ付き)
続きを読む

テクニカルアーティストのための「5つの習慣」

GDC Vault - Technical Artist Bootcamp: Identifying Technical Art by Its Habits

あまり見かけないかんじでおもしろかったのでざっとまとめてみる。内容は、「習慣」というものからどういった性質をもつ人間がテクニカルアーティストたりうるかを考える、といったもの。

続きを読む