Salut, je pense que tu t'es un peu compliqué la vie en effet 😅. J'ai galéré aussi mais je suis parvenu à ce résultat qui fonctionne (dans cet exemple c'est pour détruire des actors): .h : float ForEachLoopDelay = 0.1f; TArray<AActor*> MyActorArray; void DestroyArrayActor(AActor* ActorToDestroy); .cpp : void AMyClass::DestroyArrayActor(AActor* ActorToDestroy) { ActorToDestroy->Destroy(); } Et plus loin dans une fonction je fais mon for avec delay pour appeler ma fonction : for (int32 i = 0; i < MyActorArray.Num(); i++) { auto ActorToDestroy= MyActorArray[i]; FTimerHandle TimerHandle; GetWorld()->GetTimerManager().SetTimer(TimerHandle, FTimerDelegate::CreateLambda([this, ActorToDestroy,] { DestroyArrayActor(ActorToDestroy); }), (i + 0.1f) * ForEachLoopDelay , false); } A la fin je rajoute une petite valeur à "i" sinon pour l'index 0 on a un délai de 0 et celui ci ne s'exécute pas, il commence par traiter l'index 1
bonjour, je débute je comprend rien 😱😓😭 tu n'aurais pas une source qui donne les prérequis pour suivre sans souffrance ? parce que je crois bien que c'est ton premier tuto, je trouve pas d'introduction. Merci à plus.
Bonjour, Votre vidéo m'intéresse énormément et va beaucoup m'aidé pour mon projet MERCI. J'avais une petite question sur le spawn des actor avec l'interface. Je vois que l'éditeur n'est pas démarré dans la vidéo. Est ce que cela signifie que l'on peut faire spawn des actors grace a l'interface et enregistré de maniere permanente les changements fait sur la scene ? Encore merci pour cette série de vidéo claire et simple qui nous permette de mieux apréhender unreal
Je suis en train de suivre le tutoriel, j'ai eu un peu de mal avec la partie sur les inputs du fait du nouveau système "Enhanced Input Action". Après quelques recherches, voici la solution pour ne pas utiliser l'ancien système décrit de 4:27 a 8:30 => Dans le dossier /Core/Player, click droit => Input => Input Action. Renommer cet Input Action en "IA_ZoomIn", puis CTRL + S pour sauvegarder. Dupliquez "IA_ZoomIn" et renommez le nouvel Input Action en "IA_ZoomOut", puis CTRL + S pour sauvegarder. Toujours dans le dossier /Core/Player, click droit => Input => Input Mapping Context. Renommer cet Input Mapping Context en "IM". Double click pour l'ouvrir. Ajoutez un mapping (avec le petit +). Sélectionnez "IA_ZoomIn" dans le menu déroulant. Ajoutez un control binding (avec le petit +) et sélectionnez => Mouse => Mouse Wheel Up. Répétez l'opération pour "IA_ZoomOut" avec un nouveau mapping. Enregistrez avec CTRL + S et fermez l'Input Mapping Context. Dans BP_Pawn, il faut preparer le nouveau controller. Ouvrez BP_Pawn et allez dans l'Event Graph. Ajoutez le noeud "Event BeginPlay" et reliez le a un nouveau noeud "Enable Input". Ajoutez le noeud "Get Player Controller" et reliez sa "Return Value" a la valeur "Player Controller" du noeud "Enable Input". Depuis le noeud "Get Player Controller" ajoutez une autre sortie a "Return Value" pour un nouveau noeud "Enhanced Input Local Player Subsystem". Reliez "Enable Input" a un nouveau noeud "Add Mapping Context". Reliez la sortie de "Enhanced Input Local Player Subsystem" a la valeur "Target" de "Add Mapping Context". Enfin, dans "Add Mapping Context", assignez "IM" dans le menu déroulant de la valeur "Mapping Context". Suivez le reste du tutoriel. Compilez et sauvegardez.
Super utile, j'étais familier avec git pour du développement software mais je ne l'avais jamais utilisé avec Unreal ! Merci pour ton contenu, hâte de voir la suite du cours !
Merci beaucoup pour ce que tu fais. J'ai connu ta chaîne avec le jeu tactique. Et, je suis très heureux que tu nous fasses maintenant des tutos en C++.
Dans la partie CalculateMinCost, l'affichage / update du min cost sur les cases ne se fait que si on passe la souris sur la case. Sinon, c'est le MinCost calculé prédemment qui s'affiche.
Salut j'ai acheté cet asset mais je me demande comment changer les cases par des images. Par exemple comment changer les cases par des montagnes, de l'eau etc... Pcq juste des couleurs c'est comme pas assez. Merci et j'ai bien hâte de découvrir comment fonctionnent. Et il y a un tutoriel sur comment faire de grandes cartes ?
Heey! Pour remplacer les couleurs par des images, ça dépend ce que tu veux dire. ------ Si tu parles des couleurs sur la grille tactique: Tu vas devoir absolument modifier le materiel. (Et vu que le même materiel est utilisé à plusieurs endroits, je dirais même d'en créer une copie.) Le materiel de base qui est utilisé par la grille tactique, c'est M_Grid. Ensuite il y a les instances: MI_Grid_Square, MI_Grid_Hexagon & MI_Grid_Triangle. Et ils sont assignés à la grille à l'intérieur de GT_GridshapeData. Le problème pour assigner des images à la place des couleurs, c'est que ce n'est pas possible de set une texture par instance, seulement des scalar parameters. Le workaround serait d'ajouter toutes les textures possibles dans le materiel et ensuite de choisir la bonne texture avec un scalar. Les scalar parameter sont les PerInstanceCustomData, tu peux en ajouter un nouveau ou remplacer les existants. Et l'edroit où tu dois set la valeur du custom data serait dans la fonction AddInstance de BP_GridMeshInst Si tu veux plus d'information sur les custom data, j'ai une vidéo sur le sujet: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-iiwRu2_kHTE.html&ab_channel=AlexQuevillon%5BFr%5D%28UnrealEngineTutoriels%29 ------ Si tu parles des couleurs sur la grille normale, tu as 2 choix: Soit faire comme la grille tactique et modfiier les materiaux. Dans ce cas, la logique est la même, mais les materiaux sont: M_Grid_Flat, MI_Grid_Flat_Square, MI_Grid_Flat_Hexagon & MI_Grid_Flat_Triangle. Ou alors (ce que je recommande), tu peux simplement intégrer les images dans tes levels quand tu place les obstacles et tout. Comme ça, pas besoin de modifier les materiaux et tu as seulement des images aux endroits que tu veux. Et ca te permetterais aussi d'utiliser des meshes et pas juste des textures. Selon moi, la grille normale devrait juste être utilisée pour représenter les lignes et les cases affectées par le joueur. Mais les deux sont possible donc c'est ton choix :P ------ Que veux-tu dire par "faire de grandes cartes" exactement? La grosseur ne devrait pas affecter la façon de faire, tu peux faire les levels aussi grand que tu veux. Le seul problème si la grille est vraiment grande c'est que ça va prendre plus de temps à calculer le pathfinding et les sorts. Et le seul moyen pour améliorer les performances dans ce cas serait de convertir le BP_GridPathfinding en C++.
Pour ceux qui utilisent UE 5.3 et qui ne comprennent pas pourquoi toutes les boutons WASD donne un mouvement avant/arrière (que l'axe X), rajoutez "Swizzle Input Axis Values" dans Modifiers de A,D,Left,Right de votre Input Mapping Context. Cela projet les actions de ces boutons à l'axe Y dans World Space.
J'ai remarquer que si je spawn des units et qu'apres je regen la grille en fonction de l'environnement (ou le contraire), je ne suis plus en mesure d'enlever ces units la par la suite. Le meme bug que pour les deux actions dans le fond.
Pour celles et ceux qui utilisent la 5.2, vous pourriez avoir des problèmes de flickering (et même, de disparition de couleurs) sur les cases discovered & analysed dès les premiers ajouts de contrôle de la variable "delay". Vous pourriez également avoir des soucis avec les FPS, qui seront sensiblement plus bas que ceux de la vidéo. Rassurez-vous de suite : c'est normal, et si vous tenez jusqu'à la fin de la vidéo les diverses optimisations présentées règleront tout ces problèmes !
Merveilleux tutos, je le reprend car je souhaiterai m'inspirer pour mon propre jeu. Par contre les Input axis ont été remplacé par les "Enhanced Input action" sur les patch UE5. J'ai pu fixé le problème, je pense qu'une note pour les futurs arrivant sur ton projet, serait sympa car j'ai galéré à trouver la solution.
Merci! Et voici comment utiliser les Enhanced Inputs à la place des inputs de UE4 ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-KglmpLaF0Wc.html&ab_channel=AlexQuevillon%5BFr%5D%28UnrealEngineTutoriels%29
Oh, malheureusement, non. La feature a été ajoutée en 4.25. Oops, je pensais que c'était plus vieux que ça, Il n'y a pas d'autre façon de changer les variables d'un instance mesh. Question par contre, pourquoi es-tu en 4.23? Personnellement, j'ai travaillé beaucoup avec 4.25 et 4.27 et les deux sont très stables.
Release Notes! 1.7 (April 2024) - Compiled for Unreal 5.4 - Now supporting Animations. Import Animations into Unreal and link them to the desired Skeleton. (Doesn't assign Animations to Actors in Levels or Components in Blueprints) - Now possible to use FBX Exporter to export .asset meshes. Import if not perfect as I don't have much control over FBX Exporter. Meshes will be there, but may have Location, Rotation and Scale issues. - Added more settings to configure your mesh imports in Unreal. Now possible to set Location, Rotation & Scale offsets on all meshes. - Added EditorScriptingUtilities as dependency so the plugin enables itself if not already enabled. - Fixed bug where the Utu Plugin button wasn't visible on the toolbar - More details added in the log during the process for debug purposes 1.6 (November 2023) - New free Utu Lite Plugin to go through your Unity project to test if it is compatible with Utu Plugin - Now possible to export assets that are not part of scenes - Now automatically rename assets with invalid characters when importing them in Unreal - Import option to choose if you want to import the LODs or not - Import option to choose if you want to create Material Instances or Materials - Button in Unity to display the Export folder - More logs during the import process in Unreal - 1.6.1 Bug Fixes (Unity Only): - Added category buttons to jump to the desired asset type - Added filter text field to filter assets - Improved performances when displaying assets in a large project - Improved performances exporting assets in a large project - Added more logs messages during export - Fixed progress bar when exporting different asset types 1.5 (October 2023) - Creating material instances instead of materials - Added import of URP, HDRP and more Standard shaders - Added a bit more support for custom shaders by importing all the variables in Unreal (material graph still needs to be done by you) 1.4 (September 2023) - Compiled for Unreal 5.3 - Compiled for Mac - Some bug fixes 1.3 (August 2023) - Added import of gameobjects mobility (Movable vs Static) - Added settings to adjust meshes import scale - Added import of .obj files (but not 100% supported as .fbx is the recommended format) - Added error message when asset filename contains invalid characters 1.2 (July 2023) - Fix crash on Unreal 5 - Support meshes that aren't using ConvertUnits 1.1 (July 2023) - Added support for multiple static meshes coming from the same fbx file - Added a list of settings to adjust the import process a little bit - Compiled for Unreal 5.2 1.0 (March 2023) - Initial Release Enjoy! :)
UE5 - Pour convertir les actors en static mesh, l'action ne se trouve plus sur le menu du clique droit mais dans les options de 'Actor' qui est un des menu en haut de la fenetre (File, Edit, Window, Tools...)
Hello! Merci pour le tuto, c'est vraiment du matériel de qualité :) Une petite note pour ceux qui vont suivre le tuto sous UE 5, il y a un leger soucis que j'ai rencontre lors de l'import des meshes qui faisait que les ombres étaient bizarre. Pour corriger le probleme, j'ai dû importer directement les normals au lieu de laisser UE les calculer
[AMÉLIORATION] SpinBox_WithName, SpinBox_WithName_Vector2, SpinBox_WithName_Vector3 À cause de la façon dont les spinboxes sont codées en ce moment, si les valeurs de MinMaxSlider sont hors des limites de MinMaxValue, ça cause des problèmes. La solution est simplement de faire sûr que les valeurs de MinMaxSlider soient toujours entre les valeurs de MinMaxValue. Mais pour être 100% sûr que ça n'arrive plus jamais, je recommande de clamp les valeurs dans le PreConstruct. Voici où placer le clamp dans les 3 spinboxes. (Vector2 & Vector3 spinboxes arrivent plus tard dans la série) discord.com/channels/748973899408212099/1122832253920235601
[AMÉLIORATION] SpinBox_WithName, SpinBox_WithName_Vector2, SpinBox_WithName_Vector3 À cause de la façon dont les spinboxes sont codées en ce moment, si les valeurs de MinMaxSlider sont hors des limites de MinMaxValue, ça cause des problèmes. La solution est simplement de faire sûr que les valeurs de MinMaxSlider soient toujours entre les valeurs de MinMaxValue. Mais pour être 100% sûr que ça n'arrive plus jamais, je recommande de clamp les valeurs dans le PreConstruct. Voici où placer le clamp dans les 3 spinboxes. discord.com/channels/748973899408212099/1122832253920235601
Merci pour ces super tutos je m'en sort pas trop mal jusqu'ici mais j'ai un petit soucis dans tab_Grid pour la spinbox location dans min max value si je met -1000 1000 alors quand je slide mes valeur vont de 1000 en 1000 j'aimerais qu'elles se deplacent de 50 en 50 comment dois je faire ? (le lien discord est vide..) encore merci et force a toi !
@@RIREetRIRE Es-tu sûr que le lien Discord ne fonctionne pas? Je viens de l'essayer et il fonctionne de mon côté. (Évidemment, il faut être sur le server et avoir accepté les règles.) Sinon: MinMaxValue contrôle les chiffres minimum et maximum que tu peux écrire dans la spinbox. MinMaxSlider contrôle les chiffres minimum et maximum que tu peux avoir en slidant dans la spinbox. Tant que MinMaxSlider est entre (ou égale) aux valeurs de MinMaxValues, tu devrais être correct. Et, pour ce qui est des bonds entre chaque valeurs dans la spinbox (vu que je crois que c'est ce que tu veux): C'est la valeur de Delta. Si tu veux des bonds de 50, tu dois écrire 50 dans le Delta. (Et cocher la case de snap au delta) Donc, dans ton cas: - MinMaxValue pourrait être (-1000, 1000), mais peut être changée selon ce que tu veux. - MinMaxSlider pourrait être (-300, 300), mais peut être changée selon ce que tu veux. - Delta devrait être 50, vu que c'est ce que tu veux
@@AlexQuevillonFr OOh merci beaucoup pour ta réponse je vais tester la modification suggérée, pour le discord en effet je ne suis pas sur le server, j'ai du faire trop de session de code je ne réfléchissais plus correctement haha, encore merci continue tes super tutos et en plus tu répond t'es un king ! Pour info je suis sur UE5.0 et n'ai pas eu de soucis particulier pour le moment ;)