問題タブ [maxscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
12638 参照

3dsmax - Maxscript を使用して 3dsmax パースペクティブ ウィンドウの FOV をプログラムで変更するにはどうすればよいですか?

パースペクティブ ビューポートの FOV プロパティにアクセスする必要があります。これは、ターゲット カメラとフリー カメラに関連付けられている FOV プロパティと同じではありません。

非プログラム的に FOV プロパティにアクセスするには、ビューポート名 (各ビューポートの左上) を右クリックし、[構成] に移動し、[パースペクティブ ユーザー ビュー] で FOV を変更できます。

0 投票する
1 に答える
652 参照

.net - カスタム 3ds Max プラグインから dotNetObject 値を返す方法はありますか?

バックエンドのマネージド コードと連携する 3ds Max 用のカスタム プラグインがあります。状況によっては、管理対象オブジェクトを MAXScript に転送して直接対話させたい、つまり関数の 1 つからラップされたオブジェクトを返したい場合があります。

MAXScript は、Max に含まれている別のプラグイン (msxdotNet) (私は 3ds Max 2008 を使用しています) を介して、管理対象オブジェクトを比較的うまく直接操作できます。基本的にオブジェクトをラップし、レイト バインド コールにリフレクションを使用しますが、完全に自己完結型であり、sdk の公開はありません。プラグイン dll 自体も、いくつかのトップレベルのスクリプト化されたクラスを追加するために Max が必要とする最小限のインターフェース以上のものを公開しません。

スクリプト化されたクラスにより、コンストラクターを介して新しいオブジェクトをインスタンス化できます

私の場合、使用したいオブジェクトのインスタンスが既にあります。

プラグイン内から dotNetObject ラッパーのインスタンスを作成して Max に戻す方法はありますか?


理想的には、次のような (C++/CLI) シグネチャを持つヘルパー関数が必要です。

私ができるいくつかの基本的な保証:

  • msxdotNet プラグインは既に読み込まれています。
  • msxdotNet プラグインとマネージ アセンブリは同じ AppDomain にあります。

msxdotNet プラグインのソースはsdkサンプルとして含まれていますが、管理/健全性のために、それを変更して再コンパイルすることはできません。

0 投票する
2 に答える
1722 参照

scripting - 3DsMaxマテリアルを正しく拡張するにはどうすればよいですか

基本的に、3Ds Max 9の「標準」マテリアルにさらにいくつかのプロパティを追加しようとしています。実際にはmaxスクリプトを使用してこれを実現できましたが、エクスポータが壊れています。

エクスポータは、通常の「標準」マテリアルでスキンされたものに対しては正常に機能しますが、拡張バージョンでは、基本クラスのプロパティがエクスポータから隠されているようです。

私がこれまでに持っているのはこれです:

変数を自分で宣言することで、エクスポーターはそれらを読み取ることができましたが、これは実際にはUIによって設定されている値にリンクしていませんでした。これを解決するために、「on XXX get / set」イベントを使用して、非表示のアイテムにリンクしました。そのため、これらは正しく機能するようになりましたが、拡散反射光や鏡面反射光などのマテリアルマップは機能しません(これが、AFAIKをテクスチャリングする唯一の方法です)。

これらのいくつかの設定をマテリアルタイプに追加して、「デリゲート」クラス内のすべてのデータもエクスポートするようにするにはどうすればよいですか(基本的な継承は要求するには多すぎます)?

ありがとう

0 投票する
6 に答える
2748 参照

git - git status を解析するか、gitsharp を使用する必要がありますか?

git をプロダクション パイプラインに統合して、3dsmax ファイルをステージングしたいと考えています。TortoiseGit を介して git を操作しても問題ありませんが、Maxscript から Git と通信してカスタム メニュー コマンドを 3dsmax に追加したいと考えています。

出力テキストを解析git statusしてフォルダーの状態を判断する必要がありますか、それともラッピング ツールを使用して git と正しく通信する必要がありますか?

gitsharpMaxscript から dotNet オブジェクトを呼び出すのは簡単なので考えていましたが、外部の dotNet プログラムは使用しませんでした。

0 投票する
2 に答える
1252 参照

animation - 経時的な MaxScript エクスポート頂点

ねえ、時間の経過とともにアニメーション化されるスキン メッシュがあります。頂点をエクスポートするための簡単なエクスポート スクリプトを作成しています。

フレームごとに頂点を出力するにはどうすればよいですか?

getVert を使用して頂点を取得していますが、どのフレームから頂点を取得するかを指定するにはどうすればよいですか?

ありがとうASH

0 投票する
2 に答える
1830 参照

memory-leaks - 3ds max での既知のメモリ リーク?

一連のアニメーションをフレームにレンダリングするスクリプトを 3ds max に設定しました。これを行うには、すべてのマテリアルを含むファイルを開き、アニメーションを (bip として) フィギュアにロードしてから、レンダリングします。

次のファイルを開くことができず、最終的にスクリプトが失敗するという問題が発生していました。max がすべてのシステム メモリを消費していました。もちろん、max を閉じるとメモリが解放され、スクリプトを続行できました。

自分のスクリプト内でメモリ リークが発生することを期待して、変数をチェックアウトしましたheapfree。自分自身の (maxscript) コード内でメモリ リークが発生することを期待していましたが、すべてのアニメーションの後、空き領域の量は同じでした。

次に、そのメモリをすべて消費しているのは 3ds max である必要があります。アニメーションからアニメーションに保存する必要のある max は何もありません。そのメモリを解放するために max を取得する方法はありますか? resetMaxFile()(シーン内のすべてのオブジェクトを手動で削除しようとしました)。max が制御不能になる既知の操作セットはありますか?

0 投票する
4 に答える
4690 参照

3dsmax - 3ds maxのオブジェクトにプログラムでランダムな色を割り当てる方法は?

3ds maxのオブジェクトにプログラムでランダムな色を割り当てる方法は?

0 投票する
1 に答える
748 参照

3dsmax - -mxsコマンドラインスイッチは常に3DSMaxを閉じますか?

コマンドラインから非常に単純なスクリプトコマンドを実行したいのですが、-mxsスイッチはまさにそれを実行しているように見えます。ただし、使用するたびに、3DSMax2011はその後自動的にシャットダウンします。quitMax呼び出しを使用するかどうか。これを回避する方法はありますか?

0 投票する
4 に答える
5257 参照

3dsmax - maxスクリプトを使用して単一のレンダリングを段階的に保存するにはどうすればよいですか

モデリング中はフレームをレンダリングして進行状況を表示するのが好きです。レンダラーをプログラムして、レンダリングをレンダリング出力として保存し、その末尾に増分番号を追加したいと考えています。そのため、アニメーションのレンダリング シーケンスと同じように、最後にいくつかのレンダリングを行いますが、フレームを作成することにしました。これの目的は、メイキングの作成プロセスを自動化することです。

0 投票する
1 に答える
2065 参照

3dsmax - 編集可能なポリオブジェクトの法線を再計算します

私はエクスポーターに取り組んでいますが、私が立ち往生している問題は通常の計算です。

私はこれについて多くの投稿を読んでいますが、「getnormal」関数が意図したとおりに機能していないようです。(これは私のエクスポーターにとって間違った結果を生み出すものです)。

したがって、手動で再計算する必要があります。

問題は-どうすればこれを行うことができますか?法線を計算する部分は次のようになります。

関数を提供する場合は、以下のコードを覚えておいてください。すべてを書き直したくないのです。

前もって感謝します。