Après un long moment sur M&B, j'ai débarqué sur M&B : Warband dès sa sortie. L'idée de me mettre au modding, et accessoirement au modelage 3D, m'a souvent traversé l'esprit, sans que toutefois je ne saute le pas jusqu'à maintenant ! En effet, depuis une semaine je m'instruis sur l'art et la manière d'utiliser blender pour faire mes propres armes et j'essaye aussi de m'informer sur la façon de les incorporer dans le jeu...
Je voudrais en fait remplacer une grande partie des armes du jeu, (Que je juge monotone, peu historique et mal balancé.) ainsi que modifier les différentes unités du jeu pour rendre des factions bien "tranché" militairement parlant les uns vis-à-vis des autres. J'ai donc cherché sur le forum, mais je ne trouve pas les informations qui m'intéresse. (Sauf en anglais, mais bien que j'arrive à bricoler un franglish assez convaincant, je n'arrive pas à suivre correctement les tutos proposés.)
Pour ce qui est de la première partie, le modelage et le texturing ne me pose pas de gros obstacle, (Bon, j'ai pas réalisé grand-chose jusqu'à maintenant, à part une table, des chaises et un début d'épée courte. ) par contre, la partie concernant l'incorporation m'est très mystérieuse...
Si quelqu'un aurait donc la bonté de m'expliquer comment créer (Paramètres de l'arme.), intégrer (Mettre l'arme chez le forgeron ou en équiper des unités.) et utiliser (Je doute que le personnage sache direct par quel bout prendre l'arme, il faut donc bien définir le tranchant, la poignée et autre joyeuseté pour le personnage.) l'arme dans le jeu à partir d'une simple création 3D sous blender, je ne le remercierais jamais assez.
PS 1 : Au passage, si ce n'est pas trop demandé, si on pouvait m'expliquer comment créer ou modifier, puis incorporer des troupes à des factions, ce ne serait pas de refus.
PS 2 : Bon, ne vous y fiez pas, si j'arrive à prendre en main tout cela, je ne compte pas m'arrêter là, un petit mod sur le "trône de fer" ou sur l'antiquité me plairait assez. J'ai le courage et la motivation, me manque juste le principal... Les connaissances et le savoir-faire !
pour tout ce que tu va faire tu dois avoir le module system (tu peu faire autrement mais si tu veux aller loin il vaut mieux que tu t'habitue directement a ça), il te faut aussi Openbrf pour ouvrir les fichiers .brf et en importer/exporter le contenu.
d'abord il faut commencer par openbrf,
http://www.mbrepository.com/file.php?id=1466
tu le lance et tu ouvre l'un des fichiers des armes du jeu (ils sont dans le dossier CommonRes et commencent par 'weapon') tu y cherche une arme qui ressemble a la tienne (si c'est une épée cherche une épée ou une arme a une main, si c'est une arme asymétrique cherche une arme asymétrique qui lui ressemble aussi : comme les haches par exemple)
pour une épée on va par exemple prendre 'sword_medieval_a' qui se situe dans weapon_meshes_c.brf une fois le fichier ouvert tu fait un clique droit sur sword_medieval_a, puis export static mesh. Le logiciel va te demander un endroit ou enregistrer ces objet, tu peux le mettre n'importe ou, il ne nous sert que de modèle pour pouvoir placer ton objet, pour qu'il se place bien dans la main.
a ce moment la il faut que tu ouvre le fichier de ton épée, puis faire file-import-wavefront(.obj)
tu importe donc la dernière épée (sword_medieval_a.obj). au centre de ton écran tu verra donc cette épée apparaitre, tu l'aura peut être compris, il faut que ton épée a toi se mette dans la même position que cette épée là (ce qu'il faut surtout c'est que l'endroit ou l'on met la main soit au même endroit et que les épées soient dans le même sens. Mais attention il ne faut pas toucher a l'épée qui n'est pas a toi !
bon une fois fait tu supprime l'épée qui n'est pas de toi et tu exporte ce qui reste en format .obj (même chose file-export-wavefront(.obj) )
de retour a openbrf, tu fait file-new, puis tu vas dans import puis static mesh et tu importe ton épée en .obj (tu peux remarquer que tu peux mettre plusieurs objet dans un seul fichier, ce qui facilite la clarté)
si ça ne se fait pas automatiquement tu dois marquer le nom de la texture que tu as utilisé dans material (tu ne devrai pas encore voir la texture sur ton objet). tu sauvegarde le tout dans le dossier de ton module, dans Resources en pensant a mettre comme type celui pour warband (je ne sais pas si ils sont vraiment différents mais on sait jamais)
bon ensuite pour la texture, toujours dans ton .brf tu fait import-new material et tu y met le nom de ta texture sans l'extension (qui doit être .dds)
et puis voila tu enregistre le tout dans ton dossier Resources.
bon dernière étape avant de passer au module system :
dans le dossier de ton mod, il faut que tu ouvres le module.ini et que tu rajoute vers la fin, après les load_resource = ...
un load_mod_resource = lenomdetonfichierbrf où lenomdetonnfichierbrf est bien évidemment le nom de ton fichier brf sans son extension.
et voila maintenant le jeu essaiera de charger ton fichier lors du chargement de ton mod.
Maintenant pour le module system, je suppose que tu as déjà réussit à le mettre en place, sinon il faudra que je rajoute ça a mon déjà énorme post.
donc il faut que tu ouvres le fichier module_items.py, tu peux l'ouvrir avec n'importe quel éditeur de texte, ou même avec le IDLE de python (même si il est pas très pratique pour sa).
ici tu as tout les objets du jeu et même d'autres qui ne sont pas dans le jeu. (le cheval est considéré comme un objet)
un objet dans le jeu est référencé par premierement un crochet ouvrant [, puis la référence de l'objet entre guillemets, puis le nom qui apparait dans le jeu entre guillemets aussi. apres ça se trouvent d'autres paramettres qui sont expliqué au debut du fichier.
ce que l'on va faire c'est que l'on va devoir rajouter une entrée pour ton objet. por son emplacement il faut faire un choix, soit le mettre a la fin pour avoir une compatibilité avec les anciennes version du mod ou alors le mettre au milieu pour pouvoir facilement le retrouver et le classer avec les autres.
si c'est ta premiere version il n'y a pas de probleme ici, il vaut mieux le mettre au milieu, pour l'épée on va la placer avec les autres épées, cherche par exemple sword_medieval_a et tu tombera sur l'épée qui nous avait servie de modele. on va placer la notre just avant.
pour faire plus simple on va copier cette épée et ensuite l'editer.
donc copier les deux lignes qui correspondent a sword_medieval_a et le coller sur la ligne d'avant.
bon commençons maintenant a éditer :
["sword_medieval_a", "Sword", [("sword_medieval_a",0),("sword_medieval_a_scabbard", ixmesh_carry)], itp_type_one_handed_wpn|itp_merchandise|itp_primary, itc_longsword|itcf_carry_sword_left_hip|itcf_show_holster_when_drawn,
on a ici la première ligne pour l'épée, il faut donc modifier ici,
- en rouge, la référence de l'objet, il faut mettre un nom unique pour éviter les problème.
- en jaune on a le nom qui apparait lorsque l'on a le pointeur de la souris sur l'objet dans l'inventaire par exemple
- en vert doit être écrit le nom du mesh de l'objet (qui est le nom de l'épée sous le format .obj).
- en orange est le mesh alternatif qui peut apparaitre lorsque l'objet est abimé ou ici, lorsque l'arme est retiré du fourreau, on voit toujours le mesh alternatif qui montre le fourreau sans l'arme. Si tu n'en a pas fait il faut supprimer tout ce que j'ai mis en orange. la petite virgule au début ne pose pas problème mais on l'enlève pour la beauté
- en violet on a les attributs de l'arme, dans l'ordre ils disent que l'arme est à une main, qu'on peut l'acheter chez les marchant, et le dernier signifie que c'est une arme principale (donc pas un bouclier ou des flèches)
- en bleu on as tout ce qui concerne le visuel, donc ici on as le premier qui signifie que l'on peut attaquer comme un épée (quatres attaques), le second signifie que l'arme apparait sur le coté gauche lorsque on ne l'a pas en main et enfin le dernier concerne le fourreau de l'arme, qui est visible lorsque l'arme est en main, si tu n'en a pas il faut enlever cette partie : |itcf_show_holster_when_drawn
163 , weight(1.5)|difficulty(6)|spd_rtng(99) | weapon_length(95)|swing_damage(28 , cut) | thrust_damage(22 , pierce),imodbits_sword_high ],
hop deuxième partie plus facile cette fois-ci, on as dans l'ordre :
- le prix de l'arme
- son poids
- la dificulté de l'arme, pour une arme au corps à corps il détermine la force qu'il faut avoir pour la prendre
- la vitesse de l'arme
- la longueur
- les degats, ici swing determine les degats des attaques qui proviennet des cotés et du haut, elles font des degats de type cut et en font 27.
- les degats, ici thrust determine les degats des attaques d'estoc, elles font 22 de degat de type pierce.
- en dernier nous avons la partie qui indique quelles amélioration une telle arme peut avoir, on peut voir ce que signifie chaque 'imobit' tout en haut du fichier
et voila tu as ton arme qui existe et que tu peux acheter dans les marchands d'arme
bon ensuite pour que des unités l'utilisent. il faut changer de fichier, en n'oubliant pas de sauvegarder.
cela ce passe dans module_troops.py
ici on y troupe toutes les unités du jeu, meme le joueur et aussi les chemins d'upgrade qui sont a la fin.
une troupe est sous une forme similaire au objets, on peut avoir par exemple ça :
["farmer","Farmer","Farmers",tf_guarantee_boots|tf_guarantee_armor,no_scene,reserved,fac_commoners,
[itm_cleaver,itm_knife,itm_pitch_fork,itm_sickle,itm_club,itm_stones,itm_leather_cap,itm_felt_hat,itm_felt_hat,itm_linen_tunic,
itm_coarse_tunic,itm_nomad_boots,itm_wrapping_boots],
def_attrib|level(4),wp(60),knows_common,man_face_middle_1, man_face_old_2],
il représente le fermier que l'on voit dans les groupes de paysans ou qui nous aident ou sont contre nous lors d'un raid.
il commence de la même manière, un crocher ouvrant [, puis par la référence de l'unité entre guillemets. on as ensuite le nom au singulier puis celui au pluriel. ce qui nous intéresse le plus ici c'est la deuxième partie, celle où l'on a un autre crochet ouvrant :
[itm_cleaver,itm_knife,itm_pitch_fork,itm_sickle,itm_club,itm_stones,itm_leather_cap,itm_felt_hat,itm_felt_hat,itm_linen_tunic,
itm_coarse_tunic,itm_nomad_boots,itm_wrapping_boots],
ici on a tout les objets que le fermier peut avoir, les armes sont choisis aléatoirement, et tant qu'une troupe a une arme répertorie ici elle en aura une sur le champ de bataille, ce n'est pas le cas pour l'armure, le cheval, les bottes... qui necessitent d'être indiqué pour que ces objets y soient tout le temps (dans la première partie, tf_guarantee_boots|tf_guarantee_armor dit que un fermier aura toujours une armure et toujours des bottes)
pour donner a des troupes une certaine arme, il suffit juste de rajouter un objet ici, en mettant itm_lenomdelarme, itm_ etant nécessaire pour dire au compilateur et au jeu plus tard que cet objet provient de module_ITeM.py et lenomdelarme est la référence de l'arme, il faut aussi penser à séparer chaque objet qu'une troupe aura par une virgule.
voial tu sais tout maintenant j'espère que le gros bloc que j'ai posté ne va pas te décourager
si tu réussi a faire ça alors il faudra que je te dise comment faire pour ton PS 1
pourrait on utuliser un autre saurte de logiciel au lieux de module systeme? car jai telecarger le manager , quant je clique dessus il me demande ou l'installer je lui dit dans mon module mais aucune facon de continuer ....que faire?? (il dise pas continuer et il n'a pas de petit crochet vert au coter de module systeme location).....
oui on peut bien sur utiliser autre chose que le module système (qui n'est pas un logiciel, mais juste principalement des fichier .py). C'est sur que c'est beaucoup plus pratique au début, mais si l'envie est de faire un assez grand mod, alors il vaut mieux commencer tout de suite par le module système, étant donné que celui-ci écrase tout ce qui a été fait avant par ces-dit logiciels.
Et je ne comprend pas un truc, tu parles de quel manager ?
Bon...j'aurais encore besoin d'aide
j'ai regarder les topics en anglais pour savoir comment fonctionne module system et je comprend a peu pres tous jai suivi leurs instructions et lorsque je fais build_module, il load tout mais au debut de chaque load il marque sintaxerror: invalid sintax et marque par la suite la description de mon arme..
et a la toute fin il marque I0error: [errno2] no such file or directory: '../WOTS/modules/copy of nativepostfx.txt'
et lorsque que je commence mon mod : il part,il load un peu et arrete,une fenetre aparait et marque get_object failed for texturele nom de ma texture que mon arme porte) et pourtant je les transformer en .dds et mi dans le dossuier textures
dans le dossier ou tu as tout les fichier .py tu devrai en avoir un qui se nomme module_info.py, tu l'ouvres, et tu devrai avoir quelque chose comme ça :
export_dir = "../WOTS/Modules/Native/"
tu doit changer ce qui est entre les guillemets par le chemin vers le dossier de ton mod ce qui peut donner ça :
export_dir = "C:/Program Files/Mount&Blade Warband/Modules/MonMod/"
bien sur si tu met comme dernier dossier MonMod il faut que tu copies ton dossier Native, et que tu renommes la copie en MonMod
il vaut mieux éviter de compiler le module dans le dossier native, pour éviter tout problème de patch ou autre
merci pour cete info bouYA, d'apres moi sa la fonctionner mais j'ai toujours le probleme de texture..quand je commence le jeu il load un peu et il arrete une fenetre aparai et il marque :
get_object failed for texturele nom de ma texture que mon arme porte)
pourtant je les mis en .dds et dans le dossier textures de mon mod, jai changer le 0 de scan_module_textures en 1 comme il le demandais dans le configuration setting:module
pour essayer je les aussi placer dans le dossier textures de mount&blade warband et sa ne marche pas non plus
quand tu ouvres ton fichier .brf qui utilise cette texture, tu as bien plusieurs onglets nommés mesh, texture et material ?
si ce n'est pas le cas, c'est qu'il te manque ça.
Pour corriger le problème tu doit faire dans openbrf, avec ton .brf ouvert, import et la tu dois choisir selon lequel te manque ( si il te manque l'onglet texture tu choisis New Texture, si il te manque les deux tu dois choisir New Material, et cocher la case pour ajouter la texture aussi). a ce moment tu aura une petite fenetre qui s'ouvre, tu dois marquer dedans le nom de ta texture sans son extension (.dds)