Jump to content
GuIdO

Trasformare Mesh In Simbolo

Recommended Posts

In 3d studio max:

Dovrei fare in modo che una spline ( che ha degli Attribute Holder ) rimanga in un punto fisso della schermo senza spostarsi, come gli Slider per intenderci.

In modo più chiaro:

ho fatto una piccola UI per gestire i morpher di un personaggio e mi servirebbe che fosse sempre a portata di mano mentre animo e che non mi vada in giro per lo schermo zoomando e orbitando.

Qualcuno ha qualche idea?

Share this post


Link to post
Share on other sites

AH, si, ho fatto così. Oppure altri linkano l'intera UI all'bone Head, compresa la camera sempre fissata sull'UI, creando un layer apposito. Così quando il personaggio va in giro si porta dietro 'intera UI.

Era questo che intendevi?

_cecofuli

Share this post


Link to post
Share on other sites
AH, si, ho fatto così. Oppure altri linkano l'intera UI all'bone Head, compresa la camera sempre fissata sull'UI, creando un layer apposito. Così quando il personaggio va in giro si porta dietro 'intera UI.

Era questo che intendevi?

_cecofuli

Ci avevo pensato... diciamo che volevo sapere se si poteva creare una cosa tipo gli slider che rimangono la dove li metti, ma mi dicono che non è fattibile, peccato.

Share this post


Link to post
Share on other sites

non sono sicuro di aver capito quello che vuoi(di animazione non ne so una mazza) ma se quello che vuoi è che degli oggetti rimangano in una certa posizione e orientamento rispetto alla vista al momento tramite maxscript credo si possa fare.

Nella reference ho trovato dei metodi per ottenere informazioni sulla posizione e orientamento della viewport.

Assegnando al redraw della viewport una funzione che da queste informazioni ricava la matrice di trasformazione per degli oggetti definiti credo dovrebbe riuscire

Solo che io non so praticamente niente delle matrici di trasformazione...... ora non posso proprio mettermici dietro.

Comunque se qualcun altro vuole farlo i metodi che ho visto io si trovano facendo una ricerca nella reference con le arole "viewport getTM", con max8 pè il primo risultato.

comunque riporto quello che credo possa essere utile:

getViewTM()

viewport.getTM()

viewport.setTM <matrix3>

Get or set the active view screen-to-world transform matrix for non-orthographic (perspective and isometric user views) viewports. This is the affine camera or viewport matrix. setTM only operates on Perspective viewports, and returns a value of true if the view transform matrix was successfully set, false otherwise.

The following function returns as a Ray value the "eye" location and direction for the active viewport. The viewport needs to be a non-orthographic viewport.

Example:

fn getViewDirectionRay =

(

-- The affine TM transforms from world coords to view coords

-- so we need the inverse of this matrix

local coordSysTM = Inverse(getViewTM())

-- The Z axis of this matrix is the view direction.

local viewDir = -coordSysTM.row3

-- get the view position from this matrix

local viewPt = coordSysTM.row4

return ray viewPt viewDir

)

getViewSize()

Returns the active view size as point2 in pixels.

getScreenScaleFactor <point3>

Returns the active view scale factor, giving the width in world-space units at the point's distance from the view space origin.

viewport.GetScreenScaleFactor()

Returns the active view scale factor, giving the width in world-space units at the point's distance from the view space origin. Same as getScreenScaleFactor()

mapScreenToWorldRay <pixel_coord_point2>

Returns a Ray value in world space through the given viewport pixel coordinates in the current active view, and perpendicular to the viewport plane.

mapScreenToView <pixel_coord_point2> <depth_float> \

[ <viewport_size_point2> ]

Returns a 3D point in the view coordinate space. Given a point in the active viewport screen (in viewport pixel coordinates), and a depth in view coordinates, this method maps the point into view coordinates. If <viewport_size_point2> is supplied, the specified viewport size is used instead of the actual viewport size.

mapScreenToCP <pixel_coord_point2> [ <viewport_size_point2> ]

Maps viewport pixel coordinates in the current active view to the construction plane in world coordinates. If <viewport_size_point2> is supplied, the specified viewport size is used instead of the actual viewport size.

gw.nonScalingObjectSize()

The value returned from this method may be used as a scale factor that will counteract the viewport zoom. For example, lights, cameras, and tape helper objects use this factor so the size of the node in the scene remains constant when the viewport is zoomed in and out.

This value is affected by the 'Non-Scaling Object Size' spinner in the Viewport Preferences dialog, so the user has some control over this as well.

sinceramente non ho capito tutto quello che fanno, ma a naso direi che da questi si potrebbe riuscire a fare quello che vuoi

ad esempio ho creato una box(che dovà chiamarsi Box01), poi sono andato nella vista top e sono passato ad una perspective(anche una user va bene) poi ho eseguito questo script:

global starttransf


fn provaredraw=(

$Box01.transform=$Box01.transform+(starttransf-viewport.getTM())

starttransf=viewport.getTM()


)

starttransf=viewport.getTM()


registerRedrawViewsCallback provaredraw

--unRegisterRedrawViewsCallback provaredraw

se la vista rimane perpendicolare al piano XY la cosa funziona ma se si ruota no.

Bisogna calcolare la matrice in modo locale e migliorare il calcolo, in questo caso io ho proceduto per tentativi....

Per fermare lo spostamento della box bisogna eseguire il commento.

spero di essere stato utile, ciao!

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...