Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
madchem

Select Viewport Camera

Recommended Posts

ciao ragazzi, sto smanettando con i tutorials di phillix (grande!)

Vorrei riuscire a :

- selezionare la telecamera della vista attiva

- selezionare il target della telecamera della vista attiva

non trovo nulla da nessuna parte, o forse non ho capito io, boh? cmq mi sarebbe estremamente utile piazzarli in due pulsanti o da tastiera soprattutto in questo periodo che faccio degli inserimenti su foto e muovo molto la telecamera.

Grazie a tutti per il vostro aiuto!!!!

Share this post


Link to post
Share on other sites

:TeapotBlinkRed::TeapotBlinkRed::TeapotBlinkRed:

Per la prima domanda Non mi viene in mente nulla...

Per seconda: è molto + semplice di quello che pensi...

select $.Target

:D:D:D:D


Edited by micle

Share this post


Link to post
Share on other sites

Grazie ragazzi, ma non mi sono spiegato io: ho molte telecamere in scena, e vorrei due bottoni nell'interfaccia o meglio due scorciatoie da tastiera per passare dalla camera al target velocemente. Se uso h è ancora lento, allora potrei fare tasto dx in alto > select camera o select camera target, se uso select $.target mi seleziona tutti i target compreso quello della luce. Il massimo che sono riuscito a fare è selezionare tutte le telecamere e poi deselect S.target. Ho provato con viewport.getCamera, me lo prende ma non seleziona la camera, avete qualche idea? Grazie ancora.

Share this post


Link to post
Share on other sites

Se ho ben interpretato, questo pezzetto di codice ti permette di selezionare al volo la camera corrispondente alla vista corrente e di passare da camera a target (sempre con lo stesso comando che mi sembra piuttosto comodo).

rollout slecetCamTarget "Camera Selection/Switch" (

button getCam "Get/Switch"

local currentCamera = undefined

local currentTarget = undefined

on getCam pressed do (

	local _cam = viewPort.getCamera()

	if _cam != undefined then (

		if not isDeleted _cam then (

			currentCamera = _cam

			currentTarget = _cam.target

			if selection[1] != currentCamera then select currentCamera

			else select currentTarget

		)

	)

)

)

addRollout slecetCamTarget

Eseguilo e ti comparirà un rolloutino nella colonna degli scripts, sappimi dire se è ciò che intendi :)


Edited by la_piaga

Share this post


Link to post
Share on other sites

Piccola modifica per evitare che il meccanismo di swirtching si perda al cambio di viewport mantenedo camera o target selezionati:

rollout slecetCamTarget "Camera Selection/Switch" (

button getCam "Get/Switch"

local currentCamera = undefined

local currentTarget = undefined

on getCam pressed do (

	local _cam = viewPort.getCamera()

	if _cam != undefined then (

		currentCamera = _cam

		currentTarget = _cam.target

		if selection[1] != currentCamera then select currentCamera

		else select currentTarget

	)

	else if selection[1] == currentCamera then select currentTarget

	else if selection[1] == currentTarget then select currentCamera

)

)

addRollout slecetCamTarget

Scusa ma l'ho scritto di getto.

Share this post


Link to post
Share on other sites

PERFETTO! la_piaga grazie mille è quello che volevo! Adesso oltre ad usarlo cercherò di capire come funziona, ma quello dipende dal mio approfondimento di maxscript :) voglio mettere il pulsante in un menu e collegare un pulsante da tastiera.

Share this post


Link to post
Share on other sites

Per mettere la shortKey ti do una mano perchè il procedimento è un poco faraginoso. Per prima cosa devi fare una piccola modifica allo script in modo da portatare su di una funzione il meccanismo principale:

rollout selectCamTarget "Camera Selection/Switch" (

button getCam "Get/Switch"

local currentCamera = undefined

local currentTarget = undefined

fn selSwitch = (

	local _cam = viewPort.getCamera()

	if _cam != undefined then (

		currentCamera = _cam

		currentTarget = _cam.target

		if selection[1] != currentCamera then select currentCamera

		else select currentTarget

	)

	else if selection[1] == currentCamera then select currentTarget

	else if selection[1] == currentTarget then select currentCamera

)

on getCam pressed do selSwitch()

)

addRollout selectCamTarget
(Assumo da ora che tu abbia installato max in C:\Programmi, in caso non sia così modifica i paths che ti indico in seguito...) Poi devi creare un macroscript che punti alla funzione che ti interessa; crea un file di testo vuoto e copiavi quanto segue:
MacroScript selSwitchCam

enabledIn:#("max")

Category:"camera selection/switch"

Tooltip:"Select and switch"

(

	On Execute do

	(

		selectCamTarget.selSwitch()

	)

)

salvalo in c:\programmi\Autodesk\3dsMax8\UI\MacroScripts col nome "camSwitch.mcr"

Al prossimo avvio di max, andando nel menu "customize/customize user interface..." aprendo il secondo dropDown (intitolato category) ti proporrà una lista di famiglie di comandi ordinati alfabeticamente tra le quali dovrebbe comparire anche "camera selection/switch", selezionala ed a questo punto dovrebbe comparire nel listbox sottostante il comando "Select and switch" al quale puoi associare la shortKey che preferisci.

Se vuoi che il caricamento dello script avvenga in automatico salvalo in C:\Programmi\Autodesk\3dsMax8\Scripts\Startup

Il funzionamento di questo script è molto semplice: ruota attorno alla funzione viewPort.getCamera() che restituisce il puntatore alla camera associata al viewpor corrente, se esso esiste e la selezione corrente differisce da esso allore lo seleziono, alternativamente seleziono il suo target (accessibile con il metodo .target), da qui l'effetto ciclico. Associo il tutto ad un button ed aggiungo il rollout alla lista. :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...