SRXDのMIDIホイール感度を上限を超えて設定するMODを作りました
依然としてSpin Rhythm XD(SRXD)にハマっている私ですが、ついにDJコントローラまで買ってしまいました。 CASIOのXW-DJ1というやつで、大きめのお皿をシュピンシュピンできます。お皿の抵抗が比較的小さいため、スピン後もその慣性が残りやすく、より一層”プレイ”している感覚が得られます。 しかしながらもう製造停止しているんです😭
続きを読むStreamFX(OBS)でCDスピンのように、ソースをクルクル回す
Discord等のカメラにもOBSのシーンを映すことができると分かってから色々と遊んでおります。さて、今回は上の画像のようにひたすらソースが回転しつづけるアニメーションをStreamFXとMove Transitionを使って実現してみます。どちらのプラグインもOBSにインストールされていることを前提に説明していきます。なお、使用したStreamFXのバージョンは現時点で最新のStreamFX 0.12.0 Beta 299
ですが、他のバージョンでもさほど変わらないと思います。
ctypesで定義した構造体の配列を初期化する
PythonからWin32API
を直接叩きたい機会があったのですが、PyWin32
に使いたかったRAWINPUT
周りの構造体や関数が用意されていなかったため、ctypes
から使用することにしました。当然Cの引数や返り値をラップする必要がでてくるわけですが、見かけた構造体の配列の初期化の構文で一瞬むむ??っとなったのでメモです。
ctypesのリファレンスの例を借りると、構造体の配列は
from ctypes import * class POINT(Structure): _fields_ = ("x", c_int), ("y", c_int) TwoPointsArrayType = POINT * 2 array = TwoPointsArrayType(POINT(1,2),POINT(3,4))
という風に書けるわけですね。ただ、任意の数のPOINT配列を作りたいなぁというときに、わざわざ配列タイプをtypedef
するのも面倒なので一行で書きたくなるわけです。
そうするとこうなります。
# 10個のPOINTを含むリスト p_list = [] for i in range(10): p_list.append(POINT(i,i)) # ctypeで使う配列 array = (POINT*len(p_list))(*(p for p in p_list))
一瞬C言語のポインタ表現かと見間違えました笑。リストを*
で展開して初期化の引数に渡してあげているんですね。慣れればなんてことないですが、初めて見るとなんだこれとなったのでメモでした!
PyInstallerで詳細タブのプロパティを指定する(pyinstaller-versionfile)
pyinstaller-versionfile
を使ってexeファイルの詳細情報を簡単に管理できるようにしようというお話です。
PySide6(Qt6)の覚書
- 外観
- テーマの設定
- ダークテーマ(標準)
- ダークテーマ(qdarktheme)
- QToolTipが見えづらい
- QSSを別ファイルにまとめる
- QSSセレクタで特定のQWidgetを選ぶ
- Font family
- スレッディング
- QThreadの理解につながる記事
- 動作が保証されないQPixmapまわり
- QAbstractTableModel dataメソッドのロール
- フレームレスウィンドウのDrag&Drop移動
- PySideで動かしているQtバージョンの確認
この間Qtを初めてちゃんと触ったんですが、その際に学んだTips等をまとめておきます。なお、今回はQMLではなくQtWidgetを対象としています。
続きを読む