2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

MAXSCRIPT_Vol1

1 :01:04/12/04 01:19:32 ID:5lu9hJHF.net
MAXSCRIPTに関するQ&Aのためのスレッドです。

あらかじめ用意された複数のテクスチャ(解像度違い)があり、
選択しているオブジェクトのテクスチャをボタン一発(インターフェース上は、解像度の種類分)で
切り替えていくというスクリプトを作りたいと思っています。

またできれば、ディフューズレベル、スペキュラレベル...などで、選択できる分岐処理を実装できればと思っています。
既存のものであれば、ご紹介ください。また、参考になるテンプレートスクリプトがあれば、お願いします。



249 :名無しさん@お腹いっぱい。:2013/03/15(金) 22:04:04.43 ID:C2FvTETZ.net
maxのマクロレコーダーは使い物にならないことがまれによくある

250 :名無しさん@お腹いっぱい。:2013/03/19(火) 19:26:13.50 ID:X8YFO+Ym.net
for i in objects do

みたいな書き方だと、メッシュ化してないプリミティブオブジェクト(普通のSphereとかBoxとか)が拾えないみたいです。

objects の代わりに $* だと拾えるのは分かったんだけど、
昔に別な書き方でもできた気が。
$* 以外の書き方って無かったでしたっけ?

251 :名無しさん@お腹いっぱい。:2013/03/19(火) 20:28:59.89 ID:X8YFO+Ym.net
>みたいな書き方だと、メッシュ化してないプリミティブオブジェクト(普通のSphereとかBoxとか)が拾えないみたいです。

あれ、拾える?
勘違いしたかも。ごめん。

252 :名無しさん@お腹いっぱい。:2013/03/20(水) 02:26:31.86 ID:aKXLPO5z.net
>>251
一度くらいはリファレンスに目を通しましょう

objectsはObjectSet値
$*はPathName値

条件次第で同じ動作をするけど明確に異なる値です

253 :名無しさん@お腹いっぱい。:2013/03/20(水) 02:29:51.60 ID:eBhQm1NF.net
異なる値かどうかとか、全く質問と関係ないですよね。

254 :名無しさん@お腹いっぱい。:2013/04/08(月) 01:53:06.75 ID:5QN07Uff.net
複数のスクリプトのバージョンまとめて更新したいんだけど、なんかいい方法ある?
今のとこ一つずつビューポートに投げるしか方法思い浮かばなくて。

255 :254:2013/04/09(火) 02:40:30.40 ID:Rf+a1HI9.net
事故解決しますた。
AppDataのほうにスクリプトあるとmacroscriptsに入れても更新されないのね。

256 :名無しさん@お腹いっぱい。:2013/09/20(金) 13:22:13.08 ID:J23xaoqY.net
基本設定の自動バックアップのチェックのオンオフをスクリプトで制御したいのですが、
どこにアクセスしたら良いでしょうか?

257 :名無しさん@お腹いっぱい。:2013/09/20(金) 14:19:37.97 ID:seUHEVg3.net
autosave.Enable = true

258 :名無しさん@お腹いっぱい。:2013/09/20(金) 14:47:55.40 ID:J23xaoqY.net
ありがとうございます!

259 :名無しさん@お腹いっぱい。:2013/09/20(金) 15:12:16.09 ID:J23xaoqY.net
(
 (
 if (autosave.Enable = true) then autosave.Enable = false
 else autosave.Enable = true
 )
)

のようにして、有効の時に押せば無効になるようにしたのですが、
無効の時に押しても有効になりません…
書き方がおかしいのでしょうか?

260 :名無しさん@お腹いっぱい。:2013/09/20(金) 16:39:14.32 ID:seUHEVg3.net
×if (autosave.Enable = true)
○if (autosave.Enable == true)

261 :名無しさん@お腹いっぱい。:2013/09/23(月) 17:48:48.98 ID:9DKAKKE/.net
Boolのトグルにif文はいらんよ
autosave.Enable = not autosave.Enable

262 :260:2013/09/24(火) 01:00:49.87 ID:mn/UtfSO.net
あ、そりゃそうだ。

263 :名無しさん@お腹いっぱい。:2013/09/27(金) 18:56:32.77 ID:TYSRycw4.net
レイヤーマネージャーのボタンのように、一回押すとオレンジになり
もう一回押すと戻るようなマクロスクリプトはどのように書いたらよいでしょうか?

264 :名無しさん@お腹いっぱい。:2013/09/29(日) 22:42:11.86 ID:Kn62Wyl+.net
CheckButton

265 :264:2013/09/30(月) 15:00:16.83 ID:oCM9TbaB.net
ごめん、勘違いしてた
ツールバーのボタンのことならisCheckedっていうイベントがあって
その中で真偽値を返すことで押下状態を制御できるよ
http://docs.autodesk.com/3DSMAX/16/JPN/MAXScript-Help/index.html?url=files/GUID-6E21C768-7256-4500-AB1F-B144F492F055.htm,topicNumber=d30e639208

266 :名無しさん@お腹いっぱい。:2013/10/30(水) 11:56:10.28 ID:9LvRQ0hj.net
オブジェクトプロパティの「フリーズをグレーで表示」をボタンにしたいのですが、
マクロレコーダーに出た$.showFrozenInGray = onだけでは反映されません。
何か足りないのがあるのでしょうか?

267 :名無しさん@お腹いっぱい。:2013/10/30(水) 16:50:12.49 ID:S4wv1NoX.net
いけるはずだけど。

$は選択オブジェクトを表してるから、オブジェクトが選択されてないか、
もしくは複数選択されてるとか。

268 :名無しさん@お腹いっぱい。:2013/10/30(水) 18:14:49.54 ID:9LvRQ0hj.net
>>267
単体で試したら確かにいけました。
複数選択時はまた違うのでしょうか?

269 :名無しさん@お腹いっぱい。:2013/10/30(水) 21:43:19.30 ID:j90ZXGHA.net
これなら選択なし/単体/複数でも対応可能
selection.showFrozenInGray = true

$は現在の選択を表す「PathName値」
selectionは現在の選択を表す「ObjectSet値」

どちらも配列の一種で似てるけど微妙に違う
試しに何も選択せずにリスナーに
$

selection
を打って戻り値を確認するといいよ
どういう違いなのかなんとなく分かるはず

270 :名無しさん@お腹いっぱい。:2013/10/31(木) 10:00:43.80 ID:/c+HcHYW.net
へ〜、selectionってプロパティの代入はループさせなくても複数一気にいけるんだ。
一個賢くなった。>>268じゃないけどdクス

271 :名無しさん@お腹いっぱい。:2013/11/01(金) 16:01:01.61 ID:b4idwkku.net
>>269
ありがとうございます!
いろいろ応用したいと思います

272 :271:2013/11/06(水) 12:25:25.06 ID:aqtHo5u9.net
何度もすいません…。
下記のようにしてif文にしたところ、2010では動作しましたが2012では動作しないようです。
仕様が若干変わっていたりするのでしょうか?

(
for i in selection do
(
if (i.showFrozenInGray == on) then (i.showFrozenInGray = off)
else
(i.showFrozenInGray = on)
)
)

273 :名無しさん@お腹いっぱい。:2014/04/18(金) 17:07:03.83 ID:9+12GPL9.net
大体そういうのって才能でしょ

274 :名無しさん@お腹いっぱい。:2014/09/17(水) 12:58:38.10 ID:29SZFRZ4.net
スクリプトを勉強し始めた初心者です。

ヘルプにあるビューポートの再描画コールバックについて2012と2014で
結果が異なる為、ご存知の方がいましたらご教授願います。

fn redrawviews_p = print "Viewports Redrawn"
registerRedrawViewsCallback redrawviews_p

上記を評価してコールバックを停止するため

unregisterRedrawViewsCallback redrawviews_p

と入力しました。
2012は正常にコールバックが停止するのですが、2014は「OK」と返しては来るのですが
"Viewports Redrawn"がリスナーに表示され続けます(停止できない)

モヤモヤしてます・・・

275 :名無しさん@お腹いっぱい。:2014/09/17(水) 14:21:03.60 ID:ZrjisZBc.net
今試してみたけど、うちは2014でも止まるよ。SP5。

276 :名無しさん@お腹いっぱい。:2014/09/17(水) 20:16:44.80 ID:29SZFRZ4.net
>>275
なんだかよくわかりませんでしたが、max再起動したら正常に動作しました。
ありがとうございました。

277 :名無しさん@お腹いっぱい。:2014/09/19(金) 11:24:09.41 ID:B80uezAN.net
>>276
登録したスクリプトがエラーを吐くと正常に登録解除できない
その状況を作らないために登録する関数は
実処理を行う関数を呼び出すだけの内容にしておくといいってリファレンスにも載ってるよ
さらにtry文で囲んでおくと安全

--登録
fn redrawviews_p = print "Viewports Redrawn"
fn redrawviews_handler = try( redrawviews_p() )catch()
registerRedrawViewsCallback redrawviews_handler

--解除
unregisterRedrawViewsCallback redrawviews_handler

バージョン毎の動作の違いはよく分からん

278 :名無しさん@お腹いっぱい。:2014/09/19(金) 19:24:22.18 ID:8D8hfrU1.net
>>277
教えて頂きありがとうございます。
仕事の暇を見つけてスクリプトの学習を行っているので進みがとても遅く
try文が何なのか未だ理解してません。
もっと勉強します。

プログラミングの予備知識ゼロの人がmaxscriptを一人前に出来るようになるまで
どれくらい時間が必要なんでしょうかね。本人次第の所はありますが。。。

279 :本田:2014/11/27(木) 00:59:22.99 ID:5yIvS+Qc.net
Introduction to MaxScript - Creating a Voxel Tree - Part 1
https://www.youtube.com/watch?v=ZoIY5lT6IV4
Introduction to MaxScript - Creating a Voxel Tree - Part 2
https://www.youtube.com/watch?v=NxI-ru5yAa0

280 :名無しさん@お腹いっぱい。:2014/11/28(金) 06:49:47.18 ID:03A4HOy/.net
>>279
ただのBoxで構成された木を作る動画
ボクセルツリーという言葉に期待した人は残念でした

281 :名無しさん@お腹いっぱい。:2016/10/28(金) 03:55:49.06 ID:O8TzAf5R.net
ほしゅ

282 :名無しさん@お腹いっぱい。:2016/12/19(月) 16:52:53.71 ID:K6a+KmnL.net
hoshu

283 :名無しさん@お腹いっぱい。:2017/03/01(水) 20:12:49.31 ID:xlEL985/.net


284 :名無しさん@お腹いっぱい。:2017/07/13(木) 22:14:39.30 ID:LLhauofu.net
また活発になってほしい...
それかpython版作ろうよ

285 :名無しさん@お腹いっぱい。:2017/07/14(金) 09:40:43.13 ID:bf4NRxNB.net
いい加減Qtに移行したいけどpythonで完結できないことが多くて
結局maxscriptが必要になるならmaxscript一本でいいやとなって移行できない

286 :名無しさん@お腹いっぱい。:2017/07/17(月) 02:06:52.52 ID:qFBfMv+9.net
BonesProをmaxscriptから操作したいと思って試したのですが、上手くいかず困ってます。
http://doc.bonespro.com/MAXScript.html

【概要】
ボーン選択をmaxscriptで選択したい
<void> BonesPro.bone_select_name <name> <select>


<void>と <name> <select>のところが同様になっていると良いのかが良くわかっていません。
クラスとかパラメータとか調べてみたのですが、上記のメソッド関係が動いてくれません。
どうしたらいいのかアドバイス頂ける幸いです。
よろしくお願いいたします。

287 :名無しさん@お腹いっぱい。:2017/07/17(月) 02:07:45.66 ID:qFBfMv+9.net
テストで探ってた際のログ
【実行】
showproperties $.modifiers[BonesProDemo]
【結果】
.use_inertia : boolean
.use_oscillation : boolean
.use_stack : boolean
.use_parabones : boolean
.use_dual_quaternion : boolean
.use_linked : boolean on off
.bone_sync : boolean
.mirror_plane : integer
.mirror_flip : boolean
.mirror_offset : float
.mirror_threshold : float
.soft_selection : boolean
.soft_radius : float
.use_edge_distance : boolean
.edge_distance : integer
false

【それを元にパラメータは操作できました】
$.modifiers[#BonesProDemo].use_stack = off

【実行】
$.modifiers[#BonesProDemo].category
$.modifiers[#BonesProDemo].classID
【結果】
#3d_io_Plugins
#(1623534534, 1946828630)

288 :名無しさん@お腹いっぱい。:2017/07/17(月) 15:50:16.01 ID:ytjApNC/.net
>>286
この手のドキュメントは
<戻り値>関数名 <引数名または型>
みたいに書かれてることが多い
型は説明文に書かれてる場合がある
戻り値のvoidってのは意味のある値は返さないって意味

ちょっと不親切なドキュメントだけど読めなくもない

289 :名無しさん@お腹いっぱい。:2017/07/18(火) 11:42:08.96 ID:+y6a6aPr.net
>>288
解説ありがとうございます。何となくな理解だったので助かりました。
あれから色々試していくつか分かってきたのですが、根本的に合っているのか謎で手探り状態なのですが、ご報告します。

・Nameはstringにしろとエラー文で言われました。maxscriptのヘルプ通り、文字列 string値でした。

・Bone選択は描画を更新しないと反映されないようで、以下のような処理が必ず実行されます。http://doc.bonespro.com/MAXScript.htmlの関数説明文にそのようなことが書いてありました。
【必ずBone選択時に実行される処理】
$.modifiers[#BonesPro].use_oscillation = on
max views redraw

・また、Boneの操作のためにはLayerにアクセスする必要がありそうでした。実行:$.modifiers[#BonesPro].BonesPro.num_bones()結果:場所は <MixinInterface:BonesPro>と表示されます。
http://help.autodesk.com/view/3DSMAX/2016/JPN/?guid=__files_GUID_78B79975_7BA5_4A03_8FEF_27E78D14B575_htm
$.modifiers[#BonesPro].BonesPro.num_bones()のように単純にやるだけではダメで、Layerの方も考慮しないといけないぽく、立ち止まってます。

290 :名無しさん@お腹いっぱい。:2017/07/18(火) 11:42:44.79 ID:+y6a6aPr.net
>>288
以下はテスト時のログ


[実行]

$.modifiers[#BonesPro].BonesPro.num_bones()
----------------------------------------------------------
$.modifiers[#BonesPro].BonesPro.bone_select_all()

----------------------------------------------------------
BonesPro.bone_select_all()
----------------------------------------------------------
BonesPro.bone_select_all(1)




[結果]

-- 未知のプロパティ : "num_bones()" 場所は <MixinInterface:BonesPro>
----------------------------------------------------------

OK

----------------------------------------------------------
-- 引数のカウント エラー : bone_select_all には 1 が必要です、0 を受け取りました


----------------------------------------------------------
-- ランタイム エラー: オブジェクトにこのインタフェースが実装されていません : BonesPro

291 :名無しさん@お腹いっぱい。:2017/07/18(火) 14:23:18.04 ID:QbqZQpNF.net
>>289
MixinInterfaceってのは簡単に言えばA(BonesProインタフェース)に実装された関数num_bonesを別のB(モディファイア)でも共有して利用するための仕組みのこと

A
└num_bones
B(Aを継承)

プラグイン内部をこんな感じで実装すると

B.num_bones

こんな感じでmaxscriptではAとBの違いを意識せずに使える

手元にプラグインがないから推測になるけど
$.modifiers[#BonesPro].bone_select_all()
みたいに書けばいいはず

292 :名無しさん@お腹いっぱい。:2017/07/18(火) 15:49:51.54 ID:+y6a6aPr.net
$.modifiers[#BonesPro].bone_select_all()でBone全選択行けました。
http://www.bonespro.com/download-order/からデモ版でやっていたので、それで出来なかったっぽいです。ライセンス版の方で動きました。ありがとうございます。

名前選択の方も、-- 変換できません : "Bone001" 入力: Boolean といったエラーメッセージをもとにtrue or false を入れてみたら動きました。

名前の指定で選択
$.modifiers[#BonesPro].BonesPro.bone_select_name "Bone001" true
名前の指定で選択解除
$.modifiers[#BonesPro].BonesPro.bone_select_name "Bone001" false

ありがとうございます。

この"Bone001"を配列に置き換えてfor文でループ処理して複数でも行けるようにしてみました。

A = #("Bone001","Bone002")
print A[1]
for i = 1 to 2 do (
$.modifiers[#BonesPro].BonesPro.bone_select_name A[i] true
)

ありがとうございます。大変勉強になりました。

293 :名無しさん@お腹いっぱい。:2017/07/18(火) 15:52:50.34 ID:+y6a6aPr.net
>>291
MixinInterfaceの解説はヘルプ見てもチンプンカンプンだったので、ありがとうございます。
まだ何となくですが、分かった気がしますw
色々ありがとうございました。

294 :名無しさん@お腹いっぱい。:2017/12/30(土) 17:47:26.45 ID:Hp7G0Fs4.net
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

T7Y1UVEC4V

295 :名無しさん@お腹いっぱい。:2018/04/11(水) 16:00:31.15 ID:MPrHuaEE.net
T7Y1UVEC4V

296 :名無しさん@お腹いっぱい。:2020/04/05(日) 21:50:59.57 ID:SrCbsgAu.net
はいはい、カンペですよー

http://www.thecgschool.com/images/Tutorials/MAXScript_Cheat_Sheet.pdf

297 :名無しさん@お腹いっぱい。:2020/12/29(火) 00:40:30.11 ID:pD7KEqv1.net
仕事納め保守

298 :名無しさん@お腹いっぱい。:2023/09/24(日) 16:29:05.79 ID:7jcy0M4I.net
豪華な朝ご飯を食べた

107 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★