Author Topic: mur traversable  (Read 400 times)

woolfraine

  • Bleusaille
  • Posts: 12
mur traversable
« on: November 01, 2009, 10:35:12 PM »
re bonjour
Y a t il quelqu'un qui a deja fait un mur que l'on peut traverser mais pas invisible ? (avec un texture). Je voudrais en faire un.
Merci de m'expliquer, je debute dans le maping   :huh:  hummm
« Last Edit: November 03, 2009, 08:19:31 PM by raf »

raf

  • Administrator
  • Actionnaire chez un fabricant de claviers
  • ******
  • Posts: 1891
mur traversable
« Reply #1 on: November 03, 2009, 08:18:16 PM »
Petit cours rapide : les textures 'clip' sont des textures spéciales. Elles sont invisibles et possèdent des propriétés qui servent à gérer des interactions avec les joueurs, les balles et d'autres choses encore (il me semble).
Par exemple :
  • la texture 'player clip' Empêche le joueur de passer mais pas les balles ni les grenades (frustrant non ?)
  • la texture 'metal clip' (ou qlq chose comme ça) réagit aux balles en émettant le bruit d'impact sur le metal.
  • la texture 'clip' arrête tout sans émettre de bruit particulier.
Il y en a toute une série comme ça.

Il existe aussi des textures qui possèdent certaines de ces propriétés. Une texture neige aura la propriété de produire le bruit des pas dans la neige quand le joueur marche dessus. La texture verre est transparente et produit le bruit du verre qui se brise. La texture du char arrête les balles (et les joueurs ;)) avec un bruit caractéristique. Etc.

Pour ce que tu veux faire, il te te faut une texture qui n'a pas de propriété 'player clip' ou 'clip' afin que le joueur ne soit pas bloqué.

C'est certainement faisable mais le problème, c'est que je ne sais plus comment on fait ça. Ca remonte à bien trop longtemps.

Si quelqu'un se souvient...
-= Raf =-
Fan de Lego

Citation guerrière : A vaincre sans péril, on évite des ennuis. (Astérix chez les bretons)


snaky

  • Squatteur de forum
  • ****
  • Posts: 3332
    • http://profparty.forumpro.fr
mur traversable
« Reply #2 on: November 04, 2009, 09:52:01 PM »
Tu peux avoir deux options distinctes:
- Utiliser une entité (rapide, sans codage lourd, mais les ombres peuvent être médiocres)
- Utiliser une texture personnelle (codage plus complexe, plus complet, mais les rendus peuvent être meilleurs).

Dans le premier cas:
Sélectionne ton mur, fais un clic droit en vue 2D, puis "script -> object". Les bords du brush en vue 2D deviendront normalement bleus quand tu déselectionnera.
Le brush toujours sélectionné, appuis sur "n". Là, comme clef, entre "$targetname" (sans guillemets) et comme valeur, "fantome" (mais tu peux choisir une autre valeur, l'essentiel est de ne pas avoir s'espace, et d'utiliser uniquement des lettres ou des chiffres, sachant que le nom ne doit débuter QUE par une lettre).
Ensuite, dans le script de ta carte, après la ligne "level waittill prespawn", il te suffit d'ajouter:

Code: [Select]
$fantome notsolid
Normalement, tu devrais pouvoir passer au travers du mur. Note: les objets comme les grenades et les balles le traverseront aussi !

Dans le second cas:
Il te faut d'avoir trouver l'image tga/jpg de la texture que tu veux employer. Généralement, le nom de la texture affiché dans Radiant correspond à l'emplacement de la texture. Pour avoir ce nom, avec une souris 3 boutons, fais un clic central sur ton brush, puis appuis sur "s": tu devrais avoir le nom de texture affichée dans le champ du haut de la fenêtre apparue.
Ouvre maintenant le pak2.pk3, et cherche ta texture dedans (théoriquement, le nom de la texture correspond, à la louche, à son chemin). Extrait-la. Je rappelle que les pk3 s'ouvrent bêtement avec Winzip/Winrar ou tout autre lecteur d'archive supportant le format .zip.
Supposons que tu ne trouves pas ta texture. Pas de panique! Dans radiant, ouvre la fenêtre des textures (t) puis cherche la texture qui te plait tant. Normalement, son nom est affiché au dessus de son image. Si tel n'était pas le cas, dans le menu "Edit/Preference", tu devrais avoir quelque chose du genre "Show texture name", à cocher. Muni du nom de texture, ouvre le pak0.pk3, et regarde le dossier "scripts/". Dedans, tu as plein de fichiers *.shader; ouvre-les jusqu'à trouver ta texture. Généralement, les noms des fichiers shaders te guident (ne va pas chercher dans allied_*, ou german_* car ce sont les textures des personnages par exemple). Une fois l'occurence du nom de texture trouvée, tu devrais obtenir son chemin d'accès. Tu n'as alors plus qu'à ouvrir le pak2.pk3 pour trouver et extraire cette texture.

Une fois extraite en respectant l'arborescence, c'est à dire que tu l'as mise dans des dossiers "textures/*/*" correspondant au chemin d'accès d'origine, il te faut créer le shader. Pour ce faire, c'est assez simple: dans le même dossier que "textures"/ qui contient actuellement la texture (PAS dans le pk3 donc!!), cré un dossier "scripts/", et dans ce dossier, cré un fichier au nom de ton choix, dont l'extension est en .shader.
Ouvre-le au bloc-notes. Copies-colle le contenu suivant:

Code: [Select]
textures/Chemin/De/Texture/nom_de_texture
{
qer_editorimage textures/Chemin/De/Texture/nom_de_texture.tga //ou .jpg
qer_keyword customtrans //Donc ta texture sera accessible via le mot-clef "customtrans" dans Radiant

surfaceparm notsolid //Te permet de passer au travers de la texture et du mur
surfaceparm nonsolid //notsolid ou nonsolid? je ne sais plus ! mets les 2!

 {
  map textures/Chemin/De/Texture/nom_de_texture.tga //Attention! l'extension est peut-être aussi en .jpg!
  rgbgen identity
 }
 {
  map $lightmap
  rgbgen identity
  blendfunc Gl_DST_COLOR GL_ZERO //blendfunc blend ou blendfunc filter peuvent marcher aussi
 }
}

La seconde solution est la plus hardue, et probablement la moins efficace, car j'ai des doutes au niveau de l'interprétation du code par le compilateur.
De plus, avec la deuxième méthode, je pense que tu dois refaire la compilation, alors qu'avec la première, tu auras plus de souplesse.
Egalement, avec la première, tu peux faire en sorte que le mur soit solide ou non de façon dynamique, par exemple, apres avoir du appuyer sur un interrupteur.


bref, je te préconise la première solution, sauf si le rendu graphique est ignoble (cela peut arriver: la gestion de lumière diffère totalement entre les deux méthodes).

woolfraine

  • Bleusaille
  • Posts: 12
mur traversable
« Reply #3 on: November 12, 2009, 05:54:29 PM »
ok merci beaucoup