Alterar tamanho de objeto em relação a câmera.

Por: stenionet  

Em: 18/10/2010 21:25

Estou fazendo uma animação e gostaria de modificar a escala dos objetos em relação a distância para a câmera. Exemplo: quando a câmera se distancia, o objeto fica maior e fica menor quando a câmera se aproxima. Achei um script nesta página: http://www.scriptspot.com/forums/3ds-max/scripts-wanted/scale-script#comment-8711 Mas não está funcionando nos meus testes.
nao rola animar isso? daria mto trampo neh.. e se tentar por wire parameters? coloca o Position da camera com o escale do objeto.. deve ter como isso..
Tb acho que só por wire parameter ou reaction manager. Um script que funcionasse era bom :)
Vou estudar o wire parameters e reaction manager pra ver se funciona do jeito que eu quero. Muito obrigado.
Estudei o wire parameters. Ele faz o que eu quero, mas é trabalhoso demais. Agradeço se alguém tiver outra ideia. Aqui tem um cara com a mesma dúvida: http://www.scriptspot.com/forums/3ds-max/scripts-wanted/scale-script Foi feito um script, mas não consegui fazer funcionar.
Fiz vários tutoriais de wire parameters, como este: http://www.generativedesigncomputing.net/2009/10/3d-max-wire-parameters-basics.html Mas não achei como controlar vários objetos e nem como alterar o Scale. Será que não tem um jeito de fazer isso? Agradeço qualquer ajuda.
Uma abordagem comum para realizar esse efeito é usar o controlador "Position XYZ" do objeto para controlar sua escala. 
mapquest driving directions
A animação de escala em relação à distância da câmera é uma técnica interessante para criar efeitos visuais dinâmicos. Vou tentar ajudá-lo a solucionar o problema. Aqui está um exemplo de script que você pode usar para atingir esse efeito: 
fn scaleByCameraDistance obj cam minScale maxScale =
(
    local camPos = getPos cam
    local objPos = getPos obj
    local distance = distance camPos objPos
    local scaleFactor = 1.0 - (distance / 100.0) -- Ajuste o valor 100.0 conforme necessário
 
    scaleFactor = clamp scaleFactor minScale maxScale
 
    obj.transform = scaleMatrix [scaleFactor, scaleFactor, scaleFactor] * obj.transform
)
 
-- Uso do script:
local selectedObjects = selection
local camera = $Camera01 -- Substitua pelo nome da sua câmera
local minScale = 0.5 -- Escala mínima
local maxScale = 2.0 -- Escala máxima
 
for obj in selectedObjects do
(
    scaleByCameraDistance obj camera minScale maxScale
)
victorpatrick:
A animação de escala em relação à distância da câmera é uma técnica interessante para criar efeitos visuais dinâmicos. Vou tentar ajudá-lo a solucionar o problema. Aqui está um exemplo de script que você pode usar para atingir esse efeito: 
fn scaleByCameraDistance obj cam minScale maxScale =
(
    local camPos = getPos cam
    local objPos = getPos obj
    local distance = distance camPos objPos
    local scaleFactor = 1.0 - (distance / 100.0) -- Ajuste o valor 100.0 conforme necessário
 
    scaleFactor = clamp scaleFactor minScale maxScale
 
    obj.transform = scaleMatrix [scaleFactor, scaleFactor, scaleFactor] * obj.transform
)
 
-- Uso do script:
local selectedObjects = selection
local camera = $Camera01 -- Substitua pelo nome da sua câmera
local minScale = 0.5 -- Escala mínima
local maxScale = 2.0 -- Escala máxima
 
for obj in selectedObjects do
(
    scaleByCameraDistance obj camera minScale maxScale
)

Obrigado, celinedion e victorpatrick.

Essa postagem é de 2010, então eu nem lembro como eu resolvi.

Mas obrigado pela dica. Tenho certeza que será útil para outras pessoas e até para mim mesmo no futuro.

Faça o login para poder comentar

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 707749.

Total de membros registrados: 135339

Últimos membros registrados: Philaraujoo, zito felix, mgameszo, zuanon82, gssousa, cristianofigueredo, chrisdocs, GL ART.

Usuário(s) on-line na última hora: 351, sendo 5 membro(s) e 346 visitante(s).

Membro(s) on-line na última hora: renaz, raflixh, nandao, Le_Andro, Thiago.

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2024. Todos direitos reservados.