FOR ENGLISH, CLICK HERE
Este vídeo é pra mostrar que sim, isso é possível, mas parcialmente, infelizmente…
No vídeo eu demonstro como seria um sistema de danos por vértice, no caso, o local onde bater irá amassar, é só um script gambiarrado que fiz rapidinho pois eu estava curioso para ver o resultado.
Como DK22Pac antes informou, esse sistema não seria nada eficaz, um processo lento, pesado, que causa lag principalmente em veículos com muitos polys/triângulos (muito definidos). Eu testei com um carro highpoly e o FPS desmoronou quando colidi, mesmo sendo somente o para-choque do carro, se adicionar isso no chassi dele por exemplo seria extremamente pior, deixando impossível de jogar, no Elegy por exemplo deu uma boa queda de FPS, mesmo sendo também só o parachoque. Esse problema lembra um pouco SLRR, ele também tem estas quedas de FPS ao colidir, mas aparentemente menos ainda. O resultado dos testes também achei parecido, tenho quase certeza que SLRR usa o mesmo sistema. (Atualização: sim, usa, mas ele usa um modelo lowpoly para calcular, por isso não cai tanto FPS com carros highpoly)
O problema não é só este, como forma de economizar memória, o GTA SA usa modelos únicos, cópias do modelo, isso quer dizer que se eu amassar um carro usando este método, os outros carros do mesmo modelo também amassarão. É possível contornar isso, mas iria precisar tirar uma cópia de todas as peças de todos os carros individualmente no mapa do jogo. De novo, uma coisa muito pesada e que iria aumentar muitíssimo o uso de memória.
Não só isso, também tem o fato de ser complicado, como Silent antes disse, “fazer isso por cleo é masoquismo”. No vídeo usei só 2 carros pois foram os que melhor funcionaram, noutros os danos não apareceram ou ficaram bugados, no vídeo também a colisão só funciona virada para o norte (pois é só uma gambiarra de testes).
Entortar as peças pelo local da colisão não é uma tarefa tão fácil, pelo menos pra mim que não sou bom em matemática, o GTA não coopera com facilidades para isso, tem que ser tudo na unha.
É realmente uma pena, pois imaginar os carros do GTA SA se amassando por completo (em todas as peças) e dinamicamente seria uma coisa épica, mas o sistema do jogo não coopera, só seria realmente possível usando vertex shaders etc, uma coisa que, quem sabe, algum mestre apareça e faça…
Atualização:
Uma printzinha.
Coloquei pra amassar os parachoques e chassi… cada colisão, 2 segundos de freeze, realmente, muito pesado, ainda bugado (mal calculado) mas mesmo assim, legal
ps: sim, SLRR usa um sistema parecido, mas ele usa um modelo lowpoly para calcular, por isso não cai tanto FPS com carros highpoly.
Este vídeo é pra mostrar que sim, isso é possível, mas parcialmente, infelizmente…
No vídeo eu demonstro como seria um sistema de danos por vértice, no caso, o local onde bater irá amassar, é só um script gambiarrado que fiz rapidinho pois eu estava curioso para ver o resultado.
Como DK22Pac antes informou, esse sistema não seria nada eficaz, um processo lento, pesado, que causa lag principalmente em veículos com muitos polys/triângulos (muito definidos). Eu testei com um carro highpoly e o FPS desmoronou quando colidi, mesmo sendo somente o para-choque do carro, se adicionar isso no chassi dele por exemplo seria extremamente pior, deixando impossível de jogar, no Elegy por exemplo deu uma boa queda de FPS, mesmo sendo também só o parachoque. Esse problema lembra um pouco SLRR, ele também tem estas quedas de FPS ao colidir, mas aparentemente menos ainda. O resultado dos testes também achei parecido, tenho quase certeza que SLRR usa o mesmo sistema. (Atualização: sim, usa, mas ele usa um modelo lowpoly para calcular, por isso não cai tanto FPS com carros highpoly)
O problema não é só este, como forma de economizar memória, o GTA SA usa modelos únicos, cópias do modelo, isso quer dizer que se eu amassar um carro usando este método, os outros carros do mesmo modelo também amassarão. É possível contornar isso, mas iria precisar tirar uma cópia de todas as peças de todos os carros individualmente no mapa do jogo. De novo, uma coisa muito pesada e que iria aumentar muitíssimo o uso de memória.
Não só isso, também tem o fato de ser complicado, como Silent antes disse, “fazer isso por cleo é masoquismo”. No vídeo usei só 2 carros pois foram os que melhor funcionaram, noutros os danos não apareceram ou ficaram bugados, no vídeo também a colisão só funciona virada para o norte (pois é só uma gambiarra de testes).
Entortar as peças pelo local da colisão não é uma tarefa tão fácil, pelo menos pra mim que não sou bom em matemática, o GTA não coopera com facilidades para isso, tem que ser tudo na unha.
É realmente uma pena, pois imaginar os carros do GTA SA se amassando por completo (em todas as peças) e dinamicamente seria uma coisa épica, mas o sistema do jogo não coopera, só seria realmente possível usando vertex shaders etc, uma coisa que, quem sabe, algum mestre apareça e faça…
Atualização:
Uma printzinha.
Coloquei pra amassar os parachoques e chassi… cada colisão, 2 segundos de freeze, realmente, muito pesado, ainda bugado (mal calculado) mas mesmo assim, legal
ps: sim, SLRR usa um sistema parecido, mas ele usa um modelo lowpoly para calcular, por isso não cai tanto FPS com carros highpoly.