このトピックでは、セーフ シーン スクリプト実行機能によって埋め込まれたスクリプトでブロックされるすべてのコマンドの一覧を表示します。
MAXScript のコマンド
[基本設定](Preference Settings)ダイアログ ボックスの[セーフ シーン実行](Safe Scene Execution)で[MAXScript システム コマンドをブロック](block MAXScript system commands)オプションが選択されている場合、次の MAXScript コマンドは埋め込まれたスクリプト内では実行できません。
- cfgMgr.deleteKey
- cfgMgr.deleteSection
- cfgMgr.putFloat
- cfgMgr.putFloatArray
- cfgMgr.putInt
- cfgMgr.putIntArray
- cfgMgr.putString
- createOLEObject
- CustomFileStream.deleteStream
- CustomFileStream.setStreamFlags
- CustomFileStream.writeStream
-
CustomFileStream.writeStreamArray
- DOSCommand
- dragAndDrop.globalEnableDragAndDrop
- dragAndDrop.enableDragAndDrop
-
dragAndDrop.dropPackage
-
dragAndDrop.downloadPackage
-
dragAndDrop.DownloadUrlToDisk
- globalVars.remove
- HiddenDOSCommand
- internet.CheckConnection (url: が指定されている場合)
- LoadDllsFromDir
- macros.load
-
macros.new
- registerOLEInterface
- registry.createKey
- registry.deleteSubKey
- registry.deleteKey
- registry.deleteValue
- registry.flushKey
- registry.setValue
- releaseAllOLEObjects
- releaseOLEObject
-
SceneConverter.LoadConversionPreset
- SetDir
- ShellLaunch
-
systemTools.setEnvVariable
- UIAccessor.CloseDialog
- UIAccessor.PressDefaultButton
- UIAccessor.PressButton
- UIAccessor.PressButtonByName
- UIAccessor.SetWindowText
- UIAccessor.SendMessageID
- UIAccessor.SendMessage
-
windows.postMessage
-
windows.sendMessage
注: これらのコマンドは、execute()、executeScriptFile()、fileIn()、readValue()、または readExpr() から呼び出された場合のように、シーンに埋め込まれたスクリプト内で実行されるスクリプトまたはスクリプト ファイルから呼び出された場合にもブロックされます。コマンドがスクリプト化されたカスタム アトリビュートに含まれている場合もブロックされます。
ActiveX または dotNet コントロールを含むロールアウトの表示は、その定義がシーン埋め込みスクリプト内にある場合はブロックされます。
macroscript 定義キーワードはブロックされます。
これらのファイル メソッドは、すべての場合でブロックされます。
-
deleteFile - 3ds Max Temp ディレクトリ内のファイルを除くすべてのファイルでブロックされます。
-
removeDir - 3ds Max Tempディレクトリ内のディレクトリ以外のすべてのディレクトリでブロックされます。
-
openEncryptedFile
- encryptScript
- encryptFile
- setFileAttribute
これらの内部関数である systemTools のみがブロックされます。
-
systemTools.AllocateMemory
- systemTools.ReleaseMemory
-
systemTools.GenerateMiniDumpAndContinue
- systemTools.SetMiniDumpContents
- systemTools.PB2_AllNoRefSafePointersTestingDisabled
- systemTools.PB2_AllNoRefSafePointersTestingDisable
-
systemTools.SetBigMiniDumpContents
getUserPropVal() から評価された文字列は、埋め込まれたスクリプトとみなされ、ブロックされたコマンドを含んでいる場合はブロックされます。これは、getUserPropVal() 自体が埋め込まれたスクリプト内にあるかどうかに関係なく発生します。
特定の拡張子またはファイルでブロックされている関数
保護された拡張子を持つ保護されたファイルおよびファイルの修正は、次のファイル メソッドではブロックされます。
-
fopen (読み込み専用で開くモード r、rt、rb は常に許可されます)
-
openFile (読み込み専用で開くモード r、rt、rb は常に許可されます)
- createFile
- openLog
-
copyFile
-
renameFile
-
delIniSetting
-
setINISettings
保護されたファイルは次のとおりです。
- 3dsmax.ini
-
PackageContents.xml
- Plugin.ini
- Plugin.UserSettings.ini
- PhotometricLightTemplates.ini
- PhysicalMaterialTemplates.ini
- コマンドライン引数によって指定されたカスタム 3dsmax.ini および plugin.ini ファイル
保護されている拡張子は、.bashrc、.bat、.bin、.bmf、.bmi、.bms、.cmd、.com、.cpl、.dla、.dlb、.dlc、.dle、.dlf、.dlh、.dli、.dlk、.dll、.dlm、.dln、.dlo、.dlr、.dls、.dlt、.dlu、.dlv、.dlx、.dly、.dlz、.exe、.flt、.gadget、.gup、.inf1、.ins、.inx、.isu、.job、.jse、.lnk、.mcr、.ms、.msc、.mse、.msi、.msp、.mst、.mxs、.mzp、.paf、.pif、.ps1、.py、.pyc、.pyd、.pyo、.pyw、.reg、.res、.rgs、.scr、.sct、.shb、.shs、.u3p、.vb、.vb3、.vbs、.vbscript、.ws、.wsf、.wsh。
注: 3ds Max によってファイル名が統合され、オペレーティング システムによって無視された文字が破棄された後、ファイルがブロックされているかどうかを判断します。たとえば、末尾のピリオドはすべて破棄されるため、ファイルのプレフィックス「.ms...」は「.ms」とみなされます。
特殊なケース ファイル メソッド:
- fileIn - .ms、.mse、および .mxs 以外の拡張子を持つすべてのファイルはブロックされます。
- executeScriptFile - .ms、.mse、.mxs 以外の拡張子を持つすべてのファイルに対してブロックが実行されます。.py および .pyw に対して[Python スクリプトをブロック](Block Python Scripts)オプションがオフになっている場合はブロックされません。
保護されたファイルの場所
[MAXScript システム コマンドをブロック](Block MAXScript system commands)を有効にした場合、ファイルシステムに書き込むことができるすべてのコマンドは、3ds Max がプラグインとスクリプトをロードする次の場所にアクセスできなくなります。
- 3ds Max インストール ディレクトリ
- User Tools ディレクトリ(通常は C:¥Users¥<ユーザ>¥Autodesk¥3ds Max <年>¥User Tools)
- [ユーザ パスとシステム パスを設定](Configure User and System Paths)ダイアログ ボックス内の[他スクリプト](Additional Scripts)、[追加のスタートアップ スクリプト](Additional Startup Scripts)、および[追加マクロ](Additional Macros)で定義されたユーザ スクリプトの場所(MAXScript では、#userScripts、#userStartupScripts、および #userMacros)。
- plugin.ini や Plugin.usersettings.ini で定義される、-p コマンドライン オプションを指定して起動したときに 3ds Max に渡される、または ADSK_APPLICATION_PLUGINS 環境変数で定義されるプラグイン関連のディレクトリの場所
- ProgramData ディレクトリ(通常は C:¥ProgramData)
- %LOCALAPPDATA%¥Autodesk¥ApplicationPlugins¥ ディレクトリ
Python コマンド
[基本設定](Preference Settings)ダイアログ ボックスの[セーフ シーンの実行](Safe Scene Execution)で[Python スクリプトをブロック](Block Python scripts)オプションを選択すると、埋め込まれたシーン スクリプトから呼び出されたすべての Python コマンドがブロックされます。
.NETコマンド
[基本設定](Preferences Settings)ダイアログ ボックスの[セーフ シーンの実行](Safe Scene Execution)で、[サードパーティの .NET コードをブロック](Block 3rd Party .NET Code)オプションが選択されている場合、3ds Max プラグインに付属している、または 3ds Max で使用されているシーン スクリプトを除くすべての .NET フレームワーク クラスが埋め込みシーン スクリプトから実行されるとブロックされます。
さらに、MAXScript コマンド dotNet.loadAssembly() がブロックされます。
これは、許可される(ホワイトリストに登録された) .NET タイプのリストです。それ以外はすべてブロックされます。