PySide2 on Python2.7

久しぶりにMaya2020のスクリプトを久しぶりに書く機会があって、Python自体は特に覚えなおす必要はありませんでしたが、UI周り、PySide2のことをすっかり忘れてしまったので復習を始めました。

Mayaをいちいち起動するのはメンドクサイ、かといってWindowsのPython2.7へはPySide2は配布されていない。で思いついたのはMayaのPython環境を使ってしまおうって方法。

Visual Stuido Codeで.pyファイルを開くと、左下に使用するPythonインタープリタのバージョンが表示されます。

上の画像では「Python 3.9.6 64-bit」となっていますが、ここをクリックするとコマンドパレットが表示され「Enter Interpreter parh…」そして「 find…」と進んでファイル選択から以下にあるPythonを選択します。

C:\Program Files\Autodesk\Maya2020\bin\mayapy.exe

Maya2022はPythonのバージョンが選べるらしいので2つのmayapy.exeがあるんでしょうか?ともあれこれでPython2.7.11+ PySide2の環境になります。「import pymel.core as pm」とか実行するとMayaの機能も使う事が出来ます、UIが無いとは言えMayaを起動することになるのでインポートに時間がかかりますが。

Mayaのスタイルは適用されませんが過去作ったプログラムが無事実行できましたとさ。

代わってJavascript忘れるんやろな~。


Rail Route

延々と電車のポイントを切り替えるゲーム。ゲームか?

頭を空っぽにして駅に電車が入る度にポイントを切り替えて交通整理。ただそれだけでも面白い(疲れてるな)。自動化できるんかな?テックツリー見る限り無いような気がするけど。アーリーアクセスなので今後に期待。

Rail Route [steam.com]


AN: Repeat Ray Reflection

昨日の投稿は1次レイをぶわーっと飛ばすヤツ。今日のは一本だけ、でも繰り返し反射させるヤツ。

ANでアニメーションついてます。

反射が出来なかった場合(Ray cast hit ==False)に打ち切りたいんですけど、どうすれば…。For文で言うBreakって無いのかな?

(追記)
ありましたBreak。Loopの出力ノードのConditionが非表示の状態になっているので、これを表示し任意の条件でFalseを入力すればループ処理から抜けられました。って事で修正!スッキリ!


AN: Ray Reflection

Vector MathノードにReflectって項目があったので試してみた。入射ベクトルと法線を入力するとまさに反射ベクトルが出力されます。Blender 2.93 + AnimationNodes 2.2.2です。

反射は一回だけ…

ところでVector Mathノードには外積(Cross)はあって内積(Dot)が無い、掛け算して総和を取るだけですけど。