3DCG屋さんの活動記録

PROFILE ★★こんな人です

3DCGを活用した映像や没入体験コンテンツの制作をしています。テクノロジーの社会実装に興味があり。テクニカルディレクター。面白いこと新しいことにワクワクする気持ちに『素直』でいつづける。

ラベル Script の投稿を表示しています。 すべての投稿を表示
ラベル Script の投稿を表示しています。 すべての投稿を表示

2025年9月17日水曜日

自分専用ダッシュボードをMacで自動レイアウトする方法(AppleScript活用)


毎朝PCを立ち上げると、Gmail・Googleカレンダー・スプレッドシートなど「必ず開くページ」を手動で並べ直していませんか?

今回、AppleScript を使って、Chromeの任意ページを外部モニターに「自分専用ダッシュボード」として自動レイアウトする方法をまとめました。備忘録として残しておきます。


実現したいこと

  • Mac起動後にワンクリックで、必要なページを Chrome で開く

  • 外部モニターの解像度(例: 3440x1440)に合わせて 4分割レイアウト

  • 毎朝同じ位置に Gmail・カレンダー・スプレッドシートを配置

スクリーンショット例:

  • 左上:Googleカレンダー(週表示)

  • 右上:Googleカレンダー(日表示)

  • 左下:Gmail

  • 右下:Googleスプレッドシート


AppleScript コード例

以下を スクリプトエディタ に貼り付け、「アプリケーション形式」で保存します。Dock に置けばワンクリックで起動できます。

tell application "Google Chrome"
    -- 左上(Googleカレンダー:週表示)
    set win1 to make new window
    set URL of active tab of win1 to "https://calendar.google.com/calendar/u/0/r/week"
    set bounds of win1 to {0, 0, 1720, 720}
    
    -- 右上(Googleカレンダー:日表示)
    set win2 to make new window
    set URL of active tab of win2 to "https://calendar.google.com/calendar/u/0/r/day"
    set bounds of win2 to {1720, 0, 3440, 720}
    
    -- 右下(スプレッドシート)
    set win3 to make new window
    set URL of active tab of win3 to "https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/edit"
    set bounds of win3 to {1720, 720, 3440, 1440}
    
    -- 左下(Gmail)
    set win4 to make new window
    set URL of active tab of win4 to "https://mail.google.com/mail/u/0/#inbox"
    set bounds of win4 to {0, 720, 1720, 1440}
end tell

仕組みのポイント

  • set bounds of winX to {左, 上, 右, 下} でウィンドウの座標をピクセル指定できます。

  • 3440x1440 を半分に分けて、それぞれ 1720x720 の4領域に分割。

  • URL部分を自分の「毎朝開きたいページ」に置き換えれば、自分専用ダッシュボードが完成します。


応用

  • 2分割や3分割レイアウトも自由に設定可能。

  • Automatorショートカット.app と組み合わせれば、Mac起動時に自動起動も可能。

  • Chrome以外のアプリ(SafariやFinder)も同様に位置指定できます。


まとめ

毎朝の「ウィンドウ並べ直し作業」を AppleScript で完全自動化できました。
わずか数十行のスクリプトで、外部モニターを自分専用のダッシュボードに変えられます。

👉 ルーチンワークを減らして、自分の時間を増やしたい人におすすめです!

2022年5月24日火曜日

VisualStudioCode で  Aftereffects用スクリプト作成(その1)


 https://terriblejunkshow.com/tutorial/howtomakescript01

このさいとを参考に、ExtendScript Debuggerをインストール。

↓のアイコン参考!Adobe提供!

(個人が提供してる、名前似たやつに注意)



ーーーー
コマうち
https://answers.hateblo.jp/entry/2018/09/02/005231

----
json
https://shadeco.video/efficiency/json-to-ae1/





2022年3月29日火曜日

SpreadSheetでプログレスバー管理する


 


これ。
視覚的に進捗わかるようにしたい。

<Step1>
プログレスバーの画像を準備!
それをGoogleDriveにアップする。
共有設定を有効に。

<Step2>
画像のURLをそのままつかえるように、
スプレッドシートにScript追加。
まんまこれ使いました。(感謝です!)


<Step3>
あとは、プログレスバー表示させたいセルに数式追加。


<Step4>
画像のリンクは別シートにまとます。(下画像の通り)




以上!


2020年4月23日木曜日

2019年6月4日火曜日

TD memo


Python  scriptでパラメータ変更


TextDAT でシンプルに処理したい。
地味に時間かかった。

色々お作法があるみたいですね。



参考サイト

チップチューンとか面白そう。
音に関する記載が多いので、改めて参考にさせていただきたい!


2019年4月17日水曜日

Aftereeffects のエクスプレッションのseedRandom固定させる Script


エクスプレッションで

Random
Wiggle

などランダムな数を使用するとき
レイヤーの順番変えたら動き変わって困るときは
seedRandom()をつかってseed固定します。



まぁ、エクスプレッションの先頭に1行入れるだけですが
今回挿入するプロパティが多かったので自動化Script作りました。



使い方は
プロパティ選択して、Script実行するだけ。
自動でエクスプレッションの先頭に、1文が挿入されます。








参考サイト!!

https://www.cg-method.com/entry/expression-to-script/
http://aejsx.hiroshisaito.net/layer-object/attributes/index

2019年3月15日金曜日

pyqt で 自作スクリプト 備忘録2


備忘録続き

■GUI起動時・閉じたときに実行される処理!
GUIの設定を保存して、次回開くときに設定を保持するには
読み込みpyに以下のdefを追加すると便利!!!

以下、参考サイトのほぼほぼ引用ですが!

class mainUI(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(mainUI, self).__init__(parent)
        self.ui = test_Ui.Ui_MainWindow()
        self.ui.setupUi(self)
        self.load_setting()
    def load_setting(self):
print "LoadSetting!"
    def closeEvent(self, event):
     print "GoodBye!"
def main():
    app = QtGui.QApplication(sys.argv)
    win = mainUI()
    win.show()
    sys.exit(app.exec_())
main()



load_setting
closeEvent

なるほどーこれは便利!!!



■なんじゃこりゃエラー
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)」

こちら方の解説通りやったら解決したので、メモメモ

①まずエラーが出る環境で以下を実行

import sys
print(sys.getdefaultencoding())

→結果が ascii ならアウト!(きっとまちがいなくこれ)

②site-packageにあるpyを新規保存
そのためにフォルダ探す

import site
print (site.getsitepackages())
ちなみに私は C:\Program Files\Autodesk\Maya2018\Python\Lib\site-packages でした




③ そして site-package フォルダに以下を保存!

import sys
sys.setdefaultencoding('utf-8')
sitecustomize.py の名前で

④ はい、確認で環境で以下を実行


import sys
print(sys.getdefaultencoding())

→結果が utf-8 なら成功!!



参考にしたサイト ~感謝を込めて~
http://flame-blaze.net/archives/5696
https://qiita.com/jack-low/items/91bf9b5342965352cbeb
http://shu223.hatenablog.com/entry/20111201/1328334689
https://qiita.com/chatrate/items/eb4b05cd1a6652529fd9

2019年2月27日水曜日

Nuke Python 自作スクリプト メモ


Nuke python 備忘録



sn  = nuke.selectedNode()  単一のノード取得
list = nuke.selectedNodes()     ノードを配列で取得

sn.name()          ノード名取得
sn.knob("note_font_size").getValue()   値参照
                                       setValue(30)  値代入


ノード選択して i  でClass名確認できる。

で、フィルターしてリストにする方法がこちら。

listFilter = nuke.selectedNodes("BackdropNode") 




参考
nukeでpythonはじめ
http://elephantplus.blogspot.com/2012/03/nukepython.html

pythonのツールバーにボタン配置まで
カスタムパネルに追加
http://elephantplus.blogspot.com/2012/03/nukepython_26.html
ノードパネルに追加
https://support.borndigital.co.jp/hc/ja/articles/115001019674-Nuke-%E3%83%8E%E3%83%BC%E3%83%89%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%AB%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%8E%E3%83%BC%E3%83%89%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95
メニュータブに追加
http://www.nukepedia.com/python/render/cmdlinerender

.nukeフォルダが見つからないときは
https://cgworld.jp/regular/nuke008-2.html


2019年2月9日土曜日

Amaterasuの機能 これはつかえる!


Mayaのスクリプト集定番 Amaterasu !
https://kiwamiden.com/tools/amaterasu/help

これは使える機能!を完全自分目線でまとめました。
結構ある、すごい。



一般系  File
https://kiwamiden.com/tools/amaterasu/help/file/set-project


編集系 Edit
https://kiwamiden.com/tools/amaterasu/help/edit/combine-shape
https://kiwamiden.com/tools/amaterasu/help/edit/reorder


アトリビュート系 Modify
channelボックス上の「A」から起動できる
https://kiwamiden.com/tools/amaterasu/help/modify/unfreeze-transformations
https://kiwamiden.com/tools/amaterasu/help/modify/renamer
https://kiwamiden.com/tools/amaterasu/help/modify/stocker


表示系 Display
https://kiwamiden.com/tools/amaterasu/help/display/display-color
https://kiwamiden.com/tools/amaterasu/help/display/x-ray-per-mesh


ウインドウ系 Window
散らばったファイルをコピーしてパスも変更できる。プロジェクトのバックアップ時に便利。
https://kiwamiden.com/tools/amaterasu/help/window/file-manager


モデリング系  Modeling
https://kiwamiden.com/tools/amaterasu/help/modeling/recovery-edge-type
https://kiwamiden.com/tools/amaterasu/help/modeling/extract-face-per-material
https://kiwamiden.com/tools/amaterasu/help/modeling/poly-cleaner


アニメーション系  Animation
https://kiwamiden.com/tools/amaterasu/help/animation/copy-animation
https://kiwamiden.com/tools/amaterasu/help/animation/delete-unused-animation
https://kiwamiden.com/tools/amaterasu/help/animation/store-pose
https://kiwamiden.com/tools/amaterasu/help/animation/rotoscope
https://kiwamiden.com/tools/amaterasu/help/animation/playblast
https://kiwamiden.com/tools/amaterasu/help/animation/seexprmesh
https://kiwamiden.com/tools/amaterasu/help/animation/obake-deformer


リギング系 Rigging
https://kiwamiden.com/tools/amaterasu/help/rigging/create-controller
https://kiwamiden.com/tools/amaterasu/help/rigging/convert-animation-to-drivenkey


トゥーン管理系  Rendering
https://kiwamiden.com/tools/amaterasu/help/rendering/assign-outline



以上、ゼネラリスト目線でした!
個人的に「ViewPort2.0に対応していない機能」「新しいレンダーレイヤーに対応していない」ところがもどかしいですが、
今後の改良を切に願います!


たっくんさんいつもありがとうございます。
Gurenのころからお世話になっております。
これからも開発頑張ってください!


2018年11月17日土曜日

一発で複数のJPGファイルをフォルダにまとめるBAT


備忘録


HDRを大量に制作することになり、先日撮影してきました。
そこで、撮影ポイントが多かったのと、撮影枚数が多かったので
データの確認と整理に予想以上の時間がかかりました。

その中でもJPGファイルの扱いに、、、地味に苦労。
もういっそのことRAWだけで管理して、JPG削除しても?と思ったけど
何があるか分からないので同一フォルダ内に保管することに。

にしても、フォルダ内にRAWとJPGが混在すると煩雑になるので
一発でJPGをフォルダにまとめるBAT作りました。

使い方を動画にしました!




BATの中身は

mkdir jpg move *.JPG jpg

です、短い!

てか、BATにドラッグすると
ドラッグしたファイルのパスでBATが実行されるんだ
(知らなかったがこれは使えそう)



本当は、アクティブウインドウのパスを取得してBAT実行する
ようにしたかったけど、分からなかったです。。
まぁ、最初はコマンドプロンプトで試して
それをBATにできただけでも便利だし、
そもそも当初の目的の時短は達成したからよし!


メモメモ



2018年7月21日土曜日

Mayaで自作ノードについて python


Mayaでスクリプトは作ってきたけど、ノード(プラグイン)は挫折の連続で作ってこなかった。
が、ここにきて仕事で必要になってきた。
ので、作ります。

ちなみに

MayaでのPythonツール開発の流れ

から

  1. Mayaに搭載されている機能をあれこれ実験してみる.
    • 実現したい項目の基本操作を抑える.
    • 開発が必要な機能(足りない機能)を調査する.
  2. 関連するコマンドを簡単に実験してみる.
    • Mayaで編集操作を行うとスクリプトウィンドウに実際に行われたMELコマンドが表示される.
    • Maya ヘルプから,該当するコマンドのPython版を検索し,サンプルコードを実験する.
  3. Pythonコマンドの組み合わせ + GUIで簡単なツールを作成してみる.
    • 編集操作の一連の流れがPythonコマンド列に対応するので実験結果を見ながら組み合わせを調整していく.
    • GUIについてもサンプルコードを実験し,自作コマンドを各GUIに割り当てる.
  4. PyMELでPythonプログラムの整形
    • Pythonコマンドでかかれたプログラムは,PyMELに比べるとあまり直感的ではない.
    • PyMEL ヘルプから対応する関数を検索し,PythonコマンドをPyMEL表現に置き換えていく.
    • PyNode関数で各オブジェクトの固有のクラス型に変換できるので,各クラスから呼び出せる関数を調べてオブジェクト指向型に置き換えてみる.
  5. 足りない機能をPython APIで補う.
    • 新しいノード(データ構造,計算処理の1セット)を追加する部分は,Pythonコマンド,PyMELでは扱えない.
    • Python API ヘルプを参照しながら必要な機能を開発していく.
※以上、Github.com参照

なるほど、わかりやすい。
Maya歴4年(勉強期間も合わせて)の私は、今 (3)まで業務で行っている段階。
(5)に挑戦してるけど、なかなか実現しない。






2017年9月20日水曜日

キーアニメとシミュレーションの両立リグ!自動化スクリプト


CG WORLDさんから便利なスクリプト配布されたので、試したメモ。
ちなみに試したのはMaya2018です。

ちょこちょこ自作スクリプトつくるものとして、
書き方の勉強にもなりますわ~
無償提供してくださり感謝です。

MayaDynamicCtrlRIG_ auto Script from CGWORLD from dekapoppo on Vimeo.


手順は簡単。

1)チェーンを作るカーブを選択
2)チェーンの素材を選択
3)スクリプト実行

以上。

これで、キーアニメ(意図する動き)をしながら
再生すると物理シミュレーション(自然な動き)をしてくれるリグが自動作成されます。
スゴイスゴイ!!!

ちなみに、映像では実行後にカーブ上に板ポリありますが、非表示にすれば問題なし。

紹介リンクダウンロードリンクもご参考に。