Script pra giro de Roda.

Por: ZenomyErif  

Em: 06/11/2012 12:22

Olá pessoal!
Estava tentando criar um script para Rig de carros, mas encontrei um probleminha...
Eu estava criando o script para fazer o giro da roda, só que num determinado frame a roda começa a dar giros de mais ou menos 180º e acaba ficando quase parada.
Alguém sabe dizer o que tem de errado no código [:(]

terrainGeometry = 0
rayCaster = 0
whee = 0
poix = 0
rodada =0
utility coli_rota \"Colisão e rotação de rodas\"
(
pickbutton pickterrain \"Terreno\"
on pickterrain picked obj do(
terrainGeometry = obj
print terrainGeometry
)
pickbutton pickguia \"Guia da roda\"
on pickguia picked obj do(
rayCaster = obj
print rayCaster
)
pickbutton pickroda \"Roda\"
on pickroda picked obj do(
whee = obj
poix = whee.pos.x
rodada = whee.rotation.y_rotation
print whee
)
button animar \"----Animar-----\"
on animar pressed do(
disableSceneRedraw()
with animate on
(
for currentTime = animationRange.start to animationRange.end do
(
slidertime = currentTime
rayToTerrain = ray rayCaster.pos [0,0,-1]
Zposition = intersectRay terrainGeometry rayToTerrain
whee.pos.z = Zposition.pos.z + whee.radius
whee.pos.x = rayCaster.pos.x
whee.pos.y = rayCaster.pos.y
if whee.pos.x != poix do (
print whee.rotation.y_rotation
whee.rotation.y_rotation =rodada + ( (360* (whee.pos.x - poix))/(2 * 3.1 * whee.radius) )
print whee.pos.x
print poix
print whee.rotation.y_rotation
print (whee.pos.x - poix)
print currentTime
rodada = whee.rotation.y_rotation
poix = whee.pos.x
)
)
)
enableSceneRedraw()
)
)

Prezado ZenomyErif
Não entendo nada de código. Entretanto, se você quiser um script já pronto, faça um download do script \" Auto wheel\", indo em \" recursos \", \" script \", item 4 desse site.
Boa sorte.
Roberlane
Obrigado. Esse plugin é muito bom, mas não me serve, eu preciso criar o meu porque será uma parte do meu script, e não tem como eu colocar um script de outra pessoa dentro do meu. Esse código funciona praticamente tudo, menos a parte da rotação que não sei exatamente como funciona bem.
Fica difícil de fazer algum teste pois não tem o script inteiro com a interface, mas o que me chamou a atenção foi isso, quando vc declara o rodada:

rodada = whee.rotation.y_rotation

E depois define a rotação:

whee.rotation.y_rotation =rodada + ( (360* (whee.pos.x - poix))/(2 * 3.1 * whee.radius) )

Assim esta repetindo a rotação nela mesma, é isso? Da mesma forma:

poix = whee.pos.x

E vc subtrai ele mesmo, vc faz isso pra compensar a posição inicial? Se for isso o ideal é usar position list ou dar um freeze tranform antes, assim ele sempre vai partir do valor zero.

Se puder colocar uma interface basica pra poder testar o script fica mais facil, assim sem testar fica mais como tiros no escuro.

Faça o login para poder comentar

Informações da Comunidade

Total de mensagens publicadas pelos membros da comunidade: 717318.

Total de membros registrados: 143135

Últimos membros registrados: Vanotium34, rayz7, LulutoxDetoxTea4566, OzemPlusKapseln, giovanepm, jalisajewel, MelaraAirPillow556, MelaraAirPillow676.

Usuário(s) on-line na última hora: 797

Legenda: Administrador, Especial, Moderador, Parceiro .

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