X

MAXSCRIPT_Vol1

101
垢版 |
04/12/04 01:19:32ID:5lu9hJHF
MAXSCRIPTに関するQ&Aのためのスレッドです。

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

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

2005/05/18(水) 12:46:43ID:9vmhxcFV
>>157
dependsOnてカレントフレームでScriptを評価させるだけでないの?
次フレームに進めれば評価されるわけだから、別にdependsOnつかわなくても成立しない?
操作をダイレクトにしたい(いちいち次フレームに進めて評価させるのかったるい)ってことだけでdependsOnつかってるだけ?
2005/05/18(水) 15:46:45ID:JQV997Dc
dependsOn $Point01.transform.controller;

とかすると従属関係が明確になるみたいですよ?太字になる。
効率上がるしね

>>162
いやーすまんこ(>_<ゞ

スクリプトコントローラーが言う事きかなくて・・・最初はそれだけ
教えてもらってとってもブレイクスルー♪
2005/05/18(水) 16:45:33ID:9vmhxcFV
>>164
コーディングスタイルの問題なんだけど、maxScriptの場合、式の末尾に;っていらなくても大丈夫じゃない。
でも、人のコード読むときは、;があると随分読みやすいよね。
特にif文やswich文なんかだと。
なんで、このスレの住人だけでも文末は;をつけよう推奨してよん。
2005/05/20(金) 02:37:13ID:556nVrKr
>>165
 お 断 り だ ! ;

2005/05/22(日) 22:06:14ID:JifNFWYR
IKで作った角度をmaxscriptでアクセスできないとかぶーたれてたわけですが
coordsys で変換軸を指定してなかったのが敗因だったもようです

お手数かけましたw
168名無しさん@お腹いっぱい。
垢版 |
2005/10/22(土) 22:46:03ID:WHmRJmqZ
いえいえ
2006/05/31(水) 23:02:59ID:Frdw45AH
現在 max のプラグインを製作中の者です。
NURBS の曲面とある座標をとの距離を求めたいのですが、
どのようにしたらよいのでしょうか?
170名無しさん@お腹いっぱい。
垢版 |
2006/06/11(日) 18:46:39ID:syds5UWa
どうなのよ
171名無しさん@お腹いっぱい。
垢版 |
2006/09/12(火) 02:02:58ID:DfRZzxQz
$.material.diffusemap.filename = "c:/bbb.jpeg"
)
)
2006/09/12(火) 21:44:49ID:L/uFbCQg
>>171

スラッシュはエスケープ文字だから、
"c://bbb.jpeg"
としないと駄目だよw
173名無しさん@お腹いっぱい。
垢版 |
2006/09/17(日) 23:43:17ID:4QiIeya5
シンプルなサンプルコードをたくさん読みたいのですが、
適当なサイトが見つかりません。
オブジェクトをひとつずつ処理するとか、位置情報を書き出すとか、
そういうシンプルなのどこかに無いでしょうか?
2006/09/18(月) 06:05:06ID:NZR4a7It
レコーダーの記録見たら?
175名無しさん@お腹いっぱい。
垢版 |
2006/09/18(月) 18:09:27ID:H/4zw7Uu
いろいろ探したけど、さとうさんのしか見つからないです。
そもそも、公開するのが恥ずかしいくらいの短いスクリプトは、誰も公開したがらないってことなんでしょうか?...。

2006/09/20(水) 14:02:54ID:++ZisKGN
>>173
公開するまでもないからなw
それに大抵リファレンスとmaxに付属してるscriptサンプルに載ってるし

>>174
対応してない命令も多いし、バグコード吐くことも多いよ
まぁ、とっかかりには悪くない

>>173
何が知りたい?
教えてやるぜ。
-----選択してるオブジェクトの位置情報書き出し---------------
debug = newScript()

for i in selection do
(
local TM = i.objectTransform
format "name:% pos:% rot:% scale:% \n" i.name TM.translationpart TM.rotationpart TM.scalepart to:debug
)
2006/09/21(木) 00:03:54ID:M6XjoFd2
8で付いたデバッガって皆使ってる?
いまいち使いどころ(使い方も)がよく分からんのだが・・・

こういう場合に使うと(・∀・)イイ!!って例ある?
178名無しさん@お腹いっぱい。
垢版 |
2006/09/21(木) 01:15:56ID:bMeMN2Nk
>>176
ありがとうございます。
こういう数行のやつがとっかかりやすいですね。

2006/09/21(木) 03:45:45ID:3m0pdSEO
>>177
関数を再帰的に呼び出してる時のチェックや、構造体や配列の中身をウォッチする時とか。
2006/09/21(木) 21:47:01ID:X8sG1n1e
>>179
そんなもんformat使った方が自由度高くていいじゃん・・・って思ってしまう。
もっとデバッガにしかできない便利な使い方ってないの?
2006/09/21(木) 22:34:43ID:rgN92/H0
printデバッグのほうが面倒だと思うけど・・・

>もっとデバッガにしかできない便利な使い方ってないの?
breakして変数書き換えとか
2006/09/22(金) 14:20:03ID:WoZcG4Db
>>180
逆に聴くけど、何があったら便利だとおもってるの??

>>181
そうだね、break使えるのは嬉しいね。
183180
垢版 |
2006/09/22(金) 21:42:41ID:2Ox504s/
>>182
それが分からないから聞いてるんだけど・・・
2006/09/23(土) 05:55:08ID:qYzXG9uc
>>180は無理にデバッガ使わなくていいよ
自分でいろいろ使って何が便利かわからないなら、しょうがないwww

185名無しさん@お腹いっぱい。
垢版 |
2006/09/24(日) 21:32:03ID:HfQkFOvG
UVWMapモデファイアのギズモを90度回転させるにはどう書いたらいいっすか?
2006/09/24(日) 22:18:30ID:LoBkf16C
>>185
$.modifiers[1].gizmo.rotation.x_rotation += 90
2006/09/24(日) 22:51:38ID:zsptAofM
良スレsage
188名無しさん@お腹いっぱい。
垢版 |
2006/09/24(日) 23:12:59ID:HfQkFOvG
>>186
でけました!ありがとうございます。
2006/09/25(月) 12:29:20ID:vhkyfxZ/
>>185
そんくらいマクロレコーダーで吐き出せるだろwww

と思って試したが、
それすら吐き出せないマクロレコーダーに失望した
190名無しさん@お腹いっぱい。
垢版 |
2006/09/25(月) 12:43:51ID:ZFHVi/yy
マクロレコーダーが万能だと思ってる人は、自分でスクリプトを書こうとしたことが無い人ですよ。
2006/09/25(月) 12:51:16ID:6TVfcSJu
ほんとMAXのレコーダーはガチで飾りだよな。。。
2006/09/25(月) 12:55:52ID:v/KT0PWY
ガチムチレーダー搭載
2006/09/25(月) 21:55:45ID:IG1QUNnB
マクロレコーダーが飾りとか言ってる奴は
まだまだ経験不足だと思ったほうがいい。
194名無しさん@お腹いっぱい。
垢版 |
2007/01/06(土) 18:47:38ID:REW6/hxJ
うわぁ、過疎スレですねぇ...。
2007/01/06(土) 21:53:30ID:gtvSVqQa
たしかに過疎ってるな。
しょうが無いから三ヶ月以上前の話題にレスしとくと、
マクロレコーダは飾りじゃないが、肝心な時に役に立ってくれ無かったりする微妙に憎たらしい奴。
2007/01/07(日) 02:48:08ID:CZlb6Lxc
scriptとは行かないまでも
最近式コントローラーとかをなんとか弄って頑張っています。
ハルシノと睨めっこしながらですが・・

そのうちサクサクscript書けるようになりたいです。
2007/04/13(金) 02:41:52ID:Hf/JQ3yi
for i in >>1-196 do
2007/04/14(土) 14:10:18ID:9iJBZ1Wk
-- Syntax error: at >, expected <factor>
-- In line: for i in >>1-196 do
2007/04/14(土) 14:20:28ID:9iJBZ1Wk
(
if (classOf MAXSCRIPT_VOl1)==Array do
  (
   mapped fn resOutput res =
    (
    format "% 名前: % [%] 投稿日:% ID:% \n % \n" res.index res.name res.mail res.data res.id res.text
    )

  resOutput MAXSCRIPT_VOl1
  )
)
200名無しさん@お腹いっぱい。
垢版 |
2007/04/14(土) 14:36:17ID:9iJBZ1Wk
messageBox "保守" title:"名無しさん@お腹いっぱい。" age:true
201名無しさん@お腹いっぱい。
垢版 |
2008/06/19(木) 17:42:15ID:ygr/I/SO
messageBox "保守2" title:"名無しさん@お腹いっぱい。" age:true
2008/07/31(木) 19:09:35ID:MPS0TRxC
exit
2008/07/31(木) 20:32:58ID:tZ0E5dUm
box()
2008/11/05(水) 21:25:54ID:76SQPMp8
良スレage
2008/11/11(火) 16:17:00ID:r6M3elYI
最近maxscriptを触り始めたばかりなのですが、
ttp://kazu001.blog66.fc2.com/blog-entry-146.html
に記載されている
「親ボーンを曲げたら子ボーンも自動的に同じ角度だけ曲がるようにしておけば便利」
が、どのようにすればうまくいくのかが分かりません
分かる方、いっらしゃいましたら教えて下さい
206205
垢版 |
2008/11/11(火) 16:23:04ID:r6M3elYI
>>205
細かい点ですが、
×いっらしゃいましたら → ○いらっしゃいましたら
207名無しさん@お腹いっぱい。
垢版 |
2009/01/19(月) 23:55:14ID:l5zDWz/E
meditMaterials[1]のDiffuse colorの彩度を調整するには
どう書いたらいいんですか?
2009/01/20(火) 03:02:30ID:IZ96qLzi
meditMaterials[1].diffusecolor.saido = <float>
2009/01/20(火) 14:36:49ID:fDmQp2Qg
>>208
同じように書いてみたんですけど、マテリアルエディタの色は変わんないんです。
meditMaterials[1].diffusecolor.saturation = 200にしても彩度が200になんないし。
リスナーには200 OKとか出るんですけど。
何が違うんでしょうか?
2009/01/21(水) 00:46:00ID:Up9QjwNc
>>209
君はリファレンスとか見ない人?
見られない理由でもあるの?
信仰上の理由とか?
2009/01/21(水) 12:03:14ID:9OSkWqRQ
>>210
リファレンスとかネットとかで調べてるんですけど分からなくて。
でもリファレンスに書いてあるんですね。
皆さんもっと熟読してるんですね。
分かりました。
2009/01/21(水) 23:12:58ID:TLS7jrms
>>211
ばっちり書いてあるし別に熟読しなくても直ぐに見つかるよ。

と、突き放してもいいんだけど、初心者のころって確かに
何が分からないかもよく分からなかったり、調べ方すら分からなかったりするよね。

とりあえずそういう人は疑問に思ったらリスナーに以下を入力してみて欲しい。
大抵の場合はこれで突破口が開けるはずだ。

classof <調べたいもの>
show <調べたいもの>
2009/01/22(木) 21:43:33ID:VwRFfo+u
>>212
ありがとうございました。
取りあえずclassof、showをからじっくり探って行こうと思います。
レスくれて感謝です。
2009/02/06(金) 01:11:41ID:AoCDsP5+
ちょっと端的に聞いてみるけれど、モーションデータにオブジェクトを同調させるスクリプト知らまいか?
2009/02/06(金) 02:05:38ID:Nbtx0/3/
モーションデータ
オブジェクト
同調
216名無しさん@お腹いっぱい。
垢版 |
2009/03/06(金) 21:29:06ID:1FYX7vbE
age
217名無しさん@お腹いっぱい。
垢版 |
2009/05/12(火) 22:43:36ID:rv7ZWwOY
コード
(
struct hoge (this)
local foo = hoge()
foo.t = foo
foo
)

出力
(hoge this:<<recursive Struct:hoge>>)

上記コードでメンバ変数 this はメモリ上ではどういう状態なんでしょうか?
プラグインスクリプトの this みたいなのが構造体にもあれば便利だと思うんですが
上記の方法だとメモリの状態がよく分からないので不安です。
218名無しさん@お腹いっぱい。
垢版 |
2009/05/12(火) 22:45:10ID:rv7ZWwOY
訂正
×:foo.t = hoge()
○:foo.this = hoge()
2191
垢版 |
2011/07/16(土) 23:33:46.31ID:dkV8kuJO
http://toki.2ch.net/test/read.cgi/dataroom/1309855042/
220名無しさん@お腹いっぱい。
垢版 |
2011/11/10(木) 00:49:29.40ID:UyZo2+nH
if rot > 0 then
(
rot*2
)
else
(
0
)

rotが0より大きいときにx2してそれ以外は0って感じなんだけど、
これに「rotが90以上の時も0」って加えたいんだけど
どう書けばいいでしょうか?
221名無しさん@お腹いっぱい。
垢版 |
2011/11/10(木) 18:31:49.11ID:HmWVAfBq
「rotが90以上の時も0」を加えるんじゃなくて
「rotが0より大きいとき」じゃなくて「rotが0より大きく尚且つrotが90より小さい」
ってすればよい。
if rot > 0 then

if rot > 0 and rot < 90 then
222名無しさん@お腹いっぱい。
垢版 |
2011/11/11(金) 00:26:28.61ID:IXSZtxDz
ありがとうございます!

仮に、 rot < 90 のときは rot*3 など、結果を3パターン以上出したい時は
どうすればいいでしょうか?
2011/11/11(金) 01:55:48.04ID:65H2mD+M
うおっ
このスレまだ生きてたかw
224222
垢版 |
2011/11/12(土) 00:10:18.50ID:KLAa1gQo
自己解決しました。

else以下にまたif文を入れればよかったのですね。
225名無しさん@お腹いっぱい。
垢版 |
2011/11/29(火) 01:00:23.38ID:iJujN947
max2012で保存されているトラックビューを一括削除するスクリプトを探しています。
(頻繁に削除するので、リストで消すのが面倒)
ハルシノにあったRudeCleanserTrackviewsがそれっぽいのですが、
バージョンが合わないせいか思うような動作をせず、中途半端に残ったりしてしまいます。
全部閉じた状態で実行すれば真っ白になっているようなものを書いていただけないでしょうか?
2011/11/29(火) 01:44:57.26ID:6G8vdm3r
リファレンス見ながら書くから動かなくても文句言わないでね

(
local numTVs = trackviews.numTrackViews()
for i = numTVs to 1 by -1 do
(
if trackviews.isOpen i do trackviews.close i
trackviews.delete i
)
)
2011/11/29(火) 01:53:03.90ID:6G8vdm3r
ごめん、動かなかったので直した
(
local numTVs = trackviews.numTrackViews()
for i = 1 to numTVs where trackviews.isOpen i do trackviews.close i
for i = numTVs to 1 by -1 do
(
local tvName = trackviews.getTrackViewName i
trackviews.delete tvName
)
)
2011/11/29(火) 01:54:46.70ID:6G8vdm3r
ちなみに開いたままでも全部消せるよ
2011/11/29(火) 04:12:31.70ID:iJujN947
>>227
ありがとうございます!
凄い助かります!!
2011/11/29(火) 15:48:20.74ID:7Ob3i+fQ
http://foxrenderfarm.jp/

http://yaplog.jp/foxrenderfarm/archive/11

セルフレンダーファーム会社でございます
価格は驚きほど安いです。使い方もすごく簡単です
はじめてご利用して頂く方にはまた割引差し上げますので
ぜひ一度弊社のホームページをご覧下さいね
231名無しさん@お腹いっぱい。
垢版 |
2012/03/09(金) 13:20:58.35ID:UWqUBMhr
ボーン(biped以外)の表示非表示を切り替えたいんだけど、

(
on execute do
(
case of
(
(hideByCategory.bones == true): (hideByCategory.bones = false)
(hideByCategory.bones == false): (hideByCategory.bones = true)
)
)
)

こうするとBipedまで対象になってしまうのですが、どうカテゴリ分けすればいいでしょうか?
(表示フロータに2つあるボーンオブジェクトの下だけ適用した感じにしたい)
2012/03/09(金) 15:05:45.86ID:w6SaxgOB
hideByCategoryだと無理っぽい気が。
showPropertiesで見てもチェックボックスの有る分のプロパしか見当たらないし。
下のボックス内と追加で出る分のカテゴリ非表示はスクリプトからは無理なんかね。

自前でループさせてclassofでチェックしてボーンだけ非表示になるスクリプトを組むとか。
カテゴリ非表示ほどレスポンスは良くないだろうけど。
2012/03/09(金) 15:12:46.88ID:DUum4bFn
Bipedの表示カテゴリはむかしジオメトリだったのが最近はボーンに変わったんだっけ?
しかもそれが選択フィルタのカテゴリと食い違ってたり

色々面倒だから、最近はカテゴリ表示・非表示よりレイヤーで分類して管理する方法で慣れちゃったなあ
234名無しさん@お腹いっぱい。
垢版 |
2012/06/19(火) 04:36:49.15ID:bhbSvTzB
モーフモデファイヤについて質問です。
選択した複数のモーフオブジェクトの、特定のチャンネルを一括で変更したいのですが、
色々試しても、複数選択した内の一つにしか適用されません。
試したスクリプトです。(チャンネルの2番目を変えるとして)

mph = $.morpher
for i = 1 to selection do
(
WM3_MC_SetValue mph 2 100.0
)



スクリプトは今回初めて学ぶので単純な原因をわかっていないのかもしれませんが、
もしよかったらアドバイスをよろしくお願いします。
2012/06/22(金) 02:54:00.37ID:QmxroByN
1行目
.morpherはモーファーが適用された個別のオブジェクトのプロパティなんで
複数選択した場合には$はオブジェクトセットになるんで
個別の要素に対してそのプロパティでアクセスしないといかん。
ex1) $[1].morpher
ex2) selection[1].morpher

2行目
selectionは現在の選択のオブジェクトセット(配列)なんで
for文で1から配列までって記述はおかしい。
for i = 1 to selection.count do
でiにインデックス入れて
mph = selection[i].morpher
でモディファイア引っ張ってくるか
for i in selection do
でiにオブジェクト入れて
mph = i.morpher
でモディファイア引っ張ってくる
2012/07/23(月) 13:33:07.25ID:CQfkCaq4
スクリプトを学ぼうといろいろチュートリアルやらなんやらを集めてはみたものの、
どれも最初はBOXの作り方なんだよな…

基礎が一番重要なのはわかっちゃいるけど、もうちょっと先からお願いしたいわ…
2012/07/23(月) 14:03:22.92ID:CPiDyMRn
読み飛ばせばいいやん
2012/08/01(水) 20:39:06.10ID:iBfM2Ns7
表示パネル→表示カラーロールアウトで
ワイヤフレームとシェーディングのカラーをそれぞれ変更できますが、
実行するたびにオブジェクトとマテリアルが切り替わるようなスクリプトを書いて欲しいです。
結構頻繁に切り替えるのですが、そのたびにパネルを開くが面倒で…
2012/08/02(木) 02:29:02.11ID:6rgCqgW8
手作業でやれやボケ
2012/08/02(木) 09:02:59.28ID:nppKpiou
書き方が知りたいんじゃなくて書いて欲しいって、どんだけやねん。
2012/08/02(木) 12:35:09.50ID:pjnwXFe7
こんな過疎スレで釣られんな無視だ
2012/08/10(金) 16:44:19.02ID:L9KXrC8I
sage進行で過疎ってる割りにレスは早い…住人はいるんだな
2012/11/12(月) 17:36:06.13ID:pFmIk8Ww
選択した複数のオブジェクトのアニメーションカーブにサイクルやループ属性をつけるスクリプトって可能でしょうか?
カーブエディタが開いているだけで重いので、カーブエディタを開かずにループ属性をつけたいのです
2012/11/12(月) 23:39:54.74ID:JSsC7Orb
可能かどうかも含めてリファレンスに全部載ってるよ
2013/03/15(金) 16:23:15.57ID:3W8hD6Qc
選択中のオブジェクト+子供を全選択するようなスクリプトを書きたいのですが、
スクリプトリファレンスのトレーニングやチュートリアルをみても、選択に関するものが見当たりません…
そもそも"指定したboxを選択する"書き方すらわからない素人ですが、どのあたりを見ればいいでしょうか?
2013/03/15(金) 17:51:32.07ID:Hrrb6kT4
リスナーのマクロレコーダの使用可能にするにチェック入れると、基本的なコマンド類は
リスナーにコマンドが現れるんで、そのコマンド見てMaxScriptのヘルプで検索する。

クリックしてオブジェクト選択すればリスナーに
select $Box001
とか出るんでselectでヘルプ検索すればノードの共通プロパティの所に
選択関係のコマンドが載ってる。

あと子供の選択はデフォルトだと[PageDown]複数の子を選択は[CTRL]+[PageDown]だったと思うんで
(俺は既にデフォルトから変えてるんでもしかして違ったら自分でテキトーなショトカに割り当てるかメニューに出してやって)
それ押せばマクロレコーダに子供を選択するコマンドが出ると思う。
2013/03/15(金) 18:11:14.83ID:3W8hD6Qc
>>246
そのマクロレコーダーなんだけど、使用可能にしてあるのに何も出ないんだよ…
2013/03/15(金) 18:45:57.66ID:3W8hD6Qc
複数の子を選択なんてあったのか…今回はそれで十分でした。ありがとう。
レコーダーの件はわからないけど…
2013/03/15(金) 22:04:04.43ID:C2FvTETZ
maxのマクロレコーダーは使い物にならないことがまれによくある
2013/03/19(火) 19:26:13.50ID:X8YFO+Ym
for i in objects do

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

objects の代わりに $* だと拾えるのは分かったんだけど、
昔に別な書き方でもできた気が。
$* 以外の書き方って無かったでしたっけ?
2013/03/19(火) 20:28:59.89ID:X8YFO+Ym
>みたいな書き方だと、メッシュ化してないプリミティブオブジェクト(普通のSphereとかBoxとか)が拾えないみたいです。

あれ、拾える?
勘違いしたかも。ごめん。
2013/03/20(水) 02:26:31.86ID:aKXLPO5z
>>251
一度くらいはリファレンスに目を通しましょう

objectsはObjectSet値
$*はPathName値

条件次第で同じ動作をするけど明確に異なる値です
2013/03/20(水) 02:29:51.60ID:eBhQm1NF
異なる値かどうかとか、全く質問と関係ないですよね。
2013/04/08(月) 01:53:06.75ID:5QN07Uff
複数のスクリプトのバージョンまとめて更新したいんだけど、なんかいい方法ある?
今のとこ一つずつビューポートに投げるしか方法思い浮かばなくて。
255254
垢版 |
2013/04/09(火) 02:40:30.40ID:Rf+a1HI9
事故解決しますた。
AppDataのほうにスクリプトあるとmacroscriptsに入れても更新されないのね。
2013/09/20(金) 13:22:13.08ID:J23xaoqY
基本設定の自動バックアップのチェックのオンオフをスクリプトで制御したいのですが、
どこにアクセスしたら良いでしょうか?
2013/09/20(金) 14:19:37.97ID:seUHEVg3
autosave.Enable = true
2013/09/20(金) 14:47:55.40ID:J23xaoqY
ありがとうございます!
2013/09/20(金) 15:12:16.09ID:J23xaoqY
(
 (
 if (autosave.Enable = true) then autosave.Enable = false
 else autosave.Enable = true
 )
)

のようにして、有効の時に押せば無効になるようにしたのですが、
無効の時に押しても有効になりません…
書き方がおかしいのでしょうか?
2013/09/20(金) 16:39:14.32ID:seUHEVg3
×if (autosave.Enable = true)
○if (autosave.Enable == true)
2013/09/23(月) 17:48:48.98ID:9DKAKKE/
Boolのトグルにif文はいらんよ
autosave.Enable = not autosave.Enable
262260
垢版 |
2013/09/24(火) 01:00:49.87ID:mn/UtfSO
あ、そりゃそうだ。
2013/09/27(金) 18:56:32.77ID:TYSRycw4
レイヤーマネージャーのボタンのように、一回押すとオレンジになり
もう一回押すと戻るようなマクロスクリプトはどのように書いたらよいでしょうか?
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況