Ouai pour la heightmap si t'en utilise pas tu risque de galérer.
Sinon après pour savoir le z de ton perso entre 3 ou 4 points de cette heightmap, bah il faut utiliser une interpolation (linéaire si tu traite pas ta heigtmap et que tu affiche les triangles normalement).
Par exemple une interpolation linéaire 2d :
//interpol_linear(v1, v2, x)
return argument0*(1-argument2)+argument1*argument2
va te donner le y compris entre v1 et v2 a la position x (les x de la courbe évoluent de manière constante, c'est pour ça qu'ils ne sont pas pris en compte dans l'équation).
Donc si jamais tu voulais déplacer un objet sur une courbe, tu n'aurais qu'a calculer son y avec nterpol_linear :b
Je te conseille de commencer a faire tout ça avec une courbe avant de t'attaquer a la 2d, il faut bien que tu comprenne la notion d'interpolation.
Pour la 3d, c'est un peu plus compliqué vu que tu a 4 valeurs a prendre en compte, on doit donc utiliser une interpolation bilinéaire, qui utilise en fait deux interpolations linéaires :
// interpol_bilinear(v1, v2, v3, v4, x, y)
v1 = interpol_linear(argument0, argument1, argument4);
v2 = interpol_linear(argument2, argument3, argument4);
return interpol_linear(v1, v2, argument5);
Donc si tu comprend les histoires d'interpolation, tu comprendra tout :b
Après tu pourras même utiliser des interpolation plus complexes pour charger ta heigtmap et faire ta 'physique'.
(interpolation cos, bicubique, plus douces mais aussi plus complexes)