{"product_id":"113885","title":"Apprendre les modèles de conception de jeux avec Unreal Engine ","description":"\u003ccenter\u003e\u003cdiv style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/tmgdisk01.cafe24.com\/images\/vs\/4172\/sv\/3jYEgeIfNnXYYU98ujAED5qrVhqQyp.png?v=1765053968\" style=\"max-width:100%;max-height:10px\"\u003e\u003c\/div\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\n\n\u003cdiv style=\"width:95%\"\u003e\n\n\u003cdiv style=\"text-align:center;font-size:30px;font-weight:bolder;line-height:1.6em\"\u003e Apprendre les modèles de conception de jeux avec Unreal Engine \u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"border-bottom:1px;border-bottom-style:dotted;border-color:;padding-bottom:20px\"\u003e\u003ccenter\u003e\u003ctable align=\"center\" width=\"100%\"\u003e\u003ctbody style=\"border:0px\"\u003e\n\n\u003ctr\u003e\u003ctd align=\"center\" style=\"line-height:1.2em;text-align:center;font-size:18px;color:black;font-weight:bold;padding-bottom:20px;\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\u003ctr\u003e\u003ctd style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/image.yes24.com\/goods\/161395973\/XL\" style=\"max-width:100%;height:auto\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/center\u003e\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;{split_style6}padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e Description \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;word-break:break-all;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eIntroduction au livre\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\u003cdiv\u003e \u003cb\u003eApprenez les modèles de conception pratiques en C++ pour Unreal Engine 5 auprès d'experts.\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e Les modèles de conception nous aident à écrire du code plus rapidement et plus facile à maintenir. \u003cbr\u003eCe livre explique différents modèles de conception et vous montre comment les appliquer aux projets Unreal Engine 5.\u003cbr\u003e En acquérant une compréhension plus approfondie des modèles de conception et du fonctionnement du moteur, vous pourrez surmonter les limitations que vous avez ressenties dans votre pratique du développement sous Unreal.\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e En commençant par les fondamentaux de la programmation Unreal C++ et des Blueprints, vous acquerrez une solide compréhension des concepts et des avantages que vous devez connaître pour appliquer des modèles à votre code.\u003cbr\u003e Tout d'abord, dans la première partie, nous examinerons les modèles intégrés au cœur d'Unreal Engine 5, tels que les doubles tampons, les poids légers, le partitionnement de l'espace, les composants, les méthodes de mise à jour et les arbres de comportement.\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e Dans la partie 2, nous verrons comment remplacer les « ticks », les modèles d'interface et d'observateur d'événements, et même UML pour le découplage des références, et nous écrirons un exemple de gameplay en C++. \u003cbr\u003eLa partie 3 se concentre sur l'utilisation des modèles de conception pour l'optimisation des performances avant la publication, couvrant les modèles comportementaux tels que les modèles singleton, de commande et d'état, les modèles de modèles pour structurer le code, les bacs à sable de sous-classes, l'implémentation d'objets de type et enfin les indicateurs de modification, la localité des données et la mise en commun des objets.\u003cbr\u003e\u003cbr\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cul\u003e\u003cli\u003e Vous pouvez consulter un aperçu du contenu du livre.\u003cbr\u003e \u003cspan\u003eAperçu\u003c\/span\u003e\n\n\u003c\/li\u003e\u003c\/ul\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eindice\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e À propos de l'auteur ix\u003cbr\u003e Introduction du traducteur x\u003cbr\u003e Présentation du réviseur technique xi\u003cbr\u003e Préface du traducteur xii\u003cbr\u003e Avis du lecteur bêta xv\u003cbr\u003e Préface de recommandation xvi\u003cbr\u003e Remerciements xviii\u003cbr\u003e À propos de ce livre xix\u003cbr\u003e\u003cbr\u003e PARTIE I Apprendre d'Unreal Engine 5\u003cbr\u003e\u003cbr\u003e CHAPITRE 1 Comprendre Unreal Engine 5 et Layers 3\u003cbr\u003e 1.1 Exigences techniques 4\u003cbr\u003e 1.2 Présentation d'Unreal Engine 5 4\u003cbr\u003e 1.3 Installation d'Unreal Engine 5 et préparation de l'environnement de développement 6\u003cbr\u003e 1.4 Couche « floue » : Combler le fossé entre C++ et Blueprints 9\u003cbr\u003e 1.4.1 Spécificateurs de propriété 10 \/ 1.4.2 Spécificateurs de fonction 11 \/ 1.4.3 Utilité de l'héritage 12 \u003cbr\u003e1.5 Conversion de Blueprints vers C++ 13\u003cbr\u003e __1.5.1 Exemple pratique 16\u003cbr\u003e 1.6 Résumé 19\u003cbr\u003e 1.7 Exercice 19\u003cbr\u003e __1.7.1 Réponse correcte : 20\u003cbr\u003e\u003cbr\u003e CHAPITRE 2 « Bonjour, motif » 21\u003cbr\u003e 2.1 Exigences techniques 21\u003cbr\u003e 2.2 Principe SOLID 23\u003cbr\u003e 2.2.1 Responsabilité unique 23 \/ 2.2.2 Système ouvert-fermé 24 \/ 2.2.3 Substitution Liskov 26\u003cbr\u003e __2.2.4 Séparation des interfaces 27 \/ 2.2.5 Inversion des dépendances 30\u003cbr\u003e 2.3 Explorer des solutions aux problèmes courants 31\u003cbr\u003e __2.3.1 Problème de la boîte mobile 32 \/ 2.3.2 Problème de la boîte rotative 40\u003cbr\u003e __2.3.3 Problème de chaîne de coulée en cascade 43\u003cbr\u003e 2.4 Compromis 48\u003cbr\u003e 2.5 Résumé 49\u003cbr\u003e\u003cbr\u003e CHAPITRE 3 Modèles UE5 en pratique : double tamponnage, poids légers et partitionnement spatial 51\u003cbr\u003e 3.1 Exigences techniques 52\u003cbr\u003e 3.2 Double tampon 52\u003cbr\u003e 3.3 Poids mouche 56\u003cbr\u003e 3.4 Division spatiale 58\u003cbr\u003e __3.4.1 Introduction aux partitions mondiales 61\u003cbr\u003e 3.4.2 Comprendre le moment où les objets sont chargés 64\u003cbr\u003e __3.4.3 Comment s'assurer que les acteurs requis sont chargés 67\u003cbr\u003e __3.4.4 Activation des partitions du monde aux niveaux existants 69\u003cbr\u003e 3.5 Résumé 69\u003cbr\u003e \u003cbr\u003eCHAPITRE 4 Modèles intégrés d'UE5 : composants, méthodes de mise à jour et arbres de comportement 71\u003cbr\u003e 4.1 Exigences techniques 72\u003cbr\u003e 4.2 Comprendre et créer des composants 72\u003cbr\u003e 4.3 Application de la méthode de mise à jour au prototypage du gameplay 79\u003cbr\u003e 4.4 Utilisation des arbres de comportement 81\u003cbr\u003e __4.4.1 Création d'un contrôleur d'IA 84\u003cbr\u003e __4.4.2 Création de ressources Blackboard 85\u003cbr\u003e __4.4.3 Construction d'un arbre de comportement 86\u003cbr\u003e 4.5 Résumé 101\u003cbr\u003e\u003cbr\u003e PARTIE II Conception modulaire anonyme\u003cbr\u003e\u003cbr\u003e CHAPITRE 5 Élimination des tiques 105\u003cbr\u003e 5.1 Exigences techniques 106\u003cbr\u003e 5.2 Avant de commencer 106\u003cbr\u003e Le monde 106 revient à 5,3 ticks\u003cbr\u003e 5.4 Horloge arrêtée 110\u003cbr\u003e 5.5 Systèmes événementiels 115\u003cbr\u003e 5.6 Résumé 119\u003cbr\u003e\u003cbr\u003e CHAPITRE 6 Communication propre : Modèles d’interface et d’observateur d’événements 121\u003cbr\u003e 6.1 Exigences techniques 121\u003cbr\u003e 6.2 Communication d'interface inter-classes dans UE5 122\u003cbr\u003e __6.2.1 Interface Blueprint 122\u003cbr\u003e 6.2.3 Différences entre les événements et les fonctions d'interface 126\u003cbr\u003e 6.2.4 Interfaces en C++ 129\u003cbr\u003e __6.2.5 Exemple d'implémentation de la communication d'interface 130 \u003cbr\u003e6.3 Implémentation de la communication des délégués d'événements dans UE5 132\u003cbr\u003e __6.3.1 Délégués d'événements dans les plans 132\u003cbr\u003e __6.3.2 Délégués d'événements en C++ 136\u003cbr\u003e 6.3.3 Création d'outils utiles pour les délégués 138\u003cbr\u003e 6.4 Résumé 142\u003cbr\u003e\u003cbr\u003e CHAPITRE 7 Systèmes complètement séparés 143\u003cbr\u003e 7.1 Exigences techniques 144\u003cbr\u003e 7.2 Planification d'une hiérarchie d'exemple à l'aide d'UML 144\u003cbr\u003e 7.2.1 Types de relations entre classes 144\u003cbr\u003e __7.2.2 Diagramme de séquence 146\u003cbr\u003e 7.3 Séparation des connexions de référence 147\u003cbr\u003e 7.3.1 Modularisation et séparation 147\u003cbr\u003e 7.3.2 Construction d'infrastructures 151\u003cbr\u003e 7.3.3 Application de la méthode des plans séparés à un exemple 152\u003cbr\u003e 7.3.4 Avantages de la séparation 163\u003cbr\u003e 7.4 Résumé 164\u003cbr\u003e\u003cbr\u003e PARTIE III Travailler avec Unreal\u003cbr\u003e\u003cbr\u003e CHAPITRE 8 Modèles de conception de bâtiments : Singletons, commandes et état 167\u003cbr\u003e 8.1 Exigences techniques 167\u003cbr\u003e 8.2 Mise en œuvre du modèle Singleton : comprendre pourquoi il s’agit de la boîte de Pandore 168\u003cbr\u003e 8.3 Mise en œuvre de modèles de commande pour divers cas d'utilisation 170\u003cbr\u003e 8.3.1 Modèle de commande pour la fonction Annuler dans l'utilitaire d'édition 172 \u003cbr\u003e8.3.2 Modèles de commandes pour le gameplay en C++ 177\u003cbr\u003e 8.4 Création d'une structure de machine à états multicouches 180\u003cbr\u003e 8.4.1 Comprendre les machines à états d'animation 181\u003cbr\u003e 8.4.2 Implémentation de l'énumération\/commutation 183\u003cbr\u003e 8.4.3 État statique et état instancié 185\u003cbr\u003e 8.4.4 Machines à états concurrents 187\u003cbr\u003e __8.4.5 Machine à états hiérarchique 189\u003cbr\u003e __8.4.6 Automates à pile 190\u003cbr\u003e 8.5 Résumé 191\u003cbr\u003e\u003cbr\u003e CHAPITRE 9 Structuration du code à l'aide de modèles comportementaux : modèles, environnements d'exécution isolés et objets de type 193\u003cbr\u003e 9.1 Exigences techniques 194\u003cbr\u003e 9.2 Examen des modèles de gabarits 194\u003cbr\u003e __9.2.1 Création d'un modèle (classe parente) 196\u003cbr\u003e __9.2.2 Création d'une classe enfant 198\u003cbr\u003e __9.2.3 Modèle Pistolet 200\u003cbr\u003e __9.2.4 Modèle de fusil de chasse 205\u003cbr\u003e 9.3 Comprendre le modèle de bac à sable des sous-classes 207\u003cbr\u003e __9.3.1 Création d'un bac à sable (classe parente) 208\u003cbr\u003e __9.3.2 Création d'une classe enfant 211\u003cbr\u003e __9.3.3 Pistolet de bac à sable 211\u003cbr\u003e __9.3.4 Fusil à pompe Sandbox 213\u003cbr\u003e 9.4 Modèle d'objet de type 215 \u003cbr\u003e__9.4.1 Variantes 216 \/ 9.4.2 Tables de données 217 \/ 9.4.3 Ressources de données 218\u003cbr\u003e 9.5 Résumé 222\u003cbr\u003e\u003cbr\u003e CHAPITRE 10 Optimisation par les modèles 223\u003cbr\u003e 10.1 Exigences techniques 224\u003cbr\u003e 10.2 Utilisation des indicateurs de modifications pour réduire les traitements inutiles 224\u003cbr\u003e __10.2.1 Application du drapeau sale 225\u003cbr\u003e 10.3 L’impact de la localité des données sur l’efficacité du code 226\u003cbr\u003e __10.3.1 Répartition chaud\/froid 227\u003cbr\u003e __10.3.2 Tableaux contigus 228\u003cbr\u003e 10.4 Mise en commun des objets : Gestion des ressources pour gagner du temps 229\u003cbr\u003e __10.4.1 Mise en œuvre du regroupement d'objets 229\u003cbr\u003e __10.4.2 Création d'un pool d'objets 231\u003cbr\u003e 10.5 Résumé 241\u003cbr\u003e\u003cbr\u003e Recherche 244\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eImage détaillée\u003c\/b\u003e \u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cdiv\u003e\u003cimg src=\"https:\/\/image.yes24.com\/momo\/TopCate5941\/MidCate007\/594060843.jpg\" border=\"0\" alt=\"Image détaillée 1\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eDans le livre\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e Il est recommandé, comme bonne pratique, de n'instancier que des classes Blueprint dans le monde.\u003cbr\u003e Cela facilite le débogage des classes et des références de liens.\u003cbr\u003e Car l'éditeur intègre tous les outils visuels nécessaires au suivi de l'exécution. \u003cbr\u003eEt lorsque les noms de classes changent ou que les répertoires sont déplacés, des liens dynamiques sont utilisés à la place des liens textuels afin d'éviter les plantages.\u003cbr\u003e Pour que cette stratégie d'héritage fonctionne bien, il est utile de réfléchir au système d'un point de vue abstrait du gameplay.\u003cbr\u003e Quelles classes influencent les mécanismes ? Exprimer ces classes en C++ est efficace et permet une conception hiérarchique.\u003cbr\u003e À partir de là, nous héritons de la classe de plan à la fin de chaque branche.\u003cbr\u003e\u003cbr\u003e --- p.12\u003cbr\u003e\u003cbr\u003e Il est intéressant d'imaginer un peintre utilisant une photocopieuse.\u003cbr\u003e L'artiste avait reçu pour instruction d'envoyer au moins deux exemplaires de chaque tableau qu'il créait ; il a donc astucieusement décidé d'utiliser une photocopieuse pour faire des copies de ses œuvres.\u003cbr\u003e Pour gagner du temps lors du transfert de votre œuvre du chevalet au photocopieur, placez simplement votre toile directement sur le scanner. \u003cbr\u003eDessinez ensuite aussi vite que possible tout en appuyant simultanément sur le bouton de copie.\u003cbr\u003e Il y a ensuite une course où l'artiste doit tracer des lignes plus vite que la tête de numérisation.\u003cbr\u003e En cas de succès, le visuel et le texte seront identiques et aucun délai supplémentaire ne sera nécessaire.\u003cbr\u003e Mais dans la plupart des cas, la tête de numérisation est en avance sur le peintre et ne dessine que jusqu'au point où elle le dépasse, laissant le reste comme une copie vierge.\u003cbr\u003e C’est ce qu’on appelle le déchirement de trame (déchirement de trame p), et c’est ce problème que le modèle à double tampon tente de résoudre.\u003cbr\u003e\u003cbr\u003e --- p.52\u003cbr\u003e\u003cbr\u003e Il est facile de gérer les valeurs d'endurance.\u003cbr\u003e Il vous suffit de définir une variable flottante pour suivre la valeur actuelle et une autre variable pour définir la valeur maximale dans l'éditeur.\u003cbr\u003e Dans cette optique, la définition des spécificateurs de propriété dans le bloc UPROPERTY est l'élément le plus important.\u003cbr\u003e La carte des dégâts peut également être gérée très simplement. \u003cbr\u003eCeci est dû au fait qu'Unreal Engine 5 possède un système d'interface de dégâts qui se propage à tous les AActors.\u003cbr\u003e Pour attacher ce hook, vous devez gérer l'événement OnTakeAnyDamage comme indiqué dans l'extrait de code HealthComponent.h suivant :\u003cbr\u003e Il vous suffit d'une fonction qui partage la même signature que .\u003cbr\u003e\u003cbr\u003e --- p.76\u003cbr\u003e\u003cbr\u003e Maintenant, si vous testez le système en appuyant sur lecture dans la fenêtre d'affichage, vous devriez pouvoir sélectionner le personnage vert et le déplacer près du personnage rouge.\u003cbr\u003e Lorsque le personnage vert s'arrête, vous devez trouver la cible la plus proche, changer de direction et générer une chaîne de caractères « Shoot ».\u003cbr\u003e Cela continuera jusqu'à ce que la cible ne soit plus valide, auquel cas cela se poursuivra indéfiniment car cela n'infligera aucun dégât à l'unité ciblée.\u003cbr\u003e De plus, il n'existe actuellement aucun moyen de sortir l'IA de la tâche BTT_ShootTarget ; par conséquent, une fois la cible trouvée, elle ne peut plus déplacer le personnage. \u003cbr\u003ePour infliger des dégâts à une unité ennemie, vous devez utiliser le composant Santé que vous avez créé précédemment pour remplacer le nœud Print String de l'événement BP_EliteUnit Attack Target par une logique permettant de vérifier le réticule puis d'appliquer les dégâts.\u003cbr\u003e\u003cbr\u003e --- p.98\u003cbr\u003e\u003cbr\u003e La prochaine information utile à transmettre au composant est un signal émis à chaque fois qu'un dommage est infligé.\u003cbr\u003e Plusieurs options sont possibles pour la transmission des données.\u003cbr\u003e Par exemple, si vous développez un jeu de type Call of Duty, vous devrez fournir au joueur une interface utilisateur qui indique la direction d'où proviennent les dégâts.\u003cbr\u003e L'exemple ci-dessous fournit des informations sur le changement qui vient de se produire, la nouvelle valeur de santé et la valeur de santé maximale.\u003cbr\u003e Cela vous permet de mettre à jour les barres de santé de l'interface utilisateur et, dans certains cas, de générer des chiffres de dégâts dans le monde.\u003cbr\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e --- p.245\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eAvis de l'éditeur\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e - Comprendre l'essence et l'utilité des modèles de conception \u003cbr\u003e- Comprendre les calques et leur fonctionnement dans Unreal Engine 5\u003cbr\u003e - Comprendre la relation entre le code C++ d'Unreal Engine 5 et les Blueprints\u003cbr\u003e - Découvrez les modèles de conception présents dans les fonctionnalités existantes d'Unreal Engine 5.\u003cbr\u003e - Analyse de l'objectif des modèles de conception appliqués à Unreal Engine 5\u003cbr\u003e - Appliquer de manière créative des modèles de conception au code existant pour résoudre les problèmes courants.\u003cbr\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e SPÉCIFICATIONS DES PRODUITS \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eDate d'émission :\u003c\/strong\u003e 13 novembre 2025\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eFormat :\u003c\/strong\u003e Guide de reliure de livres brochés\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eNombre de pages, poids, dimensions :\u003c\/strong\u003e 264 pages | 188 × 245 × 16 mm\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN13 :\u003c\/strong\u003e 9791194587538 \u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cspan\u003e\u003c\/span\u003e\n\n\u003c\/center\u003e\n\n\n\u003c\/center\u003e","brand":"LIBRAIRIE COREENNE","offers":[{"title":"Default Title","offer_id":43893079932970,"sku":"113885","price":37.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/2750\/5962\/files\/b57d9e9c4715e37f9553d6ecb1ed0dd8.jpg?v=1765387714","url":"https:\/\/librairie.coreenne.fr\/products\/113885","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}