ユーティリティ GhostScriptとPythonでPDFを単純圧縮

PDFに接する機会が日常的にあります。コンテや設定資料などをPDFで受け取ったり
請求書をPDFで送信したりと日常的に使います。

今回はChromeでページプリントアウトをPDFとして保存する際に
おそろしく重い場合があるのでそれを単純に圧縮するというのを
GhostScriptとPythonでやってみました。

実寸A4以下の領収証を出力した時に18MBとかになるとどんだけハイクオリティなんだよ
と思うことがしばしばありました。exrなのかと思うほどの重さです。
それも画像なしテキストとパスのみでそれっておかしすぎる。
以前は手作業で保存しなおしたりしてたんですが、それなりの数があるとめんどくせー。
しかもイヤイヤやるから名前の粒もそろわねー。
てことで、後学のためにスクリプトでも書いてみようってかんじです。

楽をするための努力なら、まずまずできるタイプです。先々を見越して打算的に努力できます。

Continue Reading >>

Blender Python Script Grease Pencil to Data
(Convert to TimeRemap Data for AE)

まず最初に
このGreasePencilってレンダリングに関してeeveeにしろCyclesにしろ重いなー
こんな状態なら必要分だけ書き出した方がいいなー
と思っていたところからこの試みは始まったわけですが、、、
この問題はそもそもビューポートレンダラーを使用すれば解決するというオチでした。

※海外フォーラムでその記事を読んだ際には
えーー!!!?
と思ったのと同時に
いや、そらそうか!
とも思う爽快な納得感が春風のように吹き抜けました。

しかし、ともあれBlender上のキーフレームデータを
AEに渡すことができるというのはアニメーションのタイミング調整をする必要が発生した時などに、
まずまず有益だろうとおもうので一応自分で納得できるところまで進めてみました。

つまり、ClipStudioタイプのタイムシートcsvです。

Blender→AEで動作確認
Continue Reading >>

JangaFX LiquiGen リアルタイムで水のエフェクトをつくる

ポメロ越田くんから水の処理に関してご相談いただき、以前からお互いに注目していた
JangaFX LiquiGenでも使ってみっかっていう流れになりました。
当然、明日、明後日、、、遅くとも今週中にアガリをくれという作業ではなく
急ぎでもないのでR&D絡めてニューツールの可能性をはかるためにイッチョやってみよーという取り組みです。

個人的にも以前使ったEmberGenのリアルタイムの威力が凄まじかったため、
そのうち使ってみたいとは思っていました。
そして、ライセンスを取るなら少々高くてもLiquiGenを含むSuiteだなとも。
結局BlackFridayセールでは見送ったので購入はしていませんが。

さて、このLiquiGen、現在アルファ版の状態で無償・制限なしで使えるのはTrialの2週間のみのようです。

水をLiquiGen、それを貯めているレンガの池をC4D、草庭含め奥を画像生成AIのFireflyでそれぞれ作成
ポメロの案件を前提としているのでアニメ美術調のルックコンセプトでコンポジット

 

Continue Reading >>


水星の魔女 打ち上げ

最終話に関わらせてもらってから1年以上が経過していましたが
スポット参戦にも関わらずご丁寧にお招きいただきましたので
一応、カラーのついた服を着用し伺ってきました。

すっかり立派になられたプロデューサーと15年ちかい旧交を温めたり
作品期間中お世話になった担当スタジオのプロデューサー、CGデスクの方々と当時を振り返ったり
常日頃から世話になっている20年来の付き合いのポメロ越田くんと
普段とかわらない雑談や、現状の作業の話をしたりして帰ってきました。

素晴らしい作品に微力ながらも携われて本当によかったです。

Continue Reading >>

Blender Python 開発中セレクトダイアログを使う時はPySide

セレクトダイアログのシンプルなAPIが当然あるとおもって取り掛かったんですが、、、、

ネットで情報をあたりつつ確認のため公式Python APIをみてみるも恐ろしくごちゃごちゃしておる。
本格的にBlenderとマッチしたUIをつくるようなプロダクションレベルに仕上げる時は
そうしたいという意向もなくはないが、
開発段階でサクッとカジュアルに保存先としてディレクトリを指定したいぐらいの場合は
ちょっとしたことなのでその必要は全くないのです。
ということで、そこはショートカットしたいのでtkとかPySideとかダイアログが用意されている
既存のものをつかえないのだろうか。

Continue Reading >>

Blender GeometryNodes考 その1

これが無料なのか、、、おそろしい、、、
以前にもさらりとチュートリアルをしたことがありますがあらためて触っています。

ノードベースのプログラミングとしてはC4DのXpressoも一緒ですし
雰囲気的にはMographをXPressoで組み上げる感じなので違和感はありません。

ただ、ちょっと気になっていることもあります。
XPressoでもシンプルなノードのみで何かしようとすると
ひどく煩雑でごちゃつくことが多くあります。
それはシンプルな値の計算や条件分岐みたいなことです。

Continue Reading >>

AfterEffects Extension(CEP) TimeLine Launcher(React)
プロジェクト難読化スクリプト1Gを追加

何かしらExtendscriptではなくjsの追加ライブラリで作った値やオブジェクトを渡すようなことをしてみたいと
おもったのですが、パッと簡単なものが思いつきませんでした。
基本的にExtendscript側では簡単なことしかしないようにしたいですし
そうなると限られてくるよなー、便利なモノ、、、思いつかんなーと悩んでました。

ということで、久々の意地悪系スクリプトです。
まーほぼ使うことはない意地悪系スクリプトですが
これまでにはエクスプレッションを含むトランスフォーム、パラメータのフルベイクのようなものが代表例です。
ちなみにこれは尺にもよりますがaep自体が1GBを超え、起動するのに1時間以上かかるようなものになったりします。

さて新たにつくった意地悪系スクリプトはプロジェクトの難読化スクリプトです。
フッテージ、レイヤー、エフェクトそれぞれの名前を
jsに追加したライブラリから出力したハッシュ値にしてみようってことですね。
個人的にはそこまで意地悪でもないかなとは思います。
プラモデルの説明書やバイクのサービスマニュアルなども部位に割り振られたアルファベットなどと
番号の組み合わせだったりするわけで名前を持ってヒントとする、、、
名は体を表すというのが無用に親切であるというだけ。

Continue Reading >>

AfterEffects Extension(CEP) TimeLine Launcher(React)
単機能スクリプトを収束

以前のエントリーは旧来のextendscriptのローンチャをCEP(React)で単純置き換えしたわけですが
TimelineLauncherとして1ファイルだったExtendscriptを分割し、
多少の手入れは必要なもののindexになるtsで、モジュール的にimportすることで
使用可能なことがわかったのでLaunchPadの整理を兼ねて
これまでに作った単機能のスクリプトを実装しています。

その際、やはり数が増えて煩雑になることで何がなんだかわからないような状態になるのをさけるため
マウスオーバーで表示されるツールTipをつけました。これもcssだけでつけることができるのでとても楽です。
さらに、ディレイなども気軽に自由に設定できる即時性は精神衛生上もとてもよいです。
ツールTipは純正のLaunchPad使用しているときにつけたいなーおもってたんですよね。
ファイルパスの表示は別にいらなくね?とも思ってましたし 笑

Continue Reading >>

AfterEffects Extension(CEP) 開発環境考 その2
Webpack5 + React + Typescript

CEP開発にReactを導入してみました。

というのも、、、いささか古くなったので自社サイトのリニューアルを検討しています。
どうせなら、現在のphpを基調とした仕様から脱してみようと考えています。
それならばReactかなということで触り始めてみました。
導入のチュートリアルをこなし、まず思ったのが
html、css、jsという根本こそ同じだけれど書き方とか考え方とかは結構別物ってかんじです。
率直な感想はモダン。

いきなりこのReactを用いて本番でサイトのリニューアルに手をつけると、
すぐに再リニューアルが必要になるようなモノになるか
最悪は途中で諦めてReactの導入を断念、元に戻るになりそうだなと感じたので
すこし肩慣らしをしようということで、SPAでのUIを作成するアイティアが浮かびやすい
CEPをいくつか作ることでテストパイロットとしてみようと思います

Continue Reading >>

AfterEffects Script OutputPath Property Short-Hand

AEのレンダリング設定に関しては、最初からずっと引っかかるところがあるわけですが
実際のところは、気軽に使えると便利なカスタムプリセット用のプロパティが用意されているので
これを再利用してみようかなーと思い立ちました。

カスタムプリセットを作るのもいいですが、正直増えると煩雑でわけわからんくなるし
かといって、ファイル名を手打ちすると日付など一部フレキブルじゃなくなるプロパティもある。
というのが発端です。なお手打ちはミスの多い筆者はぜひ避けたい指定方法です。

ということでスクリプト使ってプリセット用プロパティのショートハンドを利用することにしてみました。
CLI(コマンドライン)のオプションみたいな感じで理想は1文字ですが
そうでなくても意味付けを損なわず極力少なくというのが目標です。

Continue Reading >>

FBX SDK Python FBX Version Convert Script

あー、こーゆーのもあんのね。
というのがFBX SDKの記事を目にした時の第一印象でした。
C4D、Blenderを主に使用しているのでそんなのどうつかうん?という感じです。
Mayaを使っていた頃にはなんとなく存在自体は知っていた気がしますが
それで何ができるかとかはしらず、さらにいえば自分には縁のないモノであろうということで
忘れ去っていました。

では今回なぜ使うことになったかと言いますと、ポメロ越田くんから
Blender→3dsMaxへのデータコンバートでうまくいかないシーンデータがある
との相談をいただいたからなのですが、、、
その際はもちろん可及的速やかに確実な検証込みのデータ渡しが必要ですので
そー言った場合の前提として、立ってるモノは親でもつかえの精神で最短・確実を目指します。

Blender→(fbx)→Cinema4D→(fbx)→3ds Max

という解を検証の結果導きだせました。
これはまさに最短でかつ確実性を重視した手持ちツールつかうパターンです。
早速、4シーンをコンバート・確認しデータを提供させていただきました。

Continue Reading >>

備忘録 Keka cli

ファイルを圧縮する際は7zを使用しています。なぜかというとMacでもrarを使用できないかと
以前Mac版のWinrarを試し、見た目のうえでは圧縮こそできるものの
正常に展開できないという一番厄介な状態になり諦めました。
ということで、高圧縮でかつWindowsを含めて展開に困らないということでの選択です。

Continue Reading >>