Déploiement et Optimisation
Last updated
Last updated
Le déploiement est le processus qui consiste à rendre votre application disponible au public sur un site web. Needle Engine garantit que votre projet est aussi petit et rapide que possible en utilisant les dernières techniques de compression telles que KTX2, Draco et Meshopt.
Idéal pour les applications web spatiales et le partage d'assets.
Idéal pour l'expérimentation et le développement de code côté serveur.
Idéal pour héberger votre propre site web et des noms de domaine personnalisés.
Souvent utilisé pour les jeux.
Hébergement gratuit de pages statiques.
Plateforme pour les développeurs frontend
Déployez directement sur n'importe quel serveur avec support FTP. Les protocoles FTP et SFTP sont pris en charge.
Lorsque vous compilez vers un dossier, vous pouvez télécharger les fichiers sur n'importe quel serveur web ou autre service d'hébergement.
Plateforme de jeux sur Facebook et Facebook Messenger.
::: tip Vous pensez qu'il manque quelque chose ? N'hésitez pas à nous le faire savoir sur notre ! :::
Consultez les guides ci-dessus pour savoir comment accéder aux options depuis votre Éditeur (par exemple Unity ou Blender).
Nous recommandons généralement de réaliser des compilations de production pour une taille de fichier et une vitesse de chargement optimisées (voir plus d'informations ci-dessous).
Les compilations de production compresseront par défaut les textures en utilisant KTX2 (soit ETC1S soit UASTC selon leur utilisation dans le projet) mais vous pouvez également sélectionner la compression WebP et choisir un niveau de qualité.
Comment choisir entre la compression ETC1S, UASTC et WebP ?
Utilisation mémoire GPU
Faible
Faible
Élevée (non compressée)
Taille du fichier
Faible
Élevée
Très faible
Qualité
Moyenne
Très élevée
Dépend du paramètre de qualité
Utilisation typique
Fonctionne pour tout, mais optimal pour les textures de couleur
Textures de données à haute résolution : normal maps, roughness, metallic, etc.
Fichiers où la qualité ETC1S est insuffisante mais UASTC est trop volumineux
Vous avez la possibilité de sélectionner les options de compression de textures et de chargement progressif par Texture en utilisant le Needle Texture Importer dans Unity ou dans l'onglet Material dans Blender.
Par défaut, une compilation de production compressera les maillages en utilisant la compression Draco. Utilisez le composant MeshCompression
pour choisir entre draco et mesh-opt par glTF exporté.
De plus, vous pouvez configurer la simplification de maillage pour réduire le nombre de polygones pour les compilations de production dans les paramètres d'importation de maillage (Unity). Lorsque vous visualisez votre application dans le navigateur, vous pouvez ajouter ?wireframe
à votre URL pour prévisualiser les maillages.
Comment choisir entre Draco et Meshopt ?
Utilisation mémoire GPU
Moyenne
Faible
Taille du fichier
La plus faible
Faible
Compression d'animation
Non
Oui
:::details Comment définir les paramètres de compression draco et meshopt ? Ajoutez le composant MeshCompression pour sélectionner quelle compression doit être appliquée par glTF exporté.
Pour modifier la compression de la scène actuelle, ajoutez-le simplement n'importe où dans votre scène racine.
Pour modifier la compression d'un prefab ou NestedGltf, ajoutez-le à un GltfObject
ou au prefab qui est référencé / exporté par l'un de vos composants.
Pour modifier la compression d'une scène référencée, ajoutez-le simplement à la scène référencée qui est exportée :::
Vous pouvez également ajouter le composant Progressive Texture Settings
n'importe où dans votre scène, pour que toutes les textures de votre projet soient chargées progressivement. Le chargement progressif n'est pas appliqué aux lightmaps ni aux textures de skybox pour le moment.
Avec le chargement progressif, les textures seront d'abord chargées en utilisant une version de résolution inférieure. Une version de qualité complète sera chargée dynamiquement lorsque la texture deviendra visible. Cela réduit généralement considérablement le chargement initial de votre scène.
:::details Comment activer le chargement progressif des textures ?
Depuis Needle Engine 3.36, nous générons automatiquement des maillages LOD et basculons entre eux à l'exécution. Les LODs sont chargés à la demande et uniquement lorsque nécessaire, donc cette fonctionnalité réduit à la fois votre temps de chargement et les performances.
Avantages clés
Temps de chargement initial plus rapide
Temps de rendu plus rapide grâce à moins de sommets à l'écran en moyenne
Raycasting plus rapide grâce à l'utilisation des maillages LOD
Vous pouvez soit désactiver la génération de LOD pour l'ensemble de votre projet dans le composant Progressive Loading Settings
, soit dans les paramètres du Mesh Importer.
Vous pouvez déployer sur Glitch en ajoutant le composant DeployToGlitch
à votre scène et en suivant les instructions.
Notez que les projets gratuits hébergés sur Glitch ne doivent pas dépasser environ 100 Mo. Si vous avez besoin de téléverser un projet plus volumineux, envisagez d'utiliser une autre cible de déploiement.
:::details Comment déployer sur Glitch depuis Unity ?
Ajoutez le composant DeployToGlitch
à l'objet de jeu (GameObject) qui possède également le composant ExportInfo
.
Une fois la clé de déploiement reçue, vous pouvez cliquer sur le bouton Build & Deploy
pour téléverser sur Glitch.
:::
:::details Comment déployer sur Glitch depuis Blender ?
Trouvez le panneau Deploy To Glitch dans l'onglet Scene
Cliquez sur le bouton Remix on glitch
sur le composant
Votre navigateur ouvrira le template du projet Glitch
Attendez que Glitch génère un nouveau projet
Copiez-collez l'URL du projet dans le panneau Blender DeployToGlitch comme nom de projet (vous pouvez coller l'URL complète, le panneau extraira les informations nécessaires)
Sur Glitch, ouvrez le fichier .env
et entrez un mot de passe dans le champ Variable Value
à côté de la DEPLOY_KEY
Entrez le même mot de passe dans Blender dans le champ Key
Cliquez sur le bouton DeployToGlitch
pour compiler et téléverser votre projet sur Glitch. Un navigateur s'ouvrira lorsque le téléversement sera terminé. Essayez d'actualiser la page si elle s'affiche en noir après l'ouverture.
:::
Dépannage Glitch
:::details Comment déployer sur Netlify depuis Unity ?
Ajoutez simplement le composant DeployToNetlify
à votre scène et suivez les instructions. Vous pouvez créer de nouveaux projets en un clic ou en déployant sur des projets existants.
Créez un nouveau projet sur vercel
Ajoutez votre projet web à un dépôt github
Ajoutez le dépôt à votre projet sur vercel
:::details Comment déployer sur itch.io depuis Unity ?
Attendez que la compilation se termine, un dossier avec le zip final s'ouvrira automatiquement lorsqu'elle sera terminée.
Enregistrez votre page itch et visualisez la page du projet itch. Elle devrait maintenant charger votre projet Needle Engine 😊
Paramètres optionnels
:::details Itch.io : impossible de trouver index.html
Failed to find index.html
:::
:::details Comment déployer sur mon serveur FTP depuis Unity ?
Ajoutez le composant DeployToFTP
¹ sur un objet de jeu (GameObject) dans votre scène (il est recommandé de l'ajouter au même GameObject que ExportInfo - mais ce n'est pas obligatoire)
Attribuez un asset de serveur FTP et remplissez les champs serveur, nom d'utilisateur et mot de passe si vous ne l'avez pas déjà fait ²Cet asset contient les informations d'accès à votre serveur FTP - vous les obtenez lorsque vous créez un nouveau compte FTP chez votre fournisseur d'hébergement
Cliquez sur le bouton Build & Deploy sur le composant DeployToFTP
pour compiler votre projet et le téléverser sur votre compte FTP.
:::details Comment déployer manuellement sur mon serveur FTP ?
Ouvrez File > Build Settings
, sélectionnez Needle Engine
, et cliquez sur Build
Attendez que la compilation se termine - le dossier dist
résultant s'ouvrira automatiquement après l'exécution de toutes les étapes de compilation et de compression.
Copiez les fichiers du dossier dist
vers votre espace de stockage FTP.
Voilà ! 😉
Note : Si le résultat ne fonctionne pas une fois téléversé, il se peut que votre serveur web ne prenne pas en charge la diffusion de fichiers compressés en gzip. Vous avez deux options pour résoudre le problème : Option 1 : Vous pouvez essayer d'activer la compression gzip sur votre serveur en utilisant un fichier .htaccess ! Option 2 : Vous pouvez désactiver la compression gzip dans les paramètres de compilation dans File/Build Window en sélectionnant la plateforme Needle Engine.
Note : Si vous rencontrez des erreurs pendant la compression, veuillez nous en informer et signaler un bug ! Si votre projet fonctionne localement et échoue uniquement lors des compilations de production, vous pouvez vous débloquer immédiatement en effectuant une compilation de développement (Development Build). Pour cela, activez simplement l'option
Development Build
dans les Build Settings.
:::
Activation de gzip à l'aide d'un fichier .htaccess
Pour activer la compression gzip sur votre serveur FTP, vous pouvez créer un fichier nommé .htaccess
dans le répertoire vers lequel vous souhaitez télécharger (ou un répertoire parent).
Insérez le code suivant dans votre fichier .htaccess
et enregistrez/téléchargez-le sur votre serveur :
:::details Comment déployer sur Github Pages depuis Unity ?
:::
Dépannage github pages
J'ai déployé sur github pages mais aucune action ne s'exécute / le site web n'est pas en ligne
Si vous avez déployé pour la première fois, cela peut prendre quelques minutes avant que votre site web ne soit disponible. Vous pouvez vérifier l'onglet Actions sur github (/actions
) pour voir le processus de déploiement.
Si votre site web n'est pas en ligne après quelques minutes ou si vous ne voyez aucune exécution de workflow dans l'onglet Actions sur github, alors allez sur la page des paramètres Github Pages (/settings/pages
) et assurez-vous que la Branch est définie sur gh-pages.
Avec Needle Engine, vous pouvez compiler automatiquement pour Facebook Instant Games Aucun ajustement manuel de votre application ou jeu web n'est requis.
:::details Comment déployer sur Facebook Instant Games depuis Unity ?
Cliquez sur le bouton Build For Instant Games
Une fois la compilation terminée, vous obtiendrez un fichier ZIP que vous pourrez télécharger sur votre application Facebook.
C'est tout - vous pouvez ensuite cliquer sur le bouton Play
à côté de chaque version pour tester votre jeu sur Facebook.
:::
:::details Comment créer une application sur Facebook (avec les capacités Instant Games)
Dans Unity, ouvrez File/Build Settings
et sélectionnez Needle Engine
pour les options :
Pour compiler votre projet web en vue de le télécharger sur n'importe quel serveur web, vous pouvez cliquer sur Build dans la fenêtre Build Settings de l'éditeur Unity. Vous pouvez cocher la case Development Build
pour omettre la compression (voir ci-dessous), ce qui nécessite que toktx soit installé sur votre machine.
Pour prévisualiser localement votre compilation finale, vous pouvez utiliser le bouton Preview Build
en bas de la fenêtre. Ce bouton effectuera d'abord une compilation normale, puis démarrera un serveur local dans le répertoire contenant les fichiers finaux afin que vous puissiez voir ce que vous obtenez une fois ces fichiers téléchargés sur votre serveur web.
Nodejs est uniquement requis pendant le développement. Le site web distribué (utilisant notre template vite par défaut) est une page statique qui ne dépend pas de Nodejs et peut être placée sur n'importe quel serveur web standard. Nodejs est requis si vous souhaitez exécuter notre serveur réseau minimaliste sur le même serveur web (automatiquement inclus dans le processus de déploiement Glitch).
Il est possible de créer des projets Unity réguliers où vous pouvez compiler à la fois pour Needle Engine et pour les plateformes Unity régulières telles que Desktop ou même WebGL. Notre approche de "mappage de composants" signifie qu'aucune logique d'exécution n'est modifiée à l'intérieur d'Unity - si vous le souhaitez, vous pouvez utiliser le mode Play (Play Mode) et compiler régulièrement pour d'autres plateformes cibles. Dans certains cas, cela signifiera que vous avez du code dupliqué (code C# et logique TypeScript correspondante). La quantité de travail supplémentaire qui en résulte dépend de votre projet.
Needle Engine pour Unity prend en charge divers arguments de ligne de commande pour exporter des assets uniques (Prefabs ou Scenes) ou pour compiler un projet web entier en mode batch (sans fenêtre).
La liste suivante présente un tableau des options disponibles :
-scene
chemin vers une scène ou un asset à exporter, par exemple Assets/path/to/myObject.prefab
ou Assets/path/to/myScene.unity
-outputPath <path/to/output.glb>
définit le chemin de sortie pour la compilation (valide uniquement lors de la compilation d'une scène)
-buildProduction
exécute une compilation de production
-buildDevelopment
exécute une compilation de développement
-debug
ouvre une fenêtre de console pour le débogage
Page automatiquement traduite à l'aide de l'IA
La principale différence avec une compilation de production est qu'elle ne réalise pas de compression et (pour la réduction de la taille des fichiers et la vitesse de chargement), et qu'elle offre la possibilité de charger progressivement les textures de haute qualité.
Pour réaliser une compilation de production, vous devez avoir installé , qui fournit la compression de textures en utilisant le format de supercompression KTX2. Veuillez vous rendre sur la et télécharger et installer la dernière version (v4.1.0 au moment de la rédaction). Vous devrez peut-être redémarrer Unity après l'installation.Si vous êtes certain d'avoir installé toktx et qu'il fait partie de votre PATH mais qu'il n'est toujours pas trouvé, veuillez redémarrer votre machine et réessayer la compilation.
:::details Avancé : Extensions glTF personnalisées
Si vous prévoyez d'ajouter vos propres extensions glTF personnalisées, la compilation pour la production nécessite leur gestion dans gltf-transform
. Voir pour référence.
:::
:::details Unity : Comment définir les paramètres de compression par texture ? :::
:::details Blender : Comment définir les paramètres de compression par texture ? Sélectionnez l'onglet material. Vous verrez les options de compression pour toutes les textures utilisées par ce material. :::
:::details Toktx introuvable
Windows : Assurez-vous d'avoir ajouté toktx à vos variables d'environnement système. Vous devrez peut-être redémarrer votre ordinateur après l'avoir ajouté pour actualiser les variables d'environnement. L'emplacement d'installation par défaut est C:\Program Files\KTX-Software\bin
:::
:::details Où trouver les options de simplification de maillage pour réduire le nombre de sommets lors de la compilation pour la production ? Sélectionnez un maillage et ouvrez les options de l'importer Needle pour voir les options disponibles pour le maillage sélectionné : :::
:::
offre un moyen rapide et gratuit pour chacun d'héberger de petits et grands sites web. Nous offrons un moyen facile de remixer et de déployer sur une nouvelle page Glitch (basée sur notre modèle de départ), et aussi d'exécuter un serveur réseau minimaliste sur la même page Glitch si nécessaire.
Cliquez sur le bouton Create new Glitch Remix
sur le composant
Glitch va maintenant créer un remix du template. Copiez l'URL depuis votre navigateur
Ouvrez à nouveau Unity et collez l'URL dans le champ Project Name
de votre composant Deploy To Glitch
Attendez quelques secondes que Unity reçoive votre clé de déploiement depuis Glitch (cette clé est stockée en toute sécurité dans le fichier .env
sur Glitch. Ne la partagez pas avec d'autres, toute personne disposant de cette clé pourra téléverser sur votre site Glitch)
Si vous cliquez sur Create new Glitch Remix
et que le navigateur affiche une erreur comme there was an error starting the editor
, vous pouvez cliquer sur OK. Ensuite, allez sur et assurez-vous d'être connecté. Après cela, vous pouvez essayer de cliquer à nouveau sur le bouton dans Unity ou Blender.
:::
Voir notre pour la configuration du projet
Créez un nouveau projet sur
Définissez Kind of project
(Type de projet) sur HTML
Ajoutez le composant DeployToItch
à votre scène et cliquez sur le bouton Build
Téléchargez le zip final sur itch.io
Sélectionnez This file will be played in the browser
(Ce fichier sera joué dans le navigateur)
:::
Si vous voyez cette erreur après avoir téléversé votre projet, assurez-vous de ne pas téléverser un index.html compressé en gzip.
Vous pouvez désactiver la compression gzip dans vite.config.js
dans le dossier de votre projet web Needle. Il suffit de supprimer la ligne viteCompression({ deleteOriginFile: true })
. Puis compilez à nouveau votre projet et téléchargez-le sur itch.
¹ Composant Deploy to FTP
² Asset de serveur FTP contenant les informations d'accès de votre compte utilisateur FTP
Composant Deploy To FTP après l'affectation de l'asset serveur. Vous pouvez déployer directement dans un sous-dossier sur votre serveur en utilisant le champ de chemin. :::
Ajoutez le composant DeployToGithubPages à votre scène et copiez-collez le dépôt github (ou l'url github pages) vers lequel vous souhaitez déployer.
Ajoutez le composant Deploy To Facebook Instant Games
à votre scène :
Sur Facebook, ajoutez le module Instant Games
et allez dans Instant Games/Web hosting
Vous pouvez télécharger votre zip en utilisant le bouton Upload version
(1). Une fois le téléchargement terminé et le zip traité, cliquez sur le bouton Stage for testing
pour tester votre application (2, ici le bouton bleu) ou Push to production
(le bouton avec l'icône étoile)
et sélectionnez Other
. Puis cliquez sur Next
.
Sélectionnez le type Instant Games
Après avoir créé l'application, ajoutez le produit Instant Games
.
Vous trouverez ici sur Facebook.Notez que tout ce que vous avez à faire est de créer une application avec les capacités Instant Games. Nous nous occuperons de tout le reste et aucun ajustement manuel de votre site web Needle Engine n'est requis. :::
Entrer en mode Play (Play Mode) dans Unity
Dans Project Settings > Needle Engine
, vous pouvez désactiver Override Play Mode
et Override Build settings
pour basculer entre le processus de compilation de Needle et le processus de compilation d'Unity :