Mac mini M1を使い始めて、割と早い段階で気づいてはいたんですよね。
検証していなかったので、エントリーなどはしませんでしたが
このたび、system.callSystem()を使っている数種類のScriptを試して見ました。
AfterEffects Script system.callSystem()が
スティミュラスイメージ コーポレートサイト制作

https://stimulus-img.com/index.html
主にCGアニメーションの制作を行っている株式会社スティミュラスイメージの
コーポレートサイトのリニューアル制作を担当させていただきました。
といっても現状もサイト自体はあるのですが、文言と構成以外は全て構築したという感じです。
主にはデザイン(アニメーションを含む)・コーディングということですが、
制作にあたって既存のサイトデータを取得・データ変換するための
pythonツールなんかもつくったりしましたけども。
Python Script ClipStudio TS(csv) to json
ClipStudioから出力できるタイムシート状のcsvを簡便なjsonにするスクリプトを書きました。
というのも現在手伝っているとある作品が
- ClipStudioのデータを介してワークフローが構築されている
- 編集で多くのカットが変速されている
という状態だったからということに起因します。
これまでに書いたAEスクリプトでAE上からタイムシートデータを読み込んで
セルレイヤーにアサインするというものがありますが、そちらにもコネクトできるようにしました。
そもそもAEスクリプト内部でjsonやpythonの辞書型のような連想配列にしてあったので
手を入れるのは最小限ですみました。

Blender GreasePencil キーフレームをファイル出力 Python Script
ひとまずタイミングを数字として取り出すことができました。
直近で必要というわけでもなんでもないんですが
ClipStudio同様に最近アニメの描き用appとして使われていることもあるので
AEにフッテージと一緒にキーフレームデータを渡せるようにしておきたかったという感じです。
尺分フルで出してたんじゃデータが大きすぎるからキーフレームの分だけ画を出力するといった場合は、
通常のアニメ撮影同様にインハウスツールでタイムリマップに流し込んで使うこともできますしね。
Blender Macでコンソール出力を表示させる
Blenderでpythonをつかってみようかと思いたち
おきまりの”Hello World!!”で
テキストエディタからpython コードを実行しprint()で出力を確認しようにも
どこに出るのかわかりません。
Python プロジェクトフォルダ生成スクリプト
一貫したプロジェクトではなく短期で複数を並行している昨今です。
必然的にこのスクリプトを書くきっかけにもなりました。
それらも春と共にひと段落して時間もすこしできたので実行することに相成りました。
同様の機能のAEスクリプトは以前エントリーしましたが、
それじゃー汎用性が乏しいので様々なプロジェクトに応じてメインツールが異なる状況があるため
色々なソフトからディレクトリを作成可能にしたいと考えて着手しました。
とりあえず、マルチプラットフォーム/スタンドアローンのPythonスクリプトなのでC4DのPython上からも実行可能です。
Cinema4D Selected Objects to Separate OBJ
Python Script
今一度、Disguiseをプレビューに使う機会が訪れてしまいました。
前回から、普段DCCツールをつかっているとどうしても操作性が微妙だなーと思うことがあるんですが
UEやUnityに比してもさらに3D的な操作ができない印象です。
もしかしたらできるのかもしれませんが、複数オブジェクト(もちろん1スキンではありません)のobjシーンで
渡したとしても中でセパレートしたり私の知識ではできません。
そこで厄介なのがスクリーンです。これ、全部objとしてバラで読み込む必要があるようです。
UVの展開の仕方によってはそうじゃなくても良いのかもですが、そこに気をつかって設計するなんて馬鹿らしい。
基本は1:1で貼られるんですから、もーむしろ何も考えないほうが良いわけです。
Python Selenium #shadow-root(open) 解決
前回Google Chrome と chromedriverをダウングレードすることで、一時的に回避していたんですが
ある出来事を端緒に処理していきました。
まず前提として環境に大きな問題がありました。
Continue Reading >>Python Selenium with Chromedriver shadow-root
なんか突然スクレイピングに使っていたスクリプトがエラーになったんですよね。
しかも、全てダメになったならわかりやすいんですが一部なんです。
それは
#shdow-root(open)
のスクリプトを叩いているものだけなんです。
Continue Reading >>AfterEffects Script Auto PixelColor Picker update
include Bounding Layers
updateを意図して何かしていたわけではないのですが
!となることがあり試してみたらできたという感じです。
最近、機械学習やディープラーニングを少しだけ試してみているのですが
マストなライブラリnumpyと、画像系教材がおおいのでPILOWを使ったりします。
そもそもすべて独学・我流でつかっていて、素地があるわけではなく
ひとたび目的を達成するとしばらくつかわなくなるので
また、おさらいというには言い過ぎな状態から使用再開するかたちになっています。
で、そんなかんじで進めている時に、ふとPILLOWとnumpyで画像を評価するという
演習をしてみたところ結果がでるのが超早い。
あれ?っと思い以前AE用につくったコードと比較してみたところ
同じように縦横を順に評価しているが使用している関数が違う。
これを以前書いたコードにも実装してみたらどうなるだろうってことでやってみたわけです。
んで、結果は俄然早いです。同じ連番データを使った場合で比較するなら10倍以上。
画像サイズは同じでデュレーションが4倍・動きも多いデータでも時間比較で3倍早いですからね。驚きました。
どうも、キャッシュの使い方の違いのようですがこれほど違うとは、、、って感じです。
以下、キャプチャ動画と新旧バージョンの比較と新バージョンのサンプルデータです。
UNREAL ENGINE import from MIXAMO with
Cinema4D Python MixamoRig Renamer to UE
そのままモデル・アニメーション共に使うのであれば特殊なことはありませんでした。
その後の使い方次第で色々とやり方は違ってくると思いますが
必要に応じた情報は公式、有志によるweb、有償・無償のチュートリアルにありますから
探すのは大変だと思いますが問題はないでしょう。

Cinema4D Python generator
Pickover Attractor(Chaos map)
前々回エントリーのポリゴンオブジェクトのCOFFEEと一緒にカオスマップもいくつあったので
Pythonで最適化してみました。オリジナルのコードではパーティクルではなくスフィアを配置する
仕様になっていましたが、全体をスプラインオプジェクトとし
ポイントからX-Particlesでエミッションして造形してみました。
もしオリジナルのコード同様にスフィアを配置したければClonerを使えば良いですし
何かとコントローラブルで多様な表現が可能な仕様でPythonジェネレータとして作成しました。
本当は基本機能のみの利用でXPresso&Thinking Particlesを使い造形しようとしたのですが
量の問題か、使い慣れていないせいからかベリービジーでどうにもなりませんでした。
なんかR22だかR23でパーティクルが強化されたようなアナウンスがあった気がしたのですが、、、、