Foros 3DPoder.  

Bienvenido a Foros 3DPoder..

Usted esta viendo este foro como invitado, no esta registrado todavía, lo que limita su visión del foro. Si quiere unirse gratis a la mayor comunidad del diseño gráfico de habla hispana, tener acceso a publicar y responder mensajes, tener mensajes privados con otros miembros(PM), responder encuestas, publicar sus imágenes para que las vea el resto del mundo, tener acceso a los video_tutoriales, y muchas cosas más, no lo dude. Registrarse es rápido, simple y gratuito, agregate hoy a la mayor comunidad 3D de habla hispana! !

Si usted tiene algún problema con su registro, por favor , díganoslo aquí. 3d





¿Te ayudo?
Retroceder   Foros 3DPoder. > :: Infografia y diseño grafico. > Script
Foro3D Galeria Privada Video3D Blueprints Software Blog3DPoder Buscar Empleo Donaciones

google adsense


Respuesta
 
Herramientas
Antiguo 18 dic 2006   #1
Ballo
Megalodon...
 
Avatar de Ballo
 
Fecha de Ingreso: abril-2002
Ubicación: Aquí
Mensajes: 9,073
Predeterminado Softselection manipulator

Un compañero me ha pasado este script para la creacion de un manipulador para el softselection, es bastante comodo pero no me gusta su forma de gizmo esferico. A mi me gustaria que fuera un circulo que siempre tuviera la misma forma en todas las camaras. No se como hacerlo, evidentemente, y me gustaria que los expertos le echaran un ojo para saber si es posible hacerlo.

Gracias.

Saludetes.


Cita:
----------------------------------------------------------------------------------------
-- Script: Poly SSelectFalloff Manipulator
-- Version: v01.Max4
-- Started: 2/17/01
-- Last Modified: 2/18/01
-- Description: Adds Manipulator for SoftSelection Falloff in Editable Poly
-- Code by: Martin Coven mcoven@austin.rr.com
-- Thanks to: John Versluis and Borislav Petrov for their great help
-- Based on the Radius Manipulator code by Scott Morrisson from Discreet.

-- rework by Larry Minton 6/26/01
----------------------------------------------------------------------------------------

plugin simpleManipulator Poly_ssfalloffManip
name:"Poly_SSFalloffManip"
invisible:true
(
-- Create the green and red colors for the gizmo
local g = green -- [0,1,0]
local r = [1,0,0]
local b = [0,0,1]
local y = [1,1,0]
local GizPos, targClass, interface

-- This manipulator manipulates editable meshes and polys
on canManipulate target do -- called at class level, can't access plugin local variables
( getCommandPanelTaskMode() == #modify and
( local targClass = classof target
targClass == editable_poly or targClass == editable_mesh
)
)

-- Create the manipulator gizmo.
-- This is called initially and whenever the manipulator target changes
on updateGizmos do
(
try
(
-- Clear the current gizmo cache
this.clearGizmos()

targClass = classof target
interface = if targClass == editable_poly then polyop else if targClass == editable_mesh then meshop

local useSoftSel =
if targClass == editable_poly then target.useSoftSel
else if targClass == editable_mesh then meshop.getSoftSel target
else false
local size =
if targClass == editable_poly then target.falloff
else if targClass == editable_mesh then meshop.getfalloff target

if useSoftSel and subobjectlevel > 0 then
( local verts =
if subObjectLevel == 1 then -- verts
( if targClass == editable_poly then interface. getVertSelection target
else if targClass == editable_mesh then node.selectedVerts as bitarray -- why no meshop.getVertSelection?
)
else if subObjectLevel == 2 then -- edges
interface. getVertsUsingEdge target #selection
else -- faces
interface. getVertsUsingFace target #selection

GizPos = [0,0,0]
for i in verts do (GizPos += interface. getVert target i) -- local coord space
GizPos /= verts.numberSet

local giz1 = manip.makecircle [0,0,0] size 24
local my_tm = matrixFromNormal [0,1,0]
my_tm.position = GizPos
giz1.transform my_tm

local giz2 = manip.makecircle gizpos size 24

local giz3 = manip.makecircle [0,0,0] size 24
my_tm = matrixfromnormal [1,0,0]
my_tm.position = GizPos
giz3.transform my_tm

-- Add the circle to the manipulator
this.addGizmoShape giz1 0 g r
this.addGizmoShape giz2 0 g r
this.addGizmoShape giz3 0 g r

-- return the ToolTip string
node.name + " SSel falloff = " + size as string
)
)
catch()
)

-- mouseMove is called on every mouse move when dragging the manip
-- It needs to convert the mouse position 'm' into a new value for the falloff
on mouseMove m which do
( try
(
-- manip.makePlaneFromNormal takes a normal vector and a point
-- and creates a plane passing through the point with the given normal
local axis = case which of -- get axis based on which gizmo hit
( 0: y_axis
1: z_axis
2: x_axis
)
local pl = manip.makePlaneFromNormal axis GizPos

-- Compute the hit-ray in local coordinates
local viewRay = this.getLocalViewRay m

-- Intersect the plane with the view ray
local projectedPoint = [0,0,0]
local res = pl.intersect viewRay &projectedPoint
-- format "% : % : % : %\n" viewRay projectedPoint GizPos which

-- If the intersection worked, set the falloff
if (res) then
( projectedPoint = GizPos - projectedPoint
local size = sqrt(projectedPoint.x^2+ projectedPoint.y^2+ projectedPoint.z^2)
if targClass == editable_poly then target.falloff = size
else if targClass == editable_mesh then (meshop.setuiparam target #falloff size;update node geometry:false topology:false normals:false) --meshop UI parameter setters broken
)
)
catch()
)
)
__________________
( ::: ) Tus puñetazos no sirven para nada. No puedes matar a tu maestro de boxeo con golpes que has aprendido de él.
Lu Sin
esta ahora conectado.   Responder Con Cita
Enlaces patrocinados
Antiguo 18 dic 2006   #2
Caronte
BlenderAdicto
 
Avatar de Caronte
 
Fecha de Ingreso: diciembre-2004
Ubicación: Valencia-España
Mensajes: 10,307
Predeterminado Re: Softselection manipulator

Pues yo no he usado en mi vida ni 3DSMax ni mucho menos su lenguaje de programación, pero por si te sirve de ayuda, es posible que lo que tengas que cambiar sea esta linea:

local my_tm = matrixFromNormal [0,1,0]

Por lógica yo cambiaría matrixFromNormal por matrixFromView o algo así, aunque por supuesto, ni siquiera sé si eso existe

Échale un ojo a la documentación de ese lenguaje, a ver si encuentras algo.
__________________
"Algún día todo será digital"
Caronte.
My latest personal work
Caronte is offline   Responder Con Cita
Antiguo 18 dic 2006   #3
HalfVector
H = E + L
 
Fecha de Ingreso: marzo-2004
Ubicación: Entre dos vectores
Mensajes: 877
Predeterminado Re: Softselection manipulator

Efectivamente es como dice Caronte, hay que coger el vector de vista. De esa forma el círculo encarará a la cámara. El problema es que el gizmo sólo se actualiza cuando cambias la selección o modificas el propio gizmo, pero no cuando rotas o mueves la vista.

Saludos.
HalfVector is offline   Responder Con Cita
Antiguo 18 dic 2006   #4
Nessito
Senior Member
 
Fecha de Ingreso: abril-2005
Ubicación: Madrid
Mensajes: 650
Predeterminado Re: Softselection manipulator

Hay otro problema añadido:
¿A que vista debería apuntar el circulo?
Cuando coges el vector de la vista, lo coges de la vista activa, por tanto el circulo estaría orientado a la vista actual, pero no a las demas.
Para dibujar un circulo en coords de pantala en vez de 3D tendrias un problema similar. Dibujaría el circulo en la ventana activa correctamente, pero en las demas, ni la posición ni el tamaño coincidiría (de hecho lo dibujaria igual en todas las vistas, en la misma posicion y con el mismo tamaño EN COORDENADAS DE PANTALLA). Es por eso que los manipuladores de espacio pantalla (los sliders por ejemplo), solo se dibujan en la vista actual, y no en todas.

En fin, que despues de hecharle un vistazo, me parece que la solucion adoptada es la más práctica a todos los efectos.
__________________
Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.
Nessito is offline   Responder Con Cita
Antiguo 18 dic 2006   #5
Ballo
Megalodon...
 
Avatar de Ballo
 
Fecha de Ingreso: abril-2002
Ubicación: Aquí
Mensajes: 9,073
Predeterminado Re: Softselection manipulator

Aja...mmhh que guay..pues lo cambiare y ya os cuento como tira...de todos modos me molaria cambiar el "gizmo" por un circulo simple mucho mas visual y rapido. Puede ser que pida demasiado no se. :D

Una imagen de muestra. El de la izquier es como me molaria el de la derecha es el habitual del script.

No tendria problema en que solo se viera en una vista, yo trabajo siempre en una vista y voy cambiando con el teclado.


Gracias un saludete.
Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  soft.jpg
Vistas: 63
Tamaño:  143.4 KB  
__________________
( ::: ) Tus puñetazos no sirven para nada. No puedes matar a tu maestro de boxeo con golpes que has aprendido de él.
Lu Sin
esta ahora conectado.   Responder Con Cita
Antiguo 18 dic 2006   #6
HalfVector
H = E + L
 
Fecha de Ingreso: marzo-2004
Ubicación: Entre dos vectores
Mensajes: 877
Predeterminado Re: Softselection manipulator

He modificado el script para que el gizmo encare la cámara. Pero como se ha dicho, no se actualiza al rotar/desplazar la vista.

También le he añadido dos círculos más para el pinch y el bubble pero no sé yo si es muy práctico ya que normalmente se utilizan valores muy bajos y los círculos apenas se ven. Por defecto están desactivados. Si quieres verlos, hay una línea que es:

Código:
local showExtras = false
Cambiala a:

Código:
local showExtras = true
Saludos.
Descargar Directa de Archivos ...
Tipo de Archivo: rar Poly_SSFallfoffManip.rar (1.5 KB, 21 visitas)
HalfVector is offline   Responder Con Cita
Antiguo 19 dic 2006   #7
Ballo
Megalodon...
 
Avatar de Ballo
 
Fecha de Ingreso: abril-2002
Ubicación: Aquí
Mensajes: 9,073
Predeterminado Re: Softselection manipulator

Gracias, a todos, voy a mirarlo....
__________________
( ::: ) Tus puñetazos no sirven para nada. No puedes matar a tu maestro de boxeo con golpes que has aprendido de él.
Lu Sin
esta ahora conectado.   Responder Con Cita
Antiguo 19 dic 2006   #8
Ballo
Megalodon...
 
Avatar de Ballo
 
Fecha de Ingreso: abril-2002
Ubicación: Aquí
Mensajes: 9,073
Predeterminado Re: Softselection manipulator

Es una pena que no se actualice....cachis que cosas..crei que seria mas sencillo...Aun asi me gusta bastante como ha quedado...

Merci Half!
__________________
( ::: ) Tus puñetazos no sirven para nada. No puedes matar a tu maestro de boxeo con golpes que has aprendido de él.
Lu Sin
esta ahora conectado.   Responder Con Cita
Respuesta

Etiquetas Identificativas
manipulator, softselection


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
Herramientas

Normas de Publicación
Usted no puede publicar nuevos mensajes.
Usted no puede responder mensajes
Usted no puede publicar archivos adjuntos
Usted no puede editar sus mensajes

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are deshabilitado
Pingbacks are deshabilitado
Refbacks are deshabilitado
Saltar a Foro

google adsense



La franja horaria es GMT. Ahora son las 10:37.


Powered by: vBulletin, para 3DPoder.com Versión 3.7.0 Beta 4
Derechos de Autor ©2000 - 2008, Jelsoft Enterprises Ltd.
3DPoder.com Foro3d.com © Al servicio de la infografia y el 3D desde 1997.
Xbox Mod Chip | Loans | Model Trains | Secured Loans | Cell Phone Auctions
Content Relevant URLs by vBSEO 3.2.0