Metasequoia BBS

ページ 1 2 3     
/ 267
| 新規投稿 | 通常表示 | ツリー表示 |
状態
タグ
キーワード
[8489] オブジェクトリストの位置を操作する方法 / まじかる☆しげぽん
[質問] 返信
現在、オブジェクトをソートするスクリプトを書いているのですが
オブジェクトの順番操作が上手くいかず、ソートしたリスト情報を基に一度複製して元のオブジェクトを消すという処理で対処しています。
しかし、オブジェクトを複製して消すというのがただオブジェクトをソートするだけで行いたくなく、順番を操作する方法は無いでしょうか?

>insertObject(obj, brother)
insertObjectがその操作を行うメソッドかと思ったのですがbrotherという兄弟オブジェクトが良く分かりません。
brotherにカレントオブジェクトやオブジェクトの一番目のオブジェクトを指定したりしたのですが順番が入れ替わったりしませんがインサートの自分の認識が間違ってるでしょうか?

>addObject(obj[, parent])
addObjectで、既存のオブジェクトを同じようにカレントオブジェクトや1番目のオブジェクトに親子付けしようとしたのですがこれも上手く動作しない感じです。

cloneして追加したオブジェクトの親子付けは行えましたが、すでにあるオブジェクトの順番を入れ替えるような手段は複製したりする以外無いのでしょうか?

以下コードです。

doc = MQSystem.getDocument()

objList= []
listName = []
sort_list = []

#オブジェクトを各リストに格納
for i, obj1 in enumerate(doc.object):
    if obj1 is not None:
        objList.append(obj1)
        listName.append(obj1.name)
        sort_list = sorted(listName)

#ソートしたオブジェクト順に複製
for i, name in enumerate(sort_list):
    for obj2 in objList:
        if name == obj2.name:
            doc.addObject(obj2.clone())

#複製前のオブジェクト削除
for i, obj3 in enumerate(objList):
    if obj3 is not None:
        doc.deleteObject(i)
2019-12-13 03:59
[8490] Re: オブジェクトリストの位置を操作する方法 / まじかる☆しげぽん
あと、このように一括でオブジェクトを削除しようとするとかなりの確率でメタセコが落ちてしまうのですが、ジェネレーターなどで連続処理をタスクを分けた方がいいのでしょうか?
# 複製前のオブジェクト削除
            for i, obj3 in enumerate(objList):
                if obj3 is not None:
                    doc.deleteObject(i)
2019-12-13 10:48
[8480] MQMaterial classにcloneとmergeが無い / まじかる☆しげぽん
[要望] 返信
MQMaterial classに、MQObject classにあるcloneとmergeが無いのですが、材質を複製、合成しようとした場合どのようにすればいいのでしょうか?
2019-12-11 10:43

途中の3件のメッセージを表示

[8485] Re: MQMaterial classにcloneとmergeが無い / 管理者
>materialをドラッグ&ドロップしている際のに「~を合成しますか?」という確認が出てくるのすがこれは、それはそのような処理を内部的にも行っているということでしょうか?
そうです。
オブジェクトのmergeはその中にある頂点・面といった要素を合成しますが、リストには変更は加えません。材質内には合成可能な要素がないのでmergeは不要なのです。
合成なんて毎回書くような頻度で使用する処理ではありませんので、必要なら独自にimport可能なライブラリ化するなどして共通化してください。
2019-12-12 11:57
[8486] Re: MQMaterial classにcloneとmergeが無い / まじかる☆しげぽん
ご返答ありがとうございます。
mergeに関しては割り当て直せばいいというので了解しました。

cloneとinsertについては引き続き対応を検討いただきたいです。
各パラメーターをコピーして、新しく生成して割り当て直すというのは項目数が多く、内容も材質項目が追加され他場合コピーされない項目が出てきますので単純に複製されるメソッド、特定の材質の下に移動したい場合などはinsertが無いと同様の懸念点があります。
宜しくお願いします。
2019-12-12 14:49
[8487] Re: MQMaterial classにcloneとmergeが無い / まじかる☆しげぽん
スクリプト側で用意してほしいメソッドやプロパティで用意しておいてほしいのが、スクリプトを書く人が毎回同じ処理を書く必要が無いというメリットがあります。
割とメタセコのPythonを書いてて思うのが、UI上でドラッグ&ドロップやボタンを一つ押せば自動処理される部分がなぜこんな冗長なコードを書き直さなければいけないのか…と思ってしまうのです。

例えば、内部で行うには冗長な処理で良いと思うのですがそれを外部からスクリプトで扱う人は、同じことを書いたらメタセコ本体が一つのメソッドやプロパティを用意しておいていただければそれにアクセスする人はそれらの記述を行わなくてすみます。

1つ実装するだけで、1000人が同じ処理を同じように書くのが不要になります。

また、安全度の問題もあります。
UI上からアクセスしていたら間違いはおきませんが、スクリプトで削除等の記述を間違えてしまったら最悪データを破壊する可能性があります。
そういう部分は、なるべくメソッドやプロパティで事故が起きないようになっていて欲しいなと思います。
2019-12-12 15:08
[8488] Re: MQMaterial classにcloneとmergeが無い / まじかる☆しげぽん
という要望です。
2019-12-12 15:10
[8423] UVの分離時の挙動&UV島選択 / mqouser
[要望] 返信
UV操作で「分離」を使用すると、分離した頂点が重ならないように元の位置から多少離れた位置に移動しますが、頂点がきれいに揃った状態でUV島を切り離して移動したいケースがよくある(各UV面のサイズは変えずに、展開図の形を変えたい等)ため、分離時に元の位置から移動しないようにしていただきたいです。

また、連続面選択のように分離したUV島全体を一発で選択できるようにしていただきたいです。
頂点位置を移動しない場合、重なった頂点が選択しづらくなりますが、UV島を選択できればカバーできます。
2019-11-22 00:19

途中の4件のメッセージを表示

[8482] Re: UVの分離時の挙動&UV島選択 / なし
私もこちらの機能が欲しいです!毎回崩れた頂点を整頓するのが大変なので。。
それとUV島を一発選択も是非お願いします。
そして便乗なのですが服のボタンなど同じ形サイズのUVを纏める機能があると嬉しいです。
あと格子化が一発で出来るととても捗りますので入れて頂きたい機能です。
2019-12-12 05:13
[8474] PythonでWidgetBaseでhorzLayoutのfreeを指定したときの指定方法 / まじかる☆しげぽん
[質問] 返信
vertLayoutで[free]  位置・サイズを手動指定 とあるのですが、サイズはwidhで指定できると思うのですが、位置の指定の記述が分からないです。
freeで位置をピクセル単位で指定するにはどのように記述すればいいでしょうか?
2019-12-10 00:26

途中の1件のメッセージを表示

[8476] Re: PythonでWidgetBaseでhorzLayoutのfreeを指定したときの指定方法 / 管理者
サイズに関してもフィルまたはヒントサイズでの指定が推奨されます。
width/heightは特定サイズのビットマップ画像にピタリと合わせたいなど、どうしてもピクセル単位の指定が必要な場合にのみ限定してください。そうしないと高DPIモニタで非常に見づらくなります。
2019-12-10 12:50
[8477] Re: PythonでWidgetBaseでhorzLayoutのfreeを指定したときの指定方法 / まじかる☆しげぽん
ご返答ありがとうございます。もう一点
ヒントサイズの概念が良くわかっていないのですが、例えば画面の幅に対して50%ずつのサイズにボタンを作成したい場合はどのようにするのが正解なのでしょうか?
現在は一応HintSizeを使っているのですが、雰囲気で50%になっていて正解の方法が分からないため。

またビットマップ画像に対する言及があるのですが、メタセコのPythonスクリプトで、Textureを取得してテクスチャ一覧リストのようなもの表示したい場合どのように記述するのでしょうか?
ボタンのSVG画像を表示するのはありましたが、ウェジエット上に画像を表示するのは見当たらないように感じました。
またその際に、画像のスケーリングを行いたい場合どのようにすればいいでしょうか。

質問ばかりですみません。
2019-12-10 15:24
[8478] Re: PythonでWidgetBaseでhorzLayoutのfreeを指定したときの指定方法 / 管理者
ヒントサイズの100%は標準的なウィジェット1行分の高さとなります。ボタンやラベルなど各ウィジェットはこの高さと同じか若干前後する程度で表示されますので、何行分くらいにしたいかを考えてヒントサイズの値を指定してください。
ウィンドウ・ダイアログやフレーム内で何%の幅として指定したい場合は、レイアウトにフィルを指定したうえでfillRateX/Yに比率を入れてください。2つのウィジェットを50%ずつにするならそれぞれ1:1を、66%と33%にしたいなら2:1(1:0.5でも可)のようにfillRateの値を指定します。

ビットマップを扱えるのはプラグインSDKのみです。Python自体に標準で扱える画像クラスがなく、またこれまで特に要望もなかったので、スクリプトからのビットマップは未対応となっています。
2019-12-10 16:25
[8479] Re: PythonでWidgetBaseでhorzLayoutのfreeを指定したときの指定方法 / まじかる☆しげぽん
ご返答ありがとうございます。
ヒントサイズの概念理解できました。
この説明を、スクリプトリファレンスにも掲載していただければと思います。

ビットマップは自分Python触り始めて、何かを扱うのに基本的にライブラリを追加で入れていて基本機能ではあまり扱えるものは無いのかなと感じました…。
標準で扱えないならば仕方ないですね。承知しました。

ご返答ありがとうございます。
2019-12-10 17:19
[8468] Pythonスクリプトの質問 / まじかる☆しげぽん
[質問] 返信
■ダイアログサイズの再設定
ウェジエットの共通設定で、visibleプロパティで表示非表示をコントロールすることができますがvisibleにしたときにUIが詰まりますがそれに合わせてウィンドウサイズをその状態に、最適化した状態にするにはどのように記述すればよいでしょうか?
現状、heightを決め打ちで指定してみたのですが環境設定でUIサイズを変更するとおかしくなってしまいます。

■ListBoxでvertLayoutでfillを使った時に正しく動作しない
WindowBaseでcanResizeをTrueにしてる場合、horzLayoutでfillを使った場合ウィンドウサイズに引き伸ばされるのですが、縦に引き伸ばしたときにvisibleRowで行数を指定しているからか縦方向には幅いっぱい広がってくれません。
対策として現状の仕様で考えれるのは、縦方向のサイズを取得してその分visibleRowの行数を増やしていくというのが考えれますが、あまりスマートな方法ではないのでvertLayoutのfillが正しく反映される方法はあるでしょうか?
2019-12-09 16:46

途中の1件のメッセージを表示

[8470] Re: Pythonスクリプトの質問 / まじかる☆しげぽん
こちらの問題、両方ともフレームにfillを設定することで解決しました。
フレームを使っていない場合、子ウィジェットのfillを設定するだけで大丈夫でしたがframeを使っていると高さが一定のサイズで固定されているようでした。

以下を1行追加するだけで解決しました。
 self.frame.vertLayout = "fill"

同時に、ダイアログサイズの再設定の方もダイアログサイズそのものは変化しませんがvisibleで消えた分、Listのfillが有効になり問題が解決しました。

https://imgur.com/a/XC2Q358

対応不要タグを付けていただいて大丈夫です
2019-12-09 19:34
[8471] Re: Pythonスクリプトの質問 / 管理者
>■ダイアログサイズの再設定
ダイアログがselfとして
size=self.getJustSize(-1,-1)
self.width=size[0]
self.height=size[1]
のようにgetJustSizeで取得してリサイズしてください。

>■ListBoxでvertLayoutでfillを使った時に正しく動作しない
リストのvertLayoutにfillを指定をしても、リストがフレームなどの中にある場合はその親フレームのvertLayoutにもfillを指定しないと引き伸ばされません。
おそらくこちらだと思いますので、確認してみてください。
visibleRowはgetJustSizeで取得されるサイズに影響しますが、リストが生成された後にフィル処理などでリサイズされる際には影響しません。
2019-12-09 19:36
[8472] Re: Pythonスクリプトの質問 / 管理者
投稿直前に自己解決されていたようですね。
凝ったレイアウトにする場合は返信で付けた内容も知っておくと迷わなくなります。
2019-12-09 19:39
[8473] Re: Pythonスクリプトの質問 / まじかる☆しげぽん
ダイアログサイズ、visibleRowは生成後に影響されないのは分かってよかったです。
左右にしか伸ばせなかったのが自由に変形できるようになりました。
丁寧にご返答ありがとうございます。
2019-12-09 19:56
[8464] Radeon ProRenderへの対応 / こむ
[要望] 返信
MetasequoiaのRenderMan連携は、私にとって敷居の高かった3DCGを身近なものにしてくれています。
AMD社よりリリースされているRadeon ProRenderですが、こちらもフリーのレンダラーですが、AMD・NVIDIA両製品に対応したGPUレンダリングができることと、フリー版でありながら商用可ということで注目されているようです。
Radeon ProRenderへの対応も検討していただければ嬉しく思います。
2019-12-07 15:07
[8467] Re: Radeon ProRenderへの対応 / 管理者
少し調べてみましたが、AMD自体が提供している各ツール向けのプラグインは無償で利用できますが、SDKは非商用限定なので、サードパーティが独自に商用ツールに組み込むことは(少なくとも現時点では)できないのではないでしょうか。
2019-12-09 09:21
[8466] Pythonのウェジエットでテーブルがほしい / まじかる☆しげぽん
[要望] 返信
■テーブルウェジエット
Pythonでリネーマーを作成してるときに、材質に対して、テクスチャ種類、パスをひとつのリストで管理するのにテーブル的なリストウェジエットが欲しいと思いました。エクセル的なやつです
https://images.app.goo.gl/Z9kMU1QFyCsdZV3S6

■ボーンへのPythonでのアクセス
また、ボーン機能など後付けで実装されたものがPythonからはアクセスできないのが辛いです。
それならば、ボーン機能はプラグインではなく本体に取り込む形での実装にしてほしいです。

細かい機能を追加したら切りがないのは分かりますがこのように操作元の機能がスクリプトを書く側が及ばぬ形だとどうしようもありません。
かといって、C++で書いてくださいというのは簡単にスクリプトでというところからズレているとおもいます。

Python側てのアクセスが難しい機能は基本的にプラグインではなく本体側に実装していただきたいだす。
開発側も追加しやすいからというのもあると思いますが、そのような運用たと色々機能が追加さらていくけど、Pythonではどんどんアクセスできない機能が増えていき負の遺産となります。

もしくは、プラグインとPythonを橋渡しする機能があればと思います。

■Pythonでの常駐型ツールの作成
現在、Window指定がありますが実質機能していないようなので、Pythonでも常駐型ツールを作成できるようにしてほしいです。
MAYAのPythonスクリプトで作られたツールで常駐できてるツールは存在します。
現状ですと、Okをexecuteで実行して閉じないと反映されないため何回も変更して確認するようなツールを作るのにダイアログのみではきついです。

■スクリプトメニューの追加
スクリプト類などを、ツールに追加していって場所が埋まってきてしまいました。
スクリプトフォルダに入ってるスクリプトをメニューから一覧でアクセスできるようになってほしいです。

以上、Pythonスクリプトを作ってみての要望となります

2019-12-09 02:27
[8465] リネーマースクリプト / まじかる☆しげぽん
[アナウンス] 返信
Metasequoia4向けのPythonスクリプトを作成しました。
オブジェクト名、材質名、ファイルパスのリネームを行えます。

https://sigepon.booth.pm/items/1718974
https://www.youtube.com/watch?v=hUUEyo78TVo
2019-12-09 00:03
[8461] Ver4.7.2(32bit版)のセットアップに失敗 / mqouser
対応済み [雑談] 返信
Ver4.7.2の32bit版をインストールしようとすると、「セットアップに失敗」となります。
PCの再起動、旧バージョンのアンインストール後の再インストールも試しましたが、事象は解消しませんでした。
なお、4.7.1の再インストールは問題なく完了しました。

ログは以下のとおりです。
原因・対処方法はお分かりになりますでしょうか。

[1638:0600][2019-12-04T22:47:34]i001: Burn v3.11.1.2318, Windows v10.0 (Build 18362: Service Pack 0), path: D:\Temp\{1EFC4945-F715-4F95-A6FB-EF952319C4EA}\.cr\Metaseq472_Win32_Installer.exe
[1638:0600][2019-12-04T22:47:34]i000: Initializing string variable 'InstallFolder' to value '[ProgramFilesFolder]tetraface\Metasequoia4'
[1638:0600][2019-12-04T22:47:34]i000: Initializing version variable 'VCRedist2015' to value '14.0.24215.1'
[1638:0600][2019-12-04T22:47:34]i009: Command Line: '-burn.clean.room=D:\Metaseq472_Win32_Installer.exe -burn.filehandle.attached=616 -burn.filehandle.self=612'
[1638:0600][2019-12-04T22:47:34]i000: Setting string variable 'WixBundleOriginalSource' to value 'D:\Metaseq472_Win32_Installer.exe'
[1638:0600][2019-12-04T22:47:34]i000: Setting string variable 'WixBundleOriginalSourceFolder' to value 'D:\'
[1638:0600][2019-12-04T22:47:34]i000: Setting string variable 'WixBundleLog' to value 'D:\Temp\Metasequoia_4_20191204224734.log'
[1638:0600][2019-12-04T22:47:34]i052: Condition 'VersionNT >= v6.1' evaluates to true.
[1638:0600][2019-12-04T22:47:34]i000: Setting string variable 'WixBundleName' to value 'Metasequoia 4'
[1638:0600][2019-12-04T22:47:34]i000: Setting string variable 'WixBundleManufacturer' to value 'tetraface Inc.'
[1638:4A9C][2019-12-04T22:47:34]i000: Setting numeric variable 'WixStdBALanguageId' to value 1041
[1638:4A9C][2019-12-04T22:47:34]i000: Setting version variable 'WixBundleFileVersion' to value '4.7.2.0'
[1638:0600][2019-12-04T22:47:34]i100: Detect begin, 2 packages
[1638:0600][2019-12-04T22:47:34]i052: Condition 'VersionNT = v6.3' evaluates to false.
[1638:0600][2019-12-04T22:47:34]i000: Product or related product not found: {F899BAD3-98ED-308E-A905-56B5338963FF}
[1638:0600][2019-12-04T22:47:34]i000: Setting version variable 'VCRedist2015x86' to value '0.0.0.0'
[1638:0600][2019-12-04T22:47:34]i102: Detected related bundle: {042511d1-403e-4b48-b8b0-e742926ae434}, type: Upgrade, scope: PerMachine, version: 4.7.1.0, operation: MajorUpgrade
[1638:0600][2019-12-04T22:47:34]i052: Condition 'VCRedist2015x86 >= VCRedist2015' evaluates to false.
[1638:0600][2019-12-04T22:47:34]i103: Detected related package: {9F44425E-6D7A-4C43-A88C-6D191A2EB2EB}, scope: PerMachine, version: 4.7.1.0, language: 0 operation: MajorUpgrade
[1638:0600][2019-12-04T22:47:34]i101: Detected package: vc_redist.x86.exe, state: Absent, cached: None
[1638:0600][2019-12-04T22:47:34]i101: Detected package: X86, state: Absent, cached: None
[1638:0600][2019-12-04T22:47:34]i052: Condition '(VersionNT <> v6.1) OR (VersionNT = v6.1 AND ServicePackLevel >= 1)' evaluates to true.
[1638:0600][2019-12-04T22:47:34]i052: Condition '(VersionNT <> v6.3) OR (VersionNT = v6.3 AND NT603HALVER > v6.3.9600.16500)' evaluates to true.
[1638:0600][2019-12-04T22:47:34]i199: Detect complete, result: 0x0
[1638:4A9C][2019-12-04T22:47:36]i000: Setting numeric variable 'EulaAcceptCheckbox' to value 0
[1638:4A9C][2019-12-04T22:47:41]i000: Setting string variable 'InstallFolder' to value 'D:\Program Files (x86)\tetraface\Metasequoia4'
[1638:4A9C][2019-12-04T22:47:44]i000: Setting numeric variable 'EulaAcceptCheckbox' to value 1
[1638:0600][2019-12-04T22:47:44]i200: Plan begin, 2 packages, action: Install
[1638:0600][2019-12-04T22:47:44]i052: Condition 'VersionNT' evaluates to true.
[1638:0600][2019-12-04T22:47:44]w321: Skipping dependency registration on package with no dependency providers: vc_redist.x86.exe
[1638:0600][2019-12-04T22:47:44]i000: Setting string variable 'WixBundleLog_vc_redist.x86.exe' to value 'D:\Temp\Metasequoia_4_20191204224734_000_vc_redist.x86.exe.log'
[1638:0600][2019-12-04T22:47:44]i000: Setting string variable 'WixBundleRollbackLog_X86' to value 'D:\Temp\Metasequoia_4_20191204224734_001_X86_rollback.log'
[1638:0600][2019-12-04T22:47:44]i000: Setting string variable 'WixBundleLog_X86' to value 'D:\Temp\Metasequoia_4_20191204224734_001_X86.log'
[1638:0600][2019-12-04T22:47:44]i201: Planned package: vc_redist.x86.exe, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: None, cache: Yes, uncache: Yes, dependency: None
[1638:0600][2019-12-04T22:47:44]i201: Planned package: X86, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: No, dependency: Register
[1638:0600][2019-12-04T22:47:44]i207: Planned related bundle: {042511d1-403e-4b48-b8b0-e742926ae434}, type: Upgrade, default requested: Absent, ba requested: Absent, execute: Uninstall, rollback: Install, dependency: None
[1638:0600][2019-12-04T22:47:44]i299: Plan complete, result: 0x0
[1638:0600][2019-12-04T22:47:44]i300: Apply begin
[1638:0600][2019-12-04T22:47:44]i010: Launching elevated engine process.
[1638:0600][2019-12-04T22:48:03]i011: Launched elevated engine process.
[1638:0600][2019-12-04T22:48:03]e000: Error 0x800700e8: Failed to wait for child to connect to pipe.
[1638:0600][2019-12-04T22:48:03]e000: Error 0x800700e8: Failed to connect to elevated child process.
[1638:0600][2019-12-04T22:48:03]e000: Error 0x800700e8: Failed to actually elevate.
[1638:0600][2019-12-04T22:48:03]e000: Error 0x800700e8: Failed to elevate.
[1638:0600][2019-12-04T22:48:04]i399: Apply complete, result: 0x800700e8, restart: None, ba requested restart:  No
2019-12-04 22:52
[8462] Re: Ver4.7.2(32bit版)のセットアップに失敗 / 管理者
ログからは何が原因かはまったくわかりませんでしたが
・インストーラを再ダウンロードする
・アンインストール後にいったんOSを再起動する
・アンチウイルスソフトを使っているならインストール時に一時的にオフにする
といったあたりで解決しないでしょうか?
2019-12-05 10:33
[8463] Re: Ver4.7.2(32bit版)のセットアップに失敗 / mqouser
本日、再度インストールを試みたところ正常にインストールできました(昨日もアンインストール後にPC再起動を試みたんですが)。
ともあれ、お騒がせいたしました。
2019-12-05 22:46
[8420] オブジェクト統合時のボーンウェイトの反映 / mqouser
対応済み [要望] 返信
スキン設定されたオブジェクトを統合すると、統合したオブジェクトのウェイトが消えてしまいますが、ウェイトを維持したまま統合できてほしいです。
元オブジェクトをコピーしておいて、そこからウェイトを頂点選択転写で反映することはできますが、モデリング時はオブジェクトを細かく分け、FBX等出力する際に統合するという動作はツールを行き来するなかで頻繁に発生しますので、効率化を検討いただきたいです。
2019-11-22 00:07

途中の2件のメッセージを表示

[8460] Re: オブジェクト統合時のボーンウェイトの反映 / mqouser
Ver4.7.2で期待通りの挙動になることを確認しました。
要望を出し忘れていた曲面フリーズ対応もうれしいです。

キャラモデリングが非常に捗りそうで、週末に弄るのが楽しみです。
ありがとうございました!
2019-12-04 22:10
最新 前のページ 次のページ