IPL, Posicionamento de Item

Arquivos de posicionamento de item, ou originalmente, item placement files, amplamente conhecidos por sua extensão, .ipl, são descritores de entradas de posicionamento (por exemplo) de objetos, criação de zonas de comportamento especial, rotas no cenário, dentre outros.

Uso

Todos os títulos da subfamília de GTA III, GTA Vice City e GTA San Andreas suportam o formato “standard” dos arquivos de posicionamento de item, os quais são majoritariamente encontrados em codificação de planilha bastarda de texto.

Estas planilhas podem ser abertas e editadas usando qualquer programa de edição de texto, como o Bloco de Notas por exemplo, porém há ferramentas para simplificar a edição, como o MEd por exemplo — que não é precisamente um editor de IPL.

GTA San Andreas é o primeiro título de sua série a introduzir o formato em codificação binária para os arquivos de posicionamento de item, os quais são encontrado neste game empacotados em acervos IMGs, como o gta3.img por exemplo.

O formato em codificação binária, em contraste ao formato em codificação literal, fornece ao sistema de processamento de cenário, maior velocidade de leitura de dados e consecutivamente maior desempenho na realização de cena. E exatamente por este fato, objetos dinâmicos são, em quase sua totalidade, posicionados através de arquivos em codificação binária. GTA IV fez melhor proveito deste último, porém, apresentando-se como WPL.

Seções

Os arquivos de posicionamento de item são repartidos em muitas seções, mas podem não ser usadas, e se assim, podem ser deixadas em branco. Algumas destas seções sequer foram usadas alguma vez no GTA originalmente.

Cada seção inicia com um identificador, como “inst” por exemplo, e termina com uma palavra-chave, a “end”, terminadora para toda seção, ambas em linhas individuais, assim como toda entrada.

Em caso de alguma dúvida, você pode consultar alguém no servidor-Discord da República SIGMA


inst

Seção usada para instanciar objetos no cenário.

GTA III
Esquema
ModelId, ModelName, PosX, PosY, PosZ, ScaleX, ScaleY, ScaleZ, RotX, RotY, RotZ, RotW
Parametrização

A seguir, a base do formato de uma entrada INST. Note que nos demais títulos, haverá adição e subtração de parâmetros. Esteja atento!

ModelId,Um número pelo qual um objeto foi registrado nalgum arquivo de definição de item.
ModelName,O nome do DFF do objeto, SEM a extensão de arquivo; tal como foi registrado no arquivo de definição de item.
PosX,
PosY,
PosZ,
Os três eixos, em plano cartesiano, da posição do objeto no cenário. Valor em “float”.
ScaleX,
ScaleY,
ScaleZ,

Os três eixos, em plano cartesiano, da escala do objeto no cenário. Naturalmente seria 1.0, ou seja, não escalado. Valor em “float”.
RotX,
RotY,
RotZ,
RotW
Os quatro elementos, de um quartenião, da rotação do objeto no cenário.
GTA Vice City
Esquema
ModelId, ModelName, Interior, PosX, PosY, PosZ, ScaleX, ScaleY, ScaleZ, RotX, RotY, RotZ, RotW
Parametrização

Em Vice City, o formato de entrada de instanciação ganhou um parâmetro a mais, o “Interior”. Este parâmetro exige o número do nível de renderização em que o objeto será desenhado e sua existência será considerada pela detecção de colisão.

Interior,O número-índice do nível de renderização (o vulgo código de interior) no qual o objeto será considerado. Naturalmente seria 0, ou seja, externo.
GTA San Andreas
Esquema
ModelId, ModelName, Interior, PosX, PosY, PosZ, RotX, RotY, RotZ, RotW, LodIndex
Exemplo
inst
17582, stadtplaza_lae2, 0, 2739.21875, -1770.085938, 17.5546875, 0, 0, -0.999048233, 0.04361938313, 83
end
Parametrização

Em San Andreas, infelizmente (ou felizmente?), os três parâmetros de escalação do objeto no cenário foram removidos, são eles ScaleX, ScaleY, ScaleZ. Contudo, um novo parâmetro foi adicionado, sendo este o índice de um modelo LOD do objeto.

LodIndexO número-índex do modelo de LOD longíquo o qual está neste mesmo bloco em que este objeto está inserido. Naturalmente seria -1 para objetos pequenos, como props, uma vez que nulifica o uso.
NOTA: Este número é o índice do modelo LOD inserido neste mesmo bloco, não o identificador registrado nalgum arquivo de definição de item.

cars

Seção usada para criar geradores de carros (corretamente, veículos) estacionados, em San Andreas somente.

Esquema
PosX, PosY, PosZ, Angle, CarID, PrimCol, SecCol, ForceSpawn, Alarm, DoorLock, Unknown1, Unknown2
Exemplo
cars
1776.5739, -1889.9012, 13.3868, 272.6537, -1, -1, -1, 1, 0, 0, 0, 0
end
Parametrização
PosX,
PosY,
PosZ,
As coordenadas, em plano cartesiano, da posição do veículo. Valor em “float”.
Angle,O ângulo, em radianos, do veículo. Valor em “float”.
ModelId,O número identificador do modelo do veículo cadastrado em vehicle.ide, ou -1 para modelos aleatórios — influenciados pelas configurações sociais da região.
PrimColor,
SecColor,
O índex da colorização do veículo definido em carcols.dat. Ou -1 para cores aleatórias.
ForceSpwan,Naturalmente 0, assim o sistema de processamento de cenário fica livre para fazer uma escolha cabível. Ou 1 para exigir a aparição.
AlarmSens,A possibilidade de disparar o alarme, em porcentagem — 0~100.
DoorLock,A possibilidade em que as portas estejam trancadas, em porcentagem — 0~100.
Unk1,
Unk2
Desconhecido. Apenas zero.

pick

Seção usada para criar pickups (objetos “pegáveis”) de armas em San Andreas somente.

Esquema
WeaponId, PosX, PosY, PosZ
Exemplo
29, -1435.85, -965.719, 200.167
Parametrização
WeaponId,O número único identificador de cada arma.
NOTA: Não é o modelo da arma, é o discriminador.
PosX,
PosY,
PosZ
As coordenadas, em plano cartesiano, da posição da pickup.

2 thoughts on “IPL, Posicionamento de Item

Leave a Reply