Vimos no artigo "Usando estruturas em Blueprints" que um Vetor é representado na Unreal Engine como uma estrutura contendo as variáveis X, Y e Z que são do tipo "float" (fracionário).
Este valores podem ser interpretados de diversas formas diferentes. Um de seus usos é representar um ponto (ou posição) no espaço 3D. Por exemplo todo Ator possui uma variável chamada "Location" que é do tipo "Vector". Esta variável mantém a coordenada de mundo do Ator.
Para ilustrar, temos uma cadeira e uma mesa na imagem abaixo, que são dois Atores:
Esta imagem mostra a posição da cadeira:
De uma forma simplificada podemos representar esta posição assim: (100, 0, 20).
A posição da mesa é (400, 0, 20):
Agora imagine que precisamos orientar um robô a sair da cadeira e chegar até a mesa. Ele precisa de duas informações, a direção em que deve se mover e a distância a ser percorrida. A instrução necessária seria algo do tipo:
"Mova 300 cm para direita."
As duas informações de direção e distância podem ser reunidas em um único vetor que pode ser representado da mesma forma que se representa uma posição usando os valores X, Y e Z.
Assumindo neste exemplo que o movimento para a direita ocorre ao longo do eixo X. O vetor acima ficaria assim: (300, 0, 0).
Se pegarmos a posição da cadeira e somar com o vetor que representa este movimento, o resultado será a posição da mesa. Para somarmos um ponto com um vetor, basta somar cada um de seus elementos:
posição_mesa = posição_cadeira + vetor_movimento
posição_mesa = (100, 0, 20) + (300, 0, 0)
posição_mesa = (100 + 300, 0 + 0, 20 + 0)
posição_mesa = (400, 0, 20)
Sendo assim, se temos um ponto de origem e um ponto de destino e queremos descobrir qual o vetor de movimento, basta pegar o ponto de destino e subtrair o ponto de origem.
Por exemplo, se queremos saber qual o vetor que nos leva do ponto de origem (50, 30, 45) até o ponto de destino (120, 80, 110), basta calcular:
vetor_movimento = ponto_destino - ponto_origem
vetor_movimento = (120, 80, 110) - (50, 30, 45)
vetor_movimento = (120 - 50, 80 - 30, 110 - 45)
vetor_movimento = (70, 50, 65)
Agora que já vimos um exemplo, vamos ver uma definição mais formal de um vetor.
"Um vetor é um objeto geométrico que possui uma magnitude (ou comprimento) e uma direção. Um vetor é geralmente representado por uma seta com uma direção definida."
Vetores são muito utilizados na programação de jogos. Eles podem ser usados para indicar direções e para representar velocidade, aceleração e força que atuam em um objeto.
No próximo artigo vamos conhecer diversas operações que podem ser feitas com vetores.