Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

KitKat

 tutoriel / partage [SOURCES]Remplacer granny 2.4 par Granny 2.9

Messages recommandés

Bonjour/Bonsoir !

 

Dans ce tutoriel, je vais vous expliquer comment passer de Granny 2.4 à Granny 2.9.

Ce tutoriel se passera dans les sources client.

 

Donc, pour commencer, cherchez "granny_common_2_9_12_0_release.zip" dans le fichier extern de vos sources Novaline (si vous ne l'avez pas, le lien de téléchargement de l'archive serra mis à la fin du tutoriel).

Une fois ce fichier trouvé, il vous faudra l'extraire puis prendre granny.h dans le dossier include puis le remplacer dans vos sources client (dans le fichier include).

Prennez les fichiers .lib et .pdb dans le dossier lib/win32 puis mettez le dans vos sources client (fichier lib).

Une fois ceci fais, attaquons le code !

 

(Attention, il faut faire les tabulation sois même !)

 

 

Rendez vous dans Mesh.cpp du projet EterGrnLib.

Cherchez:

int * boneIndices = GrannyGetMeshBindingToBoneIndices(pgrnMeshBinding);
Remplacez par:
int * boneIndices = (int*)GrannyGetMeshBindingToBoneIndices(pgrnMeshBinding);
 
 

Cherchez:

return GrannyGetMeshBindingToBoneIndices(m_pgrnMeshBindingTemp);
Remplacez par:
return (int*)GrannyGetMeshBindingToBoneIndices(m_pgrnMeshBindingTemp);
 

Cherchez:

m_pgrnMeshDeformer = GrannyNewMeshDeformer(pgrnInputType, pgrnOutputType, GrannyDeformPositionNormal);
Remplacez par:
m_pgrnMeshDeformer = GrannyNewMeshDeformer(pgrnInputType, pgrnOutputType, GrannyDeformPositionNormal, GrannyAllowUncopiedTail);
Voilà, nous en avons finis avec la partie Mesh.cpp vous pouvez enregistrer.

 

 

Maintenant, ouvrez maintenant ModelInstanceUpdate.cpp du même projet.

Cherchez:

GrannyUpdateModelMatrix(m_pgrnModelInstance, fSecondsElapsed, (const float *) pMatrix, (float *) pMatrix);
Remplacez par:
GrannyUpdateModelMatrix(m_pgrnModelInstance, fSecondsElapsed, (const float *) pMatrix, (float *) pMatrix, false);
Nous en avons aussi finis avec ModelInstanceUpdate.cpp vous pouvez enregistrer.

 

Maintenant, ouvrez Material.cpp du même projet.

Cherchez:

granny_variant twoSideResult = GrannyFindMatchingMember(pgrnMaterial->ExtendedData.Type, pgrnMaterial->ExtendedData.Object, "Two-sided");

if (NULL != twoSideResult.Type)
GrannyConvertSingleObject(twoSideResult.Type, twoSideResult.Object, TwoSidedFieldType, &twoSided);
Remplacez par:
granny_variant twoSideResult;

if (GrannyFindMatchingMember(pgrnMaterial->ExtendedData.Type, pgrnMaterial->ExtendedData.Object, "Two-sided", &twoSideResult)  
&& NULL != twoSideResult.Type)
GrannyConvertSingleObject(twoSideResult.Type, twoSideResult.Object, TwoSidedFieldType, &twoSided, NULL);
Vous en avez finis avec cette partie aussi, vous pouvez enregistrer.

 

Maintenant, ouvrez ModelInstanceModel.cpp du projet EterGrnLib (toujours le même).

Cherchez:

return GrannyGetMeshBindingToBoneIndices(m_vct_pgrnMeshBinding[iMeshBinding]);
Remplacez par:
return (int*)GrannyGetMeshBindingToBoneIndices(m_vct_pgrnMeshBinding[iMeshBinding]);
Vous en avez finis avec ModelInstanceModel.cpp et le projet EterGrnLib, vous pouvez enregistrer.

 

Maintenant, allez dans le projet UserInterface et ouvrez UserInterface.cpp.

Cherchez:

static void GrannyError(granny_log_message_type Type,
					granny_log_message_origin Origin,
					char const *Error,
					void *UserData)
{
   TraceError("GRANNY: %s", Error);
}
Remplacez par:
static void GrannyError(granny_log_message_type Type,
					granny_log_message_origin Origin,
					char const* File,
					granny_int32x Line,
					char const *Error,
					void *UserData)
{
   TraceError("GRANNY: %s", Error);
}
Voilà, vous en avez finis avec les sources client. Vous pouvez recompiler !

 

Pour finaliser cette installation, rendez vous dans l'archive du début et puis allez dans lib/win32.

Prenez granny2.dll et remplacer l'ancien de votre client.

 

 

Voilà, c'est tout pour ce tuto, je vous remercie de la lecture.

En cas de problème, veuillez aller dans la section Aide/Question/Support.

Lien de l'archive: https://mega.nz/#!AY8FXQ5a!2-Z9pZgrwT36Q0AZL5jYXWa6QUSxmvLCx_NPgEa01io

(Merci à Liberty de l'avoir upload)

Source du code: Metin2Dev

 

Cordialement.

Modifié par Takuma

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci du partage :) !

Partager ce message


Lien à poster
Partager sur d’autres sites

[glow=silver]

 

Merci pour le partage, je valide.

 

[/glow]

Partager ce message


Lien à poster
Partager sur d’autres sites

Après ça, ne faudrait-il pas convertir tous les gr2 ? ^^'

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour

 

Non, il est inutile de les convertir, ils marchent tout de même.

 

Cordialement.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

Oui ils marchent, mais avec un flood syserr pas possible à cause de leur version ^^

Partager ce message


Lien à poster
Partager sur d’autres sites

Non mais une erreur par gr2, mais ça marche... Faudrait quand même penser à les convertir.

 

Cordialement, Takuma.

Partager ce message


Lien à poster
Partager sur d’autres sites

3ds max Exporter pls?

Partager ce message


Lien à poster
Partager sur d’autres sites

Sinon il suffit juste d'aller dans vos sources client userinterface.cpp et chercher void GrannyError(granny_log_message_type Type,

 

et de commenter le bout de code comme ceci :

//static void GrannyError(granny_log_message_type Type,
// granny_log_message_origin Origin,
// char const*  File,
// granny_int32x Line,
// char const* Message,
// void * UserData)
//{
// TraceError("GRANNY: %s", Message);
//}

et un peu plus bas

// granny_log_callback Callback;
//   Callback.Function = GrannyError;
//   Callback.UserData = 0;
//   GrannySetLogCallback(&Callback);
return 1;

et votre syserr sera clean de clean.

 

sources: mt2dev by Vamos.

Modifié par Link

Partager ce message


Lien à poster
Partager sur d’autres sites

Cacher l'erreur est la pire bêtise à faire, les modèles sont tout sauf optimisés pour cette version de Granny, donc si vous devez ajouter 0.1 secondes par modèles chargés, vous vous retrouvez avec des temps de chargement allongés pour rien. Il y a un convertisseur disponible pour convertir les modèles, notamment sur M2D.

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai pas trouvé ce convertisseur en question justement c'est pour sa que j'ai fais de cette façon

Partager ce message


Lien à poster
Partager sur d’autres sites

Ça te donne une occasion de retourner chercher ;)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Thanks

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Nice thanks! :D

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci bien !

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Pas de support ici, merci d'aller dans la section prévue à cet effet,
Je nettoie

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

By using this site, you agree to our Conditions d’utilisation.