DAZ Studioのスクリプトを自作する

DAZ Studioのスクリプトを使って、省力化したいなーと思ったので、ざっくり情報を集めてみた。

スクリプトの開発環境

DAZ Studio IDE

IDE(Integrated Development Environment)=統合開発環境。

スクリプトを打ち込んで、その場で実行できるものと考えておけばいいだろう。

DAZ Studioのスクリプトは、QtScriptの拡張でDAZ StudioのAPIにアクセスすることで自動操作などをおこなえるそうだ。なんのこっちゃ。フィーリングはJavascriptに似ているっぽい。

DAZ StudioのWindow→Pane(tabs)→Script IDEから呼び出し可能。

デバッガがついていて、ソースコードをステップ・バイ・ステップで実行できる。(Debug→Debuggerまたは、Shift+F5でデバッガ起動)

サンプルスクリプトを1行づつ動かして、実際の画面の変化を確認して「このコードはこういう動きになるか…」って確認するのに役立ちそう。

Visual StudioでDAZ Studioのスクリプトを開発

DAZ Script開発環境の構築方法[DAZ Studio] – Qiita

本気で長めのスクリプトを作りこむ場合は、こういう環境の方がいいのかも。

TypeScriptというJavascriptの親戚みたいなコードで記述してから変換、という形を取るのだそう。

TypeScript慣れしている人用なのかな。

DAZ Scriptの書き方

とりあえず、こんな感じで、 (function(){})(); でコードを囲っておけば動くっぽい。

この書き方をなんと呼ぶのかとか、そういうことは知らない。

たとえば、選択状態のパーツから先端までを全て非表示にするスクリプトを当てはめてみる。

選択したパーツの子をすべて非表示にするサンプルスクリプト

参考)[DAZ] Script to hide all children nodes | F95zone ←メッチャエロ広告でるので注意

 

これを、Script IDEにコピペして、Executeボタンをクリックすると動く。ファイル名.dsaでファイルに保存して、Content LibraryからダブルクリックしてもOK。

なお、setVisible( false )を、setVisible( true )に変更すると、指定パーツから先端までが表示状態に変更される。

設定したパーツのXRotateの最小値、最大値を設定するスクリプト

選択したパーツの、Xrotate(例えば手の場合はTwist)の最小値をー50、最大値を50に設定する。

値を表示するスクリプト

スクリプト、というのもおこがましいが値を表示するには、print()を使う。カンマで区切ると、文字列と値を連結して表示できる。(ただし、何故か間に半角空白が入る)

スクリプトの実行方法

Content Libraryに登録してダブルクリック

スクリプトファイルを用意する。
Content Libraryの適当なフォルダにスクリプトをコピー。

※Content Libraryの指す実際のフォルダは、右クリックして「Browse to Folder Location」を選ぶとエクスプローラーが開く。

開いたフォルダにスクリプトをコピーして、Refresh(再描画)を選ぶと、スクリプトが表示される。

アイコンは「アイコン画像がないよ」みたいなのが割り当てられてカッコ悪いけど、コレを解消するのは超面倒くさいので、気にせず使おう。

画面上部メニューからスクリプトを呼び出せるようにする

毎回Content Libraryなんて、使ってらんねー!

フォルダの迷宮で迷子になるわ!

というあなたは、メニューにスクリプトを登録することも可能だ。

Content Libraryのアイコン上で右クリック→Create Custom Actionを選択

Create Custom Actionウインドウが表示されるので、Root MenuをScriptsにして、Acceptをクリック

なお、ここでSubmenuを選ぶと、メニューを階層構造にすることができる。

以下のメッセージが表示される。「指定したスクリプトのカスタムアクションが作成されました。Scriptsメニューから実行可能です」というような意味だ。

たしかに、画面上部のScriptsに、先ほどのスクリプトが登録されている。

登録済みのスクリプトをメニューから消す方法

Window→Workspace→Customizeを選択


日本語化を試していたので、表示が日本語になっているけど

Customize DAZ Studioウインドウが表示される。

ActionsタブのCustomから、追加したスクリプトを探して右クリック→Delete Custom Actionを選択

と、いつでも消せるので雑に追加して色々試そう。

DAZ Studio スクリプト関連情報

DAZ Studioのスクリプトマニュアル

Scripting [Documentation Center]

英語。最初にざっくり日本語翻訳しながら流し読みすればいけそう。

やっぱ流し読みには日本語がいいなぁ。

サンプルスクリプトも多数用意されてるので、チュートリアルがわりにIDEで動かしながらフィーリングをつかんでいきたい。

スクリプトの種別 dsa,dsb,dse

すごい種類ある。

File Extensions [Documentation Center]

DAZ Script2の拡張子に絞ると3つで、dsa、dsb、dseがある。

.dsaは、アスキー形式。テキストエディタで開いて読める。

.dsbは、バイナリ方式。読めない。アスキーに変換する方法もあるのか?

.dseは、encrypt(暗号化)された形式。

スクリプトのサンプル

関節limit一覧表示などのスクリプト

自作DAZ Script | lps da DAZ Studio user

lps da DAZ Studio userさんによる、公開スクリプト。

  • フィギュアのパーツのリミット設定一覧表示
  • 選択ノードの表示・非表示(子階層ごと)

詳細なスクリプトの解説も掲載あり。

Github(無料で使えるソースコード管理サービス)に、各種スクリプトが公開されているので、ありがたく見させてもらおう。

lowpolysnow/DAZStudioScriptSet: DAZ Studioで使えるスクリプト集です。

ポーズコンバーター

DAZフィギュア用無料ポーズコンバーター G1、G2、G3、G8対応
Genesis1、Genesis2、Genesis3、Genesis8のポーズデータを、世代間で使いまわせるようになるコンバーターを発見。 >Daz3d Pose Converter (Standalone) - Script - S...

旧フィギュア~最新フィギュア間でポーズコンバートができるスゴイやつ。

素晴らしい。

ランダムモーフ

Daz3D Morphs Randomizer – Script – ShareCG

モーフパラメータをランダムに設定するスクリプト。実行するとパーツと、モーフのグループを指定するとランダムに値をセットしてくれる。

対象パーツを指定するコンフィグ画面と、ランダムモーフ実行用スクリプトの二本立て。

アイテム表示・非表示

HIDE and SHOW – Daz Script

指定したアイテムが表示されてたら非表示、非表示だったら表示するスクリプト。透明度(Opacity)を変更するっぽい。

ランダム表情(Genesis)

Genesis Expression Randomizer – Script – ShareCG

Genesis用のランダム表情。

大きな文字でパラメータパネル

DAZフォーラムに投稿されていたスクリプト。

「いつか、DAZ本体に実装されるといいんですけどねっ!」という希望と絶望の入り混じったコメント入りで公開されていた。

A script to control a selected Property, with large font size, and Preview buttons – Daz 3D Forums

mcasualsdazscripts7

一風変わったスクリプトが大量。遅延アニメーションコピーや、電撃エフェクト、パーティクルシステムなど有料級が大量に。(でも、全部無料)

mcasualsdazscripts7

DAZ Studioインストールフォルダの.dsaファイル

  • C:\Program Files\DAZ 3D\DAZStudio4\resources

上記フォルダの.dsa(暗号化・バイナリ化されてないスクリプトファイル)を眺めているだけでも、ヒントになる…かも。

選択パーツのプロパティ(モーフ名など)の一覧を出力するスクリプト

Sceneタブで対象パーツを選んでから実行すると、対象パーツのプロパティをズラズラっと表示する。

Getting the properties associated with a node. [Documentation Center]

出力例はこんな感じ。

DAZスクリプト厳選リンク

DAZとPoserのスクリプトWiki

Software/Scripts – Poser and Daz Studio Free Resources Wiki

大量。すでにやりたいことがスクリプト化されて公開されているかも知れない。sharecgにはお宝スクリプトがゴロゴロしているのかも。

目についたスクリプトをピックアップしておこう。

ShareCGのScriptのページ

scripts Sharecg

ShareCGのDAZ Studio用ページ。

一部、dsa(テキストエディタで読める)形式のスクリプトが公開されている。

自作スクリプトへの第一歩

とりあえず、Geometry Shellの各パーツを自動で非表示にするスクリプトを作りたい。

Geometry Shellを生成するスクリプトをDAZ公式サイトで見つけたので、こいつをベースに作って行こうと思う。

Create Geometry Shell [Documentation Center]

タイトルとURLをコピーしました