|
|
|
@ -1,22 +1,24 @@
|
|
|
|
import os
|
|
|
|
import os
|
|
|
|
from pymxs import runtime as rt
|
|
|
|
from pymxs import runtime as rt
|
|
|
|
|
|
|
|
|
|
|
|
def configure_plugin():
|
|
|
|
def force_menu_load():
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
print("=== CONFIGURANDO COMPONENTES INTERNOS VR4LIFE ===")
|
|
|
|
# 1. Caminho onde o arquivo foi copiado pelo script principal
|
|
|
|
|
|
|
|
pasta_macros = rt.pathConfig.getDir(rt.name("userMacros"))
|
|
|
|
# 1. Define o caminho onde os scripts foram salvos (o diretório atual deste arquivo)
|
|
|
|
pasta_enu = os.path.dirname(pasta_macros)
|
|
|
|
plugin_dir = os.path.dirname(os.path.realpath(__file__)).replace("\\", "/")
|
|
|
|
caminho_mnx = os.path.join(pasta_enu, "en-US", "UI", "vr4life.mnx")
|
|
|
|
|
|
|
|
|
|
|
|
# 2. Adiciona a pasta do plugin ao PATH do Python do 3ds Max
|
|
|
|
|
|
|
|
# Isso permite que você dê 'import vr4life_engine' de qualquer lugar
|
|
|
|
|
|
|
|
import sys
|
|
|
|
|
|
|
|
if plugin_dir not in sys.path:
|
|
|
|
|
|
|
|
sys.path.append(plugin_dir)
|
|
|
|
|
|
|
|
print(f"Path adicionado ao Python: {plugin_dir}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 3. Se você precisar registrar algum atalho de teclado ou MacroScript, faça aqui.
|
|
|
|
if os.path.exists(caminho_mnx):
|
|
|
|
# Exemplo: Registrar o comando que o botão do menu vai chamar
|
|
|
|
print(f"Carregando menu: {caminho_mnx}")
|
|
|
|
|
|
|
|
# Comando para carregar o arquivo de menu imediatamente
|
|
|
|
|
|
|
|
rt.menuMan.loadMenuFile(caminho_mnx)
|
|
|
|
|
|
|
|
rt.menuMan.updateMenuBar()
|
|
|
|
|
|
|
|
print("Menu VR4Life carregado com sucesso!")
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
print("Arquivo .mnx ainda não encontrado no destino final.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 2. Registrar a Macro (para o botão saber o que executar)
|
|
|
|
|
|
|
|
plugin_dir = os.path.dirname(os.path.realpath(__file__)).replace("\\", "/")
|
|
|
|
macro_script = f"""
|
|
|
|
macro_script = f"""
|
|
|
|
macroScript VR4Life_Launcher
|
|
|
|
macroScript VR4Life_Launcher
|
|
|
|
category:"VR4Life"
|
|
|
|
category:"VR4Life"
|
|
|
|
@ -26,18 +28,11 @@ tooltip:"Abrir VR4Life"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
rt.execute(macro_script)
|
|
|
|
rt.execute(macro_script)
|
|
|
|
print("MacroScript VR4Life_Launcher registrado com sucesso.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 4. Forçar o 3ds Max a atualizar a interface para o menu aparecer
|
|
|
|
|
|
|
|
# (Opcional, às vezes o Max precisa reiniciar para ler o .mnx novo)
|
|
|
|
|
|
|
|
rt.menuMan.updateMenuBar()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print("=== PLUGIN VR4LIFE PRONTO PARA USO ===")
|
|
|
|
|
|
|
|
return True
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
except Exception as e:
|
|
|
|
except Exception as e:
|
|
|
|
print(f"Erro na configuração final: {str(e)}")
|
|
|
|
print(f"Erro ao carregar menu: {str(e)}")
|
|
|
|
return False
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
if __name__ == "__main__":
|
|
|
|
configure_plugin()
|
|
|
|
force_menu_load()
|