Ton bloc notes
Derniers sujets
» [ CHALLENGE 2024 ]Challenge architecture extérieure ou paysagiste - Nicolaco - Sketchup - Blender - Cycles (ABANDON)
par JDD Hier à 9:51
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - allansens - cinema 4D
par Allansens Ven 6 Sep 2024 - 14:47
» Des vignettes à la place d'un export Graphique 2D !
par Gaspard Hauser Ven 6 Sep 2024 - 0:01
» [ MATOS INFORM. ] Application Splashtop Wired XDisplay, pour utliser votre tablette iPad ou Android en moniteur supplémentaire
par JDD Jeu 5 Sep 2024 - 10:49
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste- Gaspard Hauser - Sketchup - D5 render
par JDD Mer 4 Sep 2024 - 18:03
» [ SKETCHUP généralité ]
par lionel Claude Mar 3 Sep 2024 - 19:45
» [ D5_RENDER ] Comparatif D5 enhancement vs Krea AI enhancement
par Gaspard Hauser Dim 1 Sep 2024 - 19:40
» [ Challenge 2024] cHallenge archjtexture exterieur ou paysagiste-vick-sketchup-enscape
par Gaspard Hauser Dim 1 Sep 2024 - 12:34
» [ D5_RENDER ] Animation d'objets, Phasing animation D5 render
par AK40Cess Sam 31 Aoû 2024 - 10:33
» [ TWINMOTION ] Appliquer un decal avec les outils spacing et area de Twinmotion 2024
par AK40Cess Ven 30 Aoû 2024 - 4:00
» [ SKETCHUP généralité ]
par Gaspard Hauser Dim 25 Aoû 2024 - 8:58
» [ SKETCHUP plugins ]
par furax49 Ven 23 Aoû 2024 - 15:54
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - AK40Cess - Archicad-Twinmotion
par JDD Ven 23 Aoû 2024 - 11:20
» [ SKETCHUP généralité ] SOS problème avec les arêtes
par vick Jeu 22 Aoû 2024 - 19:15
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - JDD - SketchUp - Enscape
par Gaspard Hauser Jeu 22 Aoû 2024 - 12:10
» [ D5_RENDER ] Images de l'intérieur meublé de de la villa Bauhaus
par Gaspard Hauser Sam 17 Aoû 2024 - 19:24
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - Simjoubert - sketchup Enscape
par simjoubert Sam 17 Aoû 2024 - 15:32
» [ D5_RENDER ] comparaison D5 render Twinmotion
par Gaspard Hauser Jeu 15 Aoû 2024 - 10:08
» [ SKETCHUP généralité ] Objets 3D luminaires
par PEGASE Mar 13 Aoû 2024 - 6:14
» [ TWINMOTION ] rayon de soleil
par simjoubert Lun 12 Aoû 2024 - 23:42
» [ LUMION ] License-Abonnement
par tenrev Jeu 8 Aoû 2024 - 15:29
» [ ENSCAPE ] HDRI dans projet
par tenrev Mer 7 Aoû 2024 - 9:57
» [ TUTO ] tutos pour une utilisation optimale du forum
par tenrev Dim 4 Aoû 2024 - 15:22
» [ SKETCHUP LIVE COMPONENT ] un petit exemple simple
par tenrev Ven 2 Aoû 2024 - 11:38
» [ SKETCHUP composants dynamiques ] Optimisez votre workflow Sketchup : Composants dynamiques, couleurs et export Excel !
par tenrev Jeu 1 Aoû 2024 - 9:31
» [ PRESENTATION ] Hello et un de plus
par simjoubert Jeu 1 Aoû 2024 - 0:26
» [ INTELLIGENCE ARTIFICIELLE ] i'eau est leur milieu de prédilection
par tenrev Mer 31 Juil 2024 - 13:06
» [ CHALLENGE ARCHITECTURE EXTERIEURE OU PAYSAGISTE ] Démarrage du challenge 2024 - les régles
par tenrev Mer 31 Juil 2024 - 9:00
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - Tenrev - Sketchup - Enscape - Twinmotion - IA
par tenrev Mer 31 Juil 2024 - 8:51
» [ SKETCHUP plugins ] plugin sj_add_dc_attribute_v.0.3.3
par tenrev Mer 31 Juil 2024 - 8:38
» [ SKETCHUP plugins ] Universal Importer
par tenrev Mer 31 Juil 2024 - 8:36
» [ CHALLENGES ] Ca vous intéresserait un challenge - je lance un sondage
par tenrev Mar 30 Juil 2024 - 10:15
» [ D5_RENDER ] Le Cull effect dans un scatter
par tenrev Lun 29 Juil 2024 - 13:26
» [ SKETCHUP généralité ] Problème avec le 3d warehouse
par tenrev Jeu 25 Juil 2024 - 11:35
» [ INTELLIGENCE ARTIFICIELLE ] quelques vidéo IA
par tenrev Mer 24 Juil 2024 - 13:37
par JDD Hier à 9:51
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - allansens - cinema 4D
par Allansens Ven 6 Sep 2024 - 14:47
» Des vignettes à la place d'un export Graphique 2D !
par Gaspard Hauser Ven 6 Sep 2024 - 0:01
» [ MATOS INFORM. ] Application Splashtop Wired XDisplay, pour utliser votre tablette iPad ou Android en moniteur supplémentaire
par JDD Jeu 5 Sep 2024 - 10:49
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste- Gaspard Hauser - Sketchup - D5 render
par JDD Mer 4 Sep 2024 - 18:03
» [ SKETCHUP généralité ]
par lionel Claude Mar 3 Sep 2024 - 19:45
» [ D5_RENDER ] Comparatif D5 enhancement vs Krea AI enhancement
par Gaspard Hauser Dim 1 Sep 2024 - 19:40
» [ Challenge 2024] cHallenge archjtexture exterieur ou paysagiste-vick-sketchup-enscape
par Gaspard Hauser Dim 1 Sep 2024 - 12:34
» [ D5_RENDER ] Animation d'objets, Phasing animation D5 render
par AK40Cess Sam 31 Aoû 2024 - 10:33
» [ TWINMOTION ] Appliquer un decal avec les outils spacing et area de Twinmotion 2024
par AK40Cess Ven 30 Aoû 2024 - 4:00
» [ SKETCHUP généralité ]
par Gaspard Hauser Dim 25 Aoû 2024 - 8:58
» [ SKETCHUP plugins ]
par furax49 Ven 23 Aoû 2024 - 15:54
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - AK40Cess - Archicad-Twinmotion
par JDD Ven 23 Aoû 2024 - 11:20
» [ SKETCHUP généralité ] SOS problème avec les arêtes
par vick Jeu 22 Aoû 2024 - 19:15
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - JDD - SketchUp - Enscape
par Gaspard Hauser Jeu 22 Aoû 2024 - 12:10
» [ D5_RENDER ] Images de l'intérieur meublé de de la villa Bauhaus
par Gaspard Hauser Sam 17 Aoû 2024 - 19:24
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - Simjoubert - sketchup Enscape
par simjoubert Sam 17 Aoû 2024 - 15:32
» [ D5_RENDER ] comparaison D5 render Twinmotion
par Gaspard Hauser Jeu 15 Aoû 2024 - 10:08
» [ SKETCHUP généralité ] Objets 3D luminaires
par PEGASE Mar 13 Aoû 2024 - 6:14
» [ TWINMOTION ] rayon de soleil
par simjoubert Lun 12 Aoû 2024 - 23:42
» [ LUMION ] License-Abonnement
par tenrev Jeu 8 Aoû 2024 - 15:29
» [ ENSCAPE ] HDRI dans projet
par tenrev Mer 7 Aoû 2024 - 9:57
» [ TUTO ] tutos pour une utilisation optimale du forum
par tenrev Dim 4 Aoû 2024 - 15:22
» [ SKETCHUP LIVE COMPONENT ] un petit exemple simple
par tenrev Ven 2 Aoû 2024 - 11:38
» [ SKETCHUP composants dynamiques ] Optimisez votre workflow Sketchup : Composants dynamiques, couleurs et export Excel !
par tenrev Jeu 1 Aoû 2024 - 9:31
» [ PRESENTATION ] Hello et un de plus
par simjoubert Jeu 1 Aoû 2024 - 0:26
» [ INTELLIGENCE ARTIFICIELLE ] i'eau est leur milieu de prédilection
par tenrev Mer 31 Juil 2024 - 13:06
» [ CHALLENGE ARCHITECTURE EXTERIEURE OU PAYSAGISTE ] Démarrage du challenge 2024 - les régles
par tenrev Mer 31 Juil 2024 - 9:00
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - Tenrev - Sketchup - Enscape - Twinmotion - IA
par tenrev Mer 31 Juil 2024 - 8:51
» [ SKETCHUP plugins ] plugin sj_add_dc_attribute_v.0.3.3
par tenrev Mer 31 Juil 2024 - 8:38
» [ SKETCHUP plugins ] Universal Importer
par tenrev Mer 31 Juil 2024 - 8:36
» [ CHALLENGES ] Ca vous intéresserait un challenge - je lance un sondage
par tenrev Mar 30 Juil 2024 - 10:15
» [ D5_RENDER ] Le Cull effect dans un scatter
par tenrev Lun 29 Juil 2024 - 13:26
» [ SKETCHUP généralité ] Problème avec le 3d warehouse
par tenrev Jeu 25 Juil 2024 - 11:35
» [ INTELLIGENCE ARTIFICIELLE ] quelques vidéo IA
par tenrev Mer 24 Juil 2024 - 13:37
formulaire/diaporama
chaine sketchup.tv
Serveur Discord
[ SKETCHUP plugins ] Flightpath2
Page 1 sur 3 • Partagez
Page 1 sur 3 • 1, 2, 3
Hello les amis
@JDD salut , j'ai commencé à tester Flightpath2 , j'ai fait ma courbe , pas de soucis clic droit , je rentre la vitesse et la focale ok il me fait les scénes nickel
par contre je n'ai pas compris comment avoir la possibilité de positionner la cible de la caméra ? il faut tracer une deuxiéme courbe ?
merci d'avance pour ton aide
a+
@JDD salut , j'ai commencé à tester Flightpath2 , j'ai fait ma courbe , pas de soucis clic droit , je rentre la vitesse et la focale ok il me fait les scénes nickel
par contre je n'ai pas compris comment avoir la possibilité de positionner la cible de la caméra ? il faut tracer une deuxiéme courbe ?
merci d'avance pour ton aide
a+
-------------------------------------------------------------------------------------------------------------------------
je ne sais pas grand chose , mais le peu que je sache , je le partage/Salut Invité merci de consulter mon profil/PC fixe Rizen 9 3950 cg RTX3080-64 go de ram DDssd 1To/1 PC portable Lenovo 16'' w11 i7 32go-CG RTX3070 8go/1casque meta Quest 3/1 casque VR Occulus Rift /1 PC portable Dell sous Linux Ubuntu-1 pc portable HP sous chromebook/Raspberry Pi - Arduino / Modélisation :Sketchup-Rhino-Pconplanner-Rendu:Enscape-Keyshot-Unreal Engine-Twinmotion-Autres:Photoshop-Indesign-After Effect-Première pro-Intelligence artificielle -Chatgpt+-Midjourney-Suno-Elevenlabs-Canva
![[ SKETCHUP plugins ] Flightpath2 575088biblio3d](https://2img.net/r/hpimg15/pics/575088biblio3d.gif)
- JDDV.I.P.
-
Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 1113
Points : 2450
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
Bonjour,
Comme évoqué dans le précédent fil, ce plugin peut exploiter 4 types de cibles :
1. Cible 1 : les sommets du chemin. Création d'une scène à chaque sommet de la courbe du trajet, avec la caméra regardant vers le sommet suivant du tracé de la trajectoire.
2. Cible 2 : Point unique. Point fixe sur lequel la caméra effectue sa mise au point lorsqu'elle se déplace le long de la trajectoire
3. Cible 3 : Deux points. Lorsque la caméra se déplace le long de la trajectoire, la caméra effectue sa mise au point entre les deux points sélectionnés
4. Cible 4 : Chemin. Permet de sélectionner un autre chemin comme cible sur lequel la caméra effectue sa mise au point.
Si on trace unique une trajectoire et que l'on lance le plugin via le menu contextuel (après avoir au préalable sélectionné la cible) et choisit Target: CameraPath node c'est la cible type 1 qui est appliquée
Si on souhaite une des 3 autres types de cibles il faut au préalable les créer (un point, extrémité de segment par exemple, ou deux points ou une autre trajectoire cible)
Et au lancement du plugin, on choisit soit Target: Single Point soit Target: Two Points soit Target: Path)
On renseigne la vitesse (ne pas changer la valeur par défaut sauf besoin particulier) et la focale et les scènes sont alors automatiquement générées.
Quelques copies d'écran d'un test avec ici une cible Point fixe unique (extrémité d'un segment placé dans la scène)
![[ SKETCHUP plugins ] Flightpath2 Trajec10](https://i.servimg.com/u/f94/20/34/21/02/trajec10.png)
![[ SKETCHUP plugins ] Flightpath2 Cible_10](https://i.servimg.com/u/f94/20/34/21/02/cible_10.png)
![[ SKETCHUP plugins ] Flightpath2 Choix_10](https://i.servimg.com/u/f94/20/34/21/02/choix_10.png)
Comme évoqué dans le précédent fil, ce plugin peut exploiter 4 types de cibles :
1. Cible 1 : les sommets du chemin. Création d'une scène à chaque sommet de la courbe du trajet, avec la caméra regardant vers le sommet suivant du tracé de la trajectoire.
2. Cible 2 : Point unique. Point fixe sur lequel la caméra effectue sa mise au point lorsqu'elle se déplace le long de la trajectoire
3. Cible 3 : Deux points. Lorsque la caméra se déplace le long de la trajectoire, la caméra effectue sa mise au point entre les deux points sélectionnés
4. Cible 4 : Chemin. Permet de sélectionner un autre chemin comme cible sur lequel la caméra effectue sa mise au point.
Si on trace unique une trajectoire et que l'on lance le plugin via le menu contextuel (après avoir au préalable sélectionné la cible) et choisit Target: CameraPath node c'est la cible type 1 qui est appliquée
Si on souhaite une des 3 autres types de cibles il faut au préalable les créer (un point, extrémité de segment par exemple, ou deux points ou une autre trajectoire cible)
Et au lancement du plugin, on choisit soit Target: Single Point soit Target: Two Points soit Target: Path)
On renseigne la vitesse (ne pas changer la valeur par défaut sauf besoin particulier) et la focale et les scènes sont alors automatiquement générées.
Quelques copies d'écran d'un test avec ici une cible Point fixe unique (extrémité d'un segment placé dans la scène)
![[ SKETCHUP plugins ] Flightpath2 Trajec10](https://i.servimg.com/u/f94/20/34/21/02/trajec10.png)
![[ SKETCHUP plugins ] Flightpath2 Cible_10](https://i.servimg.com/u/f94/20/34/21/02/cible_10.png)
![[ SKETCHUP plugins ] Flightpath2 Choix_10](https://i.servimg.com/u/f94/20/34/21/02/choix_10.png)
- JDDV.I.P.
-
Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 1113
Points : 2450
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
![[ SKETCHUP plugins ] Flightpath2 Comman10](https://i.servimg.com/u/f94/20/34/21/02/comman10.png)
![[ SKETCHUP plugins ] Flightpath2 Sczone10](https://i.servimg.com/u/f94/20/34/21/02/sczone10.png)
Nota :
Ce plugin ne peut utiliser que des Polylines pour les tracés de trajectoire caméra et trajectoire cible
SketchUp n'a pas d'outil polyligne, bien que les outils Cercle et Polygone créent des polylignes
Utiliser le plugin WELD de TIG ou SMustard pour connecter plusieurs lignes en une seule ligne, également appelée polyligne.
Utilisez également la conversion BZ pour diviser la polyligne pour l'animation à l'aide du plugin Fredo6 Bezier Spline qui divisera et placera uniformément les sommets le long de la polyligne à utiliser comme image clé.
Edit: Complèment d'info
Lorsque les scènes sont générées, le tracé de la trajectoire est placé automatiquement dans un calque, puis masqué, pour ne pas apparaitre dans les scènes
JDD
Dernière édition par JDD le Jeu 10 Mar 2022 - 17:54, édité 2 fois
-------------------------------------------------------------------------------------------------------------------------
je ne sais pas grand chose , mais le peu que je sache , je le partage/Salut Invité merci de consulter mon profil/PC fixe Rizen 9 3950 cg RTX3080-64 go de ram DDssd 1To/1 PC portable Lenovo 16'' w11 i7 32go-CG RTX3070 8go/1casque meta Quest 3/1 casque VR Occulus Rift /1 PC portable Dell sous Linux Ubuntu-1 pc portable HP sous chromebook/Raspberry Pi - Arduino / Modélisation :Sketchup-Rhino-Pconplanner-Rendu:Enscape-Keyshot-Unreal Engine-Twinmotion-Autres:Photoshop-Indesign-After Effect-Première pro-Intelligence artificielle -Chatgpt+-Midjourney-Suno-Elevenlabs-Canva
![[ SKETCHUP plugins ] Flightpath2 575088biblio3d](https://2img.net/r/hpimg15/pics/575088biblio3d.gif)
- JDDV.I.P.
-
Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 1113
Points : 2450
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
Bonsoir,
Serait imaginable, avec l'aide de nos experts en code, de récupérer dans un fichier, à chacune des scènes produites par le plugin FlighPath2, les informations utilisées ensuite par Enscape dans son fichier de trajectoire (VideoPath)
Un fichier de trajectoire d'Enscape, au format XML est essentiellement structuré comme suit sur cet exemple (ici composé de 11 séquences, correspondant aux 11 scènes utilisées dans SketchUp).
Peut-on récupérer facilement les positions x, y et z de la caméra et les informations sur le vecteur LookAt à chacune des scènes dans SketchUp et sauvegarder ces informations dans un fichier (txt ou xml) ?
Les directions Y et Z dans Enscape sont inversées par rapport aux directions Y et Z dans SketchUp
Dans SketchUp des plugins comme "Camera Parameters" et "Camera Advanced" permettent de récupérer les données relatives aux positions de la caméra.
Camera Parameters donne les valeurs de Pos X, Pos Y et Pos Z et Cibles X, Y et Z (Dans Enscape, Pox X, Pos Y et Pos Z sont exprimés en mètre, et en mm dans SketchUp)
Camera Advanced donne Dir X, Dir Y et Dir Z (Dir = Look @ dans Enscape)
JDD
Serait imaginable, avec l'aide de nos experts en code, de récupérer dans un fichier, à chacune des scènes produites par le plugin FlighPath2, les informations utilisées ensuite par Enscape dans son fichier de trajectoire (VideoPath)
Un fichier de trajectoire d'Enscape, au format XML est essentiellement structuré comme suit sur cet exemple (ici composé de 11 séquences, correspondant aux 11 scènes utilisées dans SketchUp).
- Code:
<?xml version="1.0" ?>
<VideoPath version="1" durationSeconds="50" easingInOut="1" shakyCam="0">
<Keyframes count="11">
<Keyframe order="0" hour="12" fieldOfViewRad="1.0337">
<Position x="-1.82639" y="1.66713" z="9.15961" />
<LookAt x="0.313367" y="0" z="-0.949632" />
</Keyframe>
<Keyframe order="1" hour="12" fieldOfViewRad="1.0337" timestampSeconds="5">
<Position x="4.13475" y="1.66713" z="9.18689" />
<LookAt x="-0.30466" y="0" z="-0.952461" />
</Keyframe>
<Keyframe order="2" hour="12" fieldOfViewRad="1.0337" timestampSeconds="10">
<Position x="8.97345" y="1.66713" z="5.7051" />
<LookAt x="-0.806318" y="0" z="-0.591482" />
</Keyframe>
....
....
....
etc jusqu'à la dernière image clé (10)
<Keyframe order="10" hour="12" fieldOfViewRad="1.0337">
<Position x="-1.82639" y="1.66713" z="9.15961" />
<LookAt x="0.313367" y="0" z="-0.949632" />
</Keyframe>
</Keyframes>
</VideoPath>
Peut-on récupérer facilement les positions x, y et z de la caméra et les informations sur le vecteur LookAt à chacune des scènes dans SketchUp et sauvegarder ces informations dans un fichier (txt ou xml) ?
Les directions Y et Z dans Enscape sont inversées par rapport aux directions Y et Z dans SketchUp
Dans SketchUp des plugins comme "Camera Parameters" et "Camera Advanced" permettent de récupérer les données relatives aux positions de la caméra.
Camera Parameters donne les valeurs de Pos X, Pos Y et Pos Z et Cibles X, Y et Z (Dans Enscape, Pox X, Pos Y et Pos Z sont exprimés en mètre, et en mm dans SketchUp)
Camera Advanced donne Dir X, Dir Y et Dir Z (Dir = Look @ dans Enscape)
JDD
tenrev aime ce message
Hello JDD
ai-je bien compris ?
Tu veux exporter dans un fichier XML les scènes du modèle selon le modèle que tu as publié ?
Quand tu dis que les axes sont inversés tu veux dire permuté xyz => xzy en valeurs Sketchup ?
En Ruby, cela est faisable, on extrait facilement les valeurs demandées :
Je regarderai pour finaliser ce week-end
Dis-moi si c'est bien cela !
![mojito](/users/2813/51/05/40/smiles/192895103.gif)
ai-je bien compris ?
Tu veux exporter dans un fichier XML les scènes du modèle selon le modèle que tu as publié ?
Quand tu dis que les axes sont inversés tu veux dire permuté xyz => xzy en valeurs Sketchup ?
En Ruby, cela est faisable, on extrait facilement les valeurs demandées :
- Code:
pages = Sketchup.active_model.pages # Array de l'ensemble des scènes
pages_num = pages.length # on récupère le nombre de scènes
timestampSeconds = 5
durationSeconds = timestampSeconds * pages_num
convertion_inch_meter = 0.0254
#initialisation de la boucle
i = 0 #compteur
keyframes = [] # Array qui recevra les valeurs
hour = "12"
fieldOfViewRad = "1.0337"
#boucle sur chaque scènes
while i <pages_num
cam = pages[i].camera # On récupère la camera de la scène n° i
vector = cam.direction
lookat_x = vector.x.to_s
lookat_y = vector.z.to_s #Permutation des axes Z et Y
lookat_z = vector.y.to_s #Permutation des axes Z et Y
eye = cam.eye # position de la camera
position_x = (eye.x * convertion_inch_meter).to_s
position_y = (eye.z * convertion_inch_meter).to_s #Permutation des axes Z et Y
position_z = (eye.y * convertion_inch_meter).to_s #Permutation des axes Z et Y
keyframe = {
"order"=> i.to_s,
"hour"=> hour,
"fieldOfViewRad"=> fieldOfViewRad,
"timestampSeconds"=> timestampSeconds.to_s,
"LookAt"=> {
"x"=> lookat_x,
"y"=> lookat_y,
"z"=> lookat_z},
"Position"=>{
"x"=> position_x,
"y"=> position_y,
"z"=> position_z}}
keyframes[i] = keyframe
i +=1 #On incrémente le compteur
end
puts keyframes
- Code:
require 'rexml'
et puis composer depuis l'array keyframes
Je regarderai pour finaliser ce week-end
Dis-moi si c'est bien cela !
![mojito](/users/2813/51/05/40/smiles/192895103.gif)
JDD aime ce message
- JDDV.I.P.
-
Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 1113
Points : 2450
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
Bonjour @simjoubert
Merci pour ton aide.
Ce que je souhaiterais posséder, peut être décrit comme suit.
Au lieu de créer dans un Enscape la trajectoire d'animation basée sur la succession des scènes dans SU prise comme image clé, je souhaite créer à partir de sketchUp cette trajectoire d'animation qui ensuite sera utilisée dans Encape pour générer l'animation.
Dans sketchUp, je génère en premier lieu toutes mes scènes et j'imagine utiliser un script qui puisse récupérer dans un fichier xlm, stucturé comme celui produit par Enscape, à partir ses scènes créées, les paramètres qui vont bien.
Dans l'exemple que j'ai posté ci-avant pour répondre à la demande de @tenrev, le plugin FlightPath2 génère 113 scènes pour cette modeste trajectoire.
Si ensuite dans Enscape, il y a lieu de passer en revue chacune de ces scènes une par une pour enregistrer les 113 images clé, cela devient vite la galère, d'où l'idée d'automatiser l'opération.
J'ai à peu près compris la boucle d'acquisition que tu peux produire avec Ruby, mais si possible (mais rien est impossible) il serait bien que l'utilisateur averti puisse au lancement du script entrer ou modifier certaines constantes dans une table pour les paramètres suivants :
Il pourra ensuite si nécessaire éditer certains points dans le fichier XML produit si nécessaire.
easingInOut (Simulation d'une caméra instable) ? Oui (1), Non (0)
shakyCam (Mode avec transition douce) ? Oui (1), Non (0)
timestampSeconds (durée d'une séquence en secondes pour calculer l'horodatage)
hour (heure du jour, constante pour toutes les séquences)
fieldOfView (Champ angulaire en degrés) Récupérer la valeur du champ angulaire en degré dans la scéne 0 ( c'est le Fov(W)) afin d'informer l'utilisateur du champ angulaire fixé dans les scènes, avant changement de sa valeur par l'utilisateur si souhaité.
A convertir ensuite cette valeur en radian (*pi(/180)) pour générer le paramètre "fieldOfViewRad"
Les autres éléments que l'on trouve dans la structure du fichier XML sont calculés et dépendent du nombre de scènes présentes comme :
durationSeconds = durée totale en secondes de l'animation
Keyframes count = nombre d'images clé
Keyframe order = numéro de l'image clé
Concernant les axes SU et Enscape
Voir extrait d'un fichier Excel basé sur un exemple test
X SU = X Enscape mais en mètre dans Enscape
Y SU = Z Enscape mais en mètre dans Enscape
Z SU = Y Enscape mais en mètre dans Enscape
En espèrant que ma demande ne soit pas trop complexe, merci par avance.
JDD
![[ SKETCHUP plugins ] Flightpath2 Champ_10](https://i.servimg.com/u/f94/20/34/21/02/champ_10.jpg)
![[ SKETCHUP plugins ] Flightpath2 Xyz_su10](https://i.servimg.com/u/f94/20/34/21/02/xyz_su10.jpg)
Merci pour ton aide.
Ce que je souhaiterais posséder, peut être décrit comme suit.
Au lieu de créer dans un Enscape la trajectoire d'animation basée sur la succession des scènes dans SU prise comme image clé, je souhaite créer à partir de sketchUp cette trajectoire d'animation qui ensuite sera utilisée dans Encape pour générer l'animation.
Dans sketchUp, je génère en premier lieu toutes mes scènes et j'imagine utiliser un script qui puisse récupérer dans un fichier xlm, stucturé comme celui produit par Enscape, à partir ses scènes créées, les paramètres qui vont bien.
Dans l'exemple que j'ai posté ci-avant pour répondre à la demande de @tenrev, le plugin FlightPath2 génère 113 scènes pour cette modeste trajectoire.
Si ensuite dans Enscape, il y a lieu de passer en revue chacune de ces scènes une par une pour enregistrer les 113 images clé, cela devient vite la galère, d'où l'idée d'automatiser l'opération.
J'ai à peu près compris la boucle d'acquisition que tu peux produire avec Ruby, mais si possible (mais rien est impossible) il serait bien que l'utilisateur averti puisse au lancement du script entrer ou modifier certaines constantes dans une table pour les paramètres suivants :
Il pourra ensuite si nécessaire éditer certains points dans le fichier XML produit si nécessaire.
easingInOut (Simulation d'une caméra instable) ? Oui (1), Non (0)
shakyCam (Mode avec transition douce) ? Oui (1), Non (0)
timestampSeconds (durée d'une séquence en secondes pour calculer l'horodatage)
hour (heure du jour, constante pour toutes les séquences)
fieldOfView (Champ angulaire en degrés) Récupérer la valeur du champ angulaire en degré dans la scéne 0 ( c'est le Fov(W)) afin d'informer l'utilisateur du champ angulaire fixé dans les scènes, avant changement de sa valeur par l'utilisateur si souhaité.
A convertir ensuite cette valeur en radian (*pi(/180)) pour générer le paramètre "fieldOfViewRad"
Les autres éléments que l'on trouve dans la structure du fichier XML sont calculés et dépendent du nombre de scènes présentes comme :
durationSeconds = durée totale en secondes de l'animation
Keyframes count = nombre d'images clé
Keyframe order = numéro de l'image clé
Concernant les axes SU et Enscape
Voir extrait d'un fichier Excel basé sur un exemple test
X SU = X Enscape mais en mètre dans Enscape
Y SU = Z Enscape mais en mètre dans Enscape
Z SU = Y Enscape mais en mètre dans Enscape
En espèrant que ma demande ne soit pas trop complexe, merci par avance.
JDD
![[ SKETCHUP plugins ] Flightpath2 Champ_10](https://i.servimg.com/u/f94/20/34/21/02/champ_10.jpg)
![[ SKETCHUP plugins ] Flightpath2 Xyz_su10](https://i.servimg.com/u/f94/20/34/21/02/xyz_su10.jpg)
tenrev aime ce message
Hello, @JDD @ @tenrev et les autres qui suivent la trajectoire
voici une fonction à coller dans la console Ruby
une fois instancier une première fois, on l'appelle avec la commande
voici le code
Je vais essayer d'améliorer avec une interface listant toutes les scènes avec la possibilité de personnaliser les valeurs par défaut ou pour chacune de manière facultative, la durée, l'heure de la vue. Puis mettre le tout sous forme de plugin avec un bouton.
Déjà dans un premier temps, c'est fonctionnel.
Pour info, en plus de la permutation des axes Y et Z, la valeur des y sketchup est inversée en -y
Ce qui donne pour le vecteur et la position des coordonnées de type (X,Z,-Y)
Dites-moi ce que vous en pensez !
Bon Week-end
![[ SKETCHUP plugins ] Flightpath2 IPB_917](https://2img.net/h/www.smileys.lu/repository/-Selection_IPB-/IPB_917.gif)
voici une fonction à coller dans la console Ruby
une fois instancier une première fois, on l'appelle avec la commande
- Code:
scenes_to_enscape_path()
voici le code
- Code:
# SCENES TO ENSCAPE PATH VIDEO
# Cette fonction permet d'extraire la position de la caméra de chaque scène
# Elle créer un fichier xml importable dans Enscape dans le module Vidéo
# Chaque scène devient un key frame de l'animation
# Source JDD (Forum Biblio3d)
# Author Simon Joubert
# Version 1.0
# Date 11/03/2022
def scenes_to_enscape_path()
model = Sketchup.active_model
pages = model.pages # Array de l'ensemble des scènes
pages_num = pages.length # on récupère le nombre de scènes
if model.path == "" # Le modèle n'est pas enregistré
message = UI.messagebox("Veuillez enregister votre modèle et recommencer.\nOpération annulée", MB_OK)
return
elsif pages_num < 1 # Il n'y a aucune scène
message = UI.messagebox("Votre modèle ne comporte aucune scène.\nOpération annulée", MB_OK)
return
else
#Boite de dialogue
prompts = ["délai entre 2 points de vue, en seconde ?", "Angle champ de vision en degres ?","Heure des scènes", "Caméra instable ?", "Transisition en douceur ?"]
defaults = [5, 60, 12, "Non","Oui"]
list = ["","","","Oui|Non","Oui|Non"]
input = UI.inputbox(prompts, defaults, list, "Trajectoire vidéo entre les scènes")
if input == false # L'utilisatateur à annulé
return
else
# Paramètre chemin enregistrement fichier
mpath = model.path.gsub(".skp","\\")
url = File.join(mpath, "Scenes_Camera_trajectoire.xml")
# Paramètres Convertion
pi = Math::PI
convertion_inch_meter = 0.0254
# Paramètres saisies par l'utilisateur
timestampSeconds = input[0].to_i
fieldOfViewRad = (input[1]*(2*pi)/360).round(6)
hour = input[2].to_f
shakyCam =(input[3]=="Oui" ?1:0)
easingInOut =(input[4]=="Oui" ?1:0)
durationSeconds = timestampSeconds * pages_num
#Entête du fichier xml
doc = <<-XML
<?xml version="1.0" ?>
<VideoPath version="1" durationSeconds="#{durationSeconds}" easingInOut="#{easingInOut}" shakyCam="#{shakyCam}">
<Keyframes count="#{pages_num}">
XML
#initialisation de la boucle
i = 0 #compteur
#boucle sur chaque scènes
while i <pages_num
cam = pages[i].camera # On récupère la camera de la scène n° i
vector = cam.direction
lookat_x = (vector.x * convertion_inch_meter).round(6)
lookat_y = (vector.z * convertion_inch_meter).round(6) #Permutation des axes Z et Y
lookat_z = -(vector.y * convertion_inch_meter).round(6) #Permutation des axes Z et Y
eye = cam.eye # position de la camera
position_x = (eye.x * convertion_inch_meter).round(6)
position_y = (eye.z * convertion_inch_meter).round(6) #Permutation des axes Z et Y
position_z = -(eye.y * convertion_inch_meter).round(6) #Permutation des axes Z et Y
# On ajoute à la chaine xml les paramètre de keyframe propre à la scène
doc = doc + <<-XML
<Keyframe order="#{i}" hour="#{hour}" fieldOfViewRad="#{fieldOfViewRad}" timestampSeconds="#{i*timestampSeconds}">
<Position x="#{position_x}" y="#{position_y}" z="#{position_z}" />
<LookAt x="#{lookat_x}" y="#{lookat_y}" z="#{lookat_z}" />
</Keyframe>
XML
i +=1 #On incrémente le compteur
end # Fin de la boucle
# On ajoutte au xml la fermeture des balises d'entête
doc = doc + <<-XML
</Keyframes>
</VideoPath>
XML
# On test l'existance du dossier portant le m^me nom que le fichier du modele
if File.directory?(mpath) == false
#on creer le répertoire avec le nom du modèle s'il n'éxiste pas
FileUtils.mkdir mpath
end
#Ecriture du fichier
File.open(url, 'w') { |file| file.write(doc) }
# Message de succès
message = UI.messagebox("Le fichier :\n#{url}\nà été généré avec succès !", MB_OK)
end
end
end
Je vais essayer d'améliorer avec une interface listant toutes les scènes avec la possibilité de personnaliser les valeurs par défaut ou pour chacune de manière facultative, la durée, l'heure de la vue. Puis mettre le tout sous forme de plugin avec un bouton.
Déjà dans un premier temps, c'est fonctionnel.
Pour info, en plus de la permutation des axes Y et Z, la valeur des y sketchup est inversée en -y
Ce qui donne pour le vecteur et la position des coordonnées de type (X,Z,-Y)
Dites-moi ce que vous en pensez !
Bon Week-end
![mojito](/users/2813/51/05/40/smiles/192895103.gif)
![[ SKETCHUP plugins ] Flightpath2 IPB_917](https://2img.net/h/www.smileys.lu/repository/-Selection_IPB-/IPB_917.gif)
tenrev et JDD aiment ce message
- JDDV.I.P.
-
Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 1113
Points : 2450
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
Bonsoir @simjoubert,
FÉLICITATIONS, et un très GRAND MERCI pour la réalisation de ce script en un temps record.
Je viens de réaliser un rapide test, et cela semble fonctionner à merveille, tel que je l'avais imaginé.
Je vais procéder demain d'autres tests, mais il ne devrait pas y avoir de souci à mon avis.
Oui, c'est certain, avoir le script sous forme d'un plugin et accessible par un bouton serait plus pratique.
Encore BRAVO et MERCI d'avoir pris de ton temps précieux pour satisfaire ma demande.
JDD
FÉLICITATIONS, et un très GRAND MERCI pour la réalisation de ce script en un temps record.
Je viens de réaliser un rapide test, et cela semble fonctionner à merveille, tel que je l'avais imaginé.
Je vais procéder demain d'autres tests, mais il ne devrait pas y avoir de souci à mon avis.
Oui, c'est certain, avoir le script sous forme d'un plugin et accessible par un bouton serait plus pratique.
Encore BRAVO et MERCI d'avoir pris de ton temps précieux pour satisfaire ma demande.
JDD
tenrev aime ce message
- JDDV.I.P.
-
Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 1113
Points : 2450
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
Re Bonsoir @simjoubert
J'ai découvert un bug en ligne 53 et 54 dans la saisie des paramètres easingInOut (par défaut = Oui=1) et shakyCam (par défaut =Non=0)
Dans le fichier XML, il écrit l'inverse pour les valeurs par défaut de ces 2 paramètres.
A part ce petit détail, tout semble OK
JDD
J'ai découvert un bug en ligne 53 et 54 dans la saisie des paramètres easingInOut (par défaut = Oui=1) et shakyCam (par défaut =Non=0)
Dans le fichier XML, il écrit l'inverse pour les valeurs par défaut de ces 2 paramètres.
A part ce petit détail, tout semble OK
JDD
- JDDV.I.P.
-
Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 1113
Points : 2450
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
tenrev aime ce message
Hello les amis
Merci @JDD pour l’idée et surtout @simjoubert pour la réalisation c’est top ,je teste cela ce week-end bravo à vous
Merci @JDD pour l’idée et surtout @simjoubert pour la réalisation c’est top ,je teste cela ce week-end bravo à vous
![[ SKETCHUP plugins ] Flightpath2 Cloche10](https://i.servimg.com/u/f58/19/65/32/06/cloche10.gif)
![[ SKETCHUP plugins ] Flightpath2 Prier11](https://i.servimg.com/u/f58/19/65/32/06/prier11.gif)
-------------------------------------------------------------------------------------------------------------------------
je ne sais pas grand chose , mais le peu que je sache , je le partage/Salut Invité merci de consulter mon profil/PC fixe Rizen 9 3950 cg RTX3080-64 go de ram DDssd 1To/1 PC portable Lenovo 16'' w11 i7 32go-CG RTX3070 8go/1casque meta Quest 3/1 casque VR Occulus Rift /1 PC portable Dell sous Linux Ubuntu-1 pc portable HP sous chromebook/Raspberry Pi - Arduino / Modélisation :Sketchup-Rhino-Pconplanner-Rendu:Enscape-Keyshot-Unreal Engine-Twinmotion-Autres:Photoshop-Indesign-After Effect-Première pro-Intelligence artificielle -Chatgpt+-Midjourney-Suno-Elevenlabs-Canva
![[ SKETCHUP plugins ] Flightpath2 575088biblio3d](https://2img.net/r/hpimg15/pics/575088biblio3d.gif)
Hello
Je n'ai pas encore mis le code sous forme de plugin
Mais j'ai créé une nouvelle fonction qui permet de générer le fichier xml depuis une courbe et une mire Je l'ai nommé Curve To Enscape Path Video
Voici une capture de présentation :
![[ SKETCHUP plugins ] Flightpath2 Curve_10](https://i.servimg.com/u/f70/19/85/19/55/curve_10.png)
Voici la capture de la boite de dialogue :
![[ SKETCHUP plugins ] Flightpath2 Captu164](https://i.servimg.com/u/f70/19/85/19/55/captu164.png)
Il faut au préalable dessiner une courbe qui peut être un arc de cercle, un cercle, ellipse, spirale... courbe de Béziers. Bref des arêtes soudées.
Chaque point de la courbe deviendra un point de vue.
Placer un composant n'importe quoi, ce qui importe, c'est son origine.
Sélectionner la courbe et le composant et exécuter dans la console le code
Mais avant tout cela vous devez instancier la fonction en exécutant ce code
Bonne soirée et bon film !
Je n'ai pas encore mis le code sous forme de plugin
Mais j'ai créé une nouvelle fonction qui permet de générer le fichier xml depuis une courbe et une mire Je l'ai nommé Curve To Enscape Path Video
Voici une capture de présentation :
![[ SKETCHUP plugins ] Flightpath2 Curve_10](https://i.servimg.com/u/f70/19/85/19/55/curve_10.png)
Voici la capture de la boite de dialogue :
![[ SKETCHUP plugins ] Flightpath2 Captu164](https://i.servimg.com/u/f70/19/85/19/55/captu164.png)
Il faut au préalable dessiner une courbe qui peut être un arc de cercle, un cercle, ellipse, spirale... courbe de Béziers. Bref des arêtes soudées.
Chaque point de la courbe deviendra un point de vue.
Placer un composant n'importe quoi, ce qui importe, c'est son origine.
Sélectionner la courbe et le composant et exécuter dans la console le code
- Code:
curve_to_enscape_path
Mais avant tout cela vous devez instancier la fonction en exécutant ce code
- Code:
# CURVE TO ENSCAPE PATH VIDEO
# Cette fonction permet d'extraire la position de chaque point de la courbe et la position de la cible
# Elle créer un fichier xml importable dans Enscape dans le module Vidéo
# 4 Modes de trajectoire :
# Parcours Marche avant: La camera est placée sur chaque points de la courbe et vise le point suivant.
# Parcours Marche arrière : La caméra est placée sur chaque points de la courbe et vise le point précédent.
# Traveling : La caméra vise la mire, en chaque points de la courbe.
# Panoramique : La caméra est fixée sur la mire et vise chaque points de la courbe.
# Options de delai entre 2 points de vue :
# Délai départ, milieu et fin de trajectoire
# Calcul de l'increment pour chaque point de vue, pour simuler une acceleration ou un ralentis.
# Options heure des points de vue :
# Heure départ, milieu et fin de trajectoire
# Calcul de l'increment pour chaque point de vue,
# Option transitions douces
# Option Caméra instable
# Usage sélectionnez une courbe et un composant cible (c'est l'origine du composant qui sera la cible dans un traveling et la position de la caméra pour un panoramique)
# Source JDD (Forum Biblio3d)
# Author Simon Joubert
# Version 1.0
# Date 12/03/2022
def curve_to_enscape_path()
model = Sketchup.active_model
sel = model.selection
# On récupère la position de la cible
inst = sel.grep(Sketchup::ComponentInstance)[0]
unless inst == nil
cible = inst.transformation.origin
mode = "Parcours marche avant|Parcours marche arrière|Traveling|Panoramique"
else
mode = "Parcours marche avant|Parcours marche arrière"
end
# On récupère la courbe
curve = sel.grep(Sketchup::Edge)[0].curve
edges_num = curve.edges.length
ferme = (curve.edges[0].start.position == curve.edges[-1].end.position ? 0:1)
cam_num = edges_num + ferme
cam_middle = (cam_num/2).to_i
if model.path == "" # Le modèle n'est pas enregistré
message = UI.messagebox("Veuillez enregister votre modèle et recommencer.\nOpération annulée", MB_OK)
return
elsif edges_num < 1 # Il n'y a aucune scène
message = UI.messagebox("La sélection ne comporte aucune courbe.\nOpération annulée", MB_OK)
return
else
#Boite de dialogue
prompts = ["Horodatage increment début","Horodatage increment milieu","Horodatage increment fin", "Heure début", "Heure miieu", "Heure fin", "Angle champ de vision en degres ?", "Caméra instable ?", "Transisition en douceur ?","Mode trajectoire"]
defaults = [2.0,5.0,2.0,8.0,14.0,22.0, 60, "Non","Oui","Parcours marche avant"]
list = ["","","","","","","","Oui|Non","Oui|Non",mode]
input = UI.inputbox(prompts, defaults, list, "Trajectoire vidéo entre les scènes")
if input == false # L'utilisatateur à annulé
return
else
# Paramètre chemin enregistrement fichier
mpath = model.path.gsub(".skp","\\")
url = File.join(mpath, "Scenes_Camera_trajectoire.xml")
# Paramètres Convertion
pi = Math::PI
convertion_inch_meter = 0.0254
# Paramètres saisies par l'utilisateur
timestamp_start = input[0].to_f
timestamp_start_increment = (input[1].to_f-input[0].to_f)/cam_middle
timestamp_middle = input[1].to_f
timestamp_end = input[2].to_f
timestamp_end_increment = (input[2].to_f-input[1].to_f)/(cam_num-cam_middle)
hour_start = input[3].to_f
hour_start_increment = (input[4].to_f-input[3].to_f)/cam_middle
hour_middle = input[4].to_f
hour_end = input[5].to_f
hour_end_increment = (input[5].to_f-input[4].to_f)/(cam_num-cam_middle)
fieldOfViewRad = (input[6]*(2*pi)/360).round(6)
shakyCam =(input[7]=="Oui" ?1:0)
easingInOut =(input[8]=="Oui" ?1:0)
mode = case input[9]
when "Parcours marche avant"
0
when "Parcours marche arrière"
1
when "Traveling"
2
else
3
end
#durationSeconds = timestampSeconds * cam_num
timestamp = 0
#initialisation de la boucle
i = 0 #compteur
timestamp = 0
doc =""
#boucle sur chaque scènes
while i <edges_num
# Camera et vecteur selon le mode
case input[9]
when "Parcours marche avant"
cam = curve.edges[i].start.position
edge_end = curve.edges[i].end.position
vector = cam.vector_to(edge_end)
when "Parcours marche arrière"
cam = curve.edges[i].start.position
edge_end = curve.edges[i].end.position
vector = edge_end.vector_to(cam)
when "Traveling"
cam = curve.edges[i].start.position
vector = cam.vector_to(cible)
else
cam = cible
edge_start = curve.edges[i].start.position
vector = cible.vector_to (edge_start)
end
lookat_x = (vector.x * convertion_inch_meter).round(6)
lookat_y = (vector.z * convertion_inch_meter).round(6) #Permutation des axes Z et Y
lookat_z = -(vector.y * convertion_inch_meter).round(6) #Permutation des axes Z et Y
eye = cam # position de la camera
position_x = (eye.x * convertion_inch_meter).round(6)
position_y = (eye.z * convertion_inch_meter).round(6) #Permutation des axes Z et Y
position_z = -(eye.y * convertion_inch_meter).round(6) #Permutation des axes Z et Y
if i < cam_middle
hour = hour_start + ( i* hour_start_increment)
timestamp = timestamp + (timestamp_start+ ( i * timestamp_start_increment))
elsif i == cam_middle
hour = hour_middle
timestamp = timestamp + timestamp_middle
else
hour = hour_middle + ( (i-cam_middle)* hour_end_increment)
timestamp = timestamp + (timestamp_middle + ( (i-cam_middle) * timestamp_end_increment))
end
# On ajoute à la chaine xml les paramètre de keyframe propre à la scène
doc = doc + <<-XML
<Keyframe order="#{i}" hour="#{hour}" fieldOfViewRad="#{fieldOfViewRad}" timestampSeconds="#{timestamp}">
<Position x="#{position_x}" y="#{position_y}" z="#{position_z}" />
<LookAt x="#{lookat_x}" y="#{lookat_y}" z="#{lookat_z}" />
</Keyframe>
XML
i +=1 #On incrémente le compteur
end # Fin de la boucle
if ferme == 1 # Si la courbe ,n'est pas une boucle, on gère le dernier point
# Camera et vecteur selon le mode
case input[9]
when "Parcours marche avant"
cam = curve.edges[-1].end.position
edge_start = curve.edges[i].start.position
vector = edge_start.vector_to(cam)
when "Parcours marche arrière"
cam = curve.edges[-1].end.position
edge_start = curve.edges[-1].start.position
vector = cam.vector_to(edge_start)
when "Traveling"
cam = curve.edges[-1].end.position
vector = cam.vector_to(cible)
else
cam = cible
edge_end = curve.edges[-1].end.position
vector = cible.vector_to (edge_end)
end
#cam = curve.edges[-1].end.position # On récupère la camera de la scène n° i
#vector = cam.vector_to(center)
lookat_x = (vector.x * convertion_inch_meter).round(6)
lookat_y = (vector.z * convertion_inch_meter).round(6) #Permutation des axes Z et Y
lookat_z = -(vector.y * convertion_inch_meter).round(6) #Permutation des axes Z et Y
eye = cam # position de la camera
position_x = (eye.x * convertion_inch_meter).round(6)
position_y = (eye.z * convertion_inch_meter).round(6) #Permutation des axes Z et Y
position_z = -(eye.y * convertion_inch_meter).round(6) #Permutation des axes Z et Y
hour = hour_end
timestamp = timestamp + timestamp_end
# On ajoute à la chaine xml les paramètre de keyframe propre à la scène
doc = doc + <<-XML
<Keyframe order="#{i}" hour="#{hour}" fieldOfViewRad="#{fieldOfViewRad}" timestampSeconds="#{timestamp}">
<Position x="#{position_x}" y="#{position_y}" z="#{position_z}" />
<LookAt x="#{lookat_x}" y="#{lookat_y}" z="#{lookat_z}" />
</Keyframe>
XML
end
#Entête du fichier xml
doc_entete = <<-XML
<?xml version="1.0" ?>
<VideoPath version="1" durationSeconds="#{timestamp}" easingInOut="#{easingInOut}" shakyCam="#{shakyCam}">
<Keyframes count="#{cam_num}">
XML
# On ajoutte au xml la fermeture des balises d'entête
doc = doc_entete + doc + <<-XML
</Keyframes>
</VideoPath>
XML
# On test l'existance du dossier portant le m^me nom que le fichier du modele
if File.directory?(mpath) == false
#on creer le répertoire avec le nom du modèle s'il n'éxiste pas
FileUtils.mkdir mpath
end
#Ecriture du fichier
File.open(url, 'w') { |file| file.write(doc) }
# Message de succès
message = UI.messagebox("Le fichier :\n#{url}\nà été généré avec succès !", MB_OK)
end
end
end
Bonne soirée et bon film !
![mojito](/users/2813/51/05/40/smiles/192895103.gif)
![[ SKETCHUP plugins ] Flightpath2 IPB_917](https://2img.net/h/www.smileys.lu/repository/-Selection_IPB-/IPB_917.gif)
JDD aime ce message
Hello les amis
j'ai fait mon animation avec le plugin prescris par JDD et le script de Simon et du coup j'ai fait une vidéo style tuto
j'ai fait mon animation avec le plugin prescris par JDD et le script de Simon et du coup j'ai fait une vidéo style tuto
-------------------------------------------------------------------------------------------------------------------------
je ne sais pas grand chose , mais le peu que je sache , je le partage/Salut Invité merci de consulter mon profil/PC fixe Rizen 9 3950 cg RTX3080-64 go de ram DDssd 1To/1 PC portable Lenovo 16'' w11 i7 32go-CG RTX3070 8go/1casque meta Quest 3/1 casque VR Occulus Rift /1 PC portable Dell sous Linux Ubuntu-1 pc portable HP sous chromebook/Raspberry Pi - Arduino / Modélisation :Sketchup-Rhino-Pconplanner-Rendu:Enscape-Keyshot-Unreal Engine-Twinmotion-Autres:Photoshop-Indesign-After Effect-Première pro-Intelligence artificielle -Chatgpt+-Midjourney-Suno-Elevenlabs-Canva
![[ SKETCHUP plugins ] Flightpath2 575088biblio3d](https://2img.net/r/hpimg15/pics/575088biblio3d.gif)
JDD, simjoubert et Rascal aiment ce message
J’ai posté un peu avant une autre version ou l’on a plus besoin de générer les scènes! Et avec plus d’options.
Je vais mettre tout ça en barre outils promis!
Je vais mettre tout ça en barre outils promis!
simjoubert a écrit:J’ai posté un peu avant une autre version ou l’on a plus besoin de générer les scènes! Et avec plus d’options.
Je vais mettre tout ça en barre outils promis!
salut Simon
à oui j'avais préparé mon post pendant que je faisais la vidéo , du coup j'ai pas vu ton post avant le mien
merci c'est cool , c'est encore mieux
-------------------------------------------------------------------------------------------------------------------------
je ne sais pas grand chose , mais le peu que je sache , je le partage/Salut Invité merci de consulter mon profil/PC fixe Rizen 9 3950 cg RTX3080-64 go de ram DDssd 1To/1 PC portable Lenovo 16'' w11 i7 32go-CG RTX3070 8go/1casque meta Quest 3/1 casque VR Occulus Rift /1 PC portable Dell sous Linux Ubuntu-1 pc portable HP sous chromebook/Raspberry Pi - Arduino / Modélisation :Sketchup-Rhino-Pconplanner-Rendu:Enscape-Keyshot-Unreal Engine-Twinmotion-Autres:Photoshop-Indesign-After Effect-Première pro-Intelligence artificielle -Chatgpt+-Midjourney-Suno-Elevenlabs-Canva
![[ SKETCHUP plugins ] Flightpath2 575088biblio3d](https://2img.net/r/hpimg15/pics/575088biblio3d.gif)
- JDDV.I.P.
-
Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 1113
Points : 2450
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
Bonsoir,
@simjoubert Encore une fois BRAVO.
Tu as en fait en quelque sorte une compilation de ce que peut réaliser FlighPath2 et la première version de ton script.
@tenrev Super le tuto, Merci
As-tu pris en compte le bug que j'ai signalé en ligne 53 et 54 (car sur ta démo tu copies le script posté qui possède ce petit bug, peut-être pas perceptible dans la vidéo finale) ?
J'ai également réalisé également cette AM un test d'animation, je vais poster la vidéo résultante ici après ce message dans la soirée.
Demain je testerai le dernier script de @simjoubert
JDD
@simjoubert Encore une fois BRAVO.
Tu as en fait en quelque sorte une compilation de ce que peut réaliser FlighPath2 et la première version de ton script.
@tenrev Super le tuto, Merci
As-tu pris en compte le bug que j'ai signalé en ligne 53 et 54 (car sur ta démo tu copies le script posté qui possède ce petit bug, peut-être pas perceptible dans la vidéo finale) ?
J'ai également réalisé également cette AM un test d'animation, je vais poster la vidéo résultante ici après ce message dans la soirée.
Demain je testerai le dernier script de @simjoubert
JDD
tenrev aime ce message
- JDDV.I.P.
-
Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 1113
Points : 2450
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
Bonsoir,
Cette après Midi j'ai réalisé un autre test avec FlighPath2 et le script de @simjoubert
C'est une visite rapide d'un petit studio, ou il est difficile de se retourner.
Ci-après la vidéo produite par Enscape en final.
Ne pas trop commenter svp l'éclairage, car n'est pas eu le temps de m'y pencher, l'objectif premier étant de tester le script de @simjoubert sans rien retoucher au VideoPath obtenu.
Pour la trajectoire j'ai ici utilisé l'outil ligne de SketchUp, et sur chaque ligne j'ai appliqué une division en plusieurs segments avec l'outil natif dans SketchUp, puis en final, soudé le tout avec le plugin WELD de TIG
La courbe, comme dans la vidéo de @tenrev j'ai ensuite disposé à hauteur des yeux la courbe dans la scène (1.7m) et enfin j'ai appliqué le plugin FlightPath2 avec comme cible la courbe de trajectoire de la caméra, suivi du script de @simjoubert pour l'élaboration du VideoPath pour Enscape.
JDD
Cette après Midi j'ai réalisé un autre test avec FlighPath2 et le script de @simjoubert
C'est une visite rapide d'un petit studio, ou il est difficile de se retourner.
Ci-après la vidéo produite par Enscape en final.
Ne pas trop commenter svp l'éclairage, car n'est pas eu le temps de m'y pencher, l'objectif premier étant de tester le script de @simjoubert sans rien retoucher au VideoPath obtenu.
Pour la trajectoire j'ai ici utilisé l'outil ligne de SketchUp, et sur chaque ligne j'ai appliqué une division en plusieurs segments avec l'outil natif dans SketchUp, puis en final, soudé le tout avec le plugin WELD de TIG
La courbe, comme dans la vidéo de @tenrev j'ai ensuite disposé à hauteur des yeux la courbe dans la scène (1.7m) et enfin j'ai appliqué le plugin FlightPath2 avec comme cible la courbe de trajectoire de la caméra, suivi du script de @simjoubert pour l'élaboration du VideoPath pour Enscape.
JDD
tenrev, simjoubert et Rascal aiment ce message
JDD a écrit:As-tu pris en compte le bug que j'ai signalé en ligne 53 et 54 (car sur ta démo tu copies le script posté qui possède ce petit bug, peut-être pas perceptible dans la vidéo finale) ?
ha non c'est vrai , mais comme l'animation c'est bien déroulée
![rigole](/users/2813/51/05/40/smiles/37129.gif)
![bien](/users/2813/51/05/40/smiles/963465.gif)
-------------------------------------------------------------------------------------------------------------------------
je ne sais pas grand chose , mais le peu que je sache , je le partage/Salut Invité merci de consulter mon profil/PC fixe Rizen 9 3950 cg RTX3080-64 go de ram DDssd 1To/1 PC portable Lenovo 16'' w11 i7 32go-CG RTX3070 8go/1casque meta Quest 3/1 casque VR Occulus Rift /1 PC portable Dell sous Linux Ubuntu-1 pc portable HP sous chromebook/Raspberry Pi - Arduino / Modélisation :Sketchup-Rhino-Pconplanner-Rendu:Enscape-Keyshot-Unreal Engine-Twinmotion-Autres:Photoshop-Indesign-After Effect-Première pro-Intelligence artificielle -Chatgpt+-Midjourney-Suno-Elevenlabs-Canva
![[ SKETCHUP plugins ] Flightpath2 575088biblio3d](https://2img.net/r/hpimg15/pics/575088biblio3d.gif)
JDD a écrit:Cette après Midi j'ai réalisé un autre test avec FlighPath2 et le script de @simjoubert
super , c'est nickel
![bien](/users/2813/51/05/40/smiles/963465.gif)
![bravo](/users/2813/51/05/40/smiles/383867.gif)
-------------------------------------------------------------------------------------------------------------------------
je ne sais pas grand chose , mais le peu que je sache , je le partage/Salut Invité merci de consulter mon profil/PC fixe Rizen 9 3950 cg RTX3080-64 go de ram DDssd 1To/1 PC portable Lenovo 16'' w11 i7 32go-CG RTX3070 8go/1casque meta Quest 3/1 casque VR Occulus Rift /1 PC portable Dell sous Linux Ubuntu-1 pc portable HP sous chromebook/Raspberry Pi - Arduino / Modélisation :Sketchup-Rhino-Pconplanner-Rendu:Enscape-Keyshot-Unreal Engine-Twinmotion-Autres:Photoshop-Indesign-After Effect-Première pro-Intelligence artificielle -Chatgpt+-Midjourney-Suno-Elevenlabs-Canva
![[ SKETCHUP plugins ] Flightpath2 575088biblio3d](https://2img.net/r/hpimg15/pics/575088biblio3d.gif)
- JDDV.I.P.
-
Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 1113
Points : 2450
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
tenrev a écrit:ha non c'est vrai , mais comme l'animation c'est bien déroulée
Dans Enscape, Le paramètre easingInOut (Mode avec transition douce) n'est pas trop sensible ni trop perceptible, mais par contre le paramètre shakyCam (Simulation d'une caméra instable) est lui bien sensible et très perceptible.
JDD
- JDDV.I.P.
-
Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 1113
Points : 2450
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
simjoubert a écrit:Hello j’avais corrigé le post donc normal que cela ai fonctionné !
Merci œil de Lynx!
Je n'avais pas observé ce détail, maintenant je comprends mieux.
JDD
tenrev aime ce message
- RascalAdministrateurs
-
Humeur : Bonne en général, sauf quand ça ne va pas!
Date d'inscription : 28/08/2018
Nombre de messages : 2284
Points : 4746
Age : 45
Localisation : Pays Gallo
Emploi : Beaucoup trop en ce moment!!
C'est quand même bien sympa comme résultat!
![bravo](/users/2813/51/05/40/smiles/383867.gif)
-------------------------------------------------------------------------------------------------------------------------
Il vaut mieux fermer sa gueule et passer pour un con,...
..... que l'ouvrir et ne laisser aucun doute à ce sujet
![clindoeil](/users/2813/51/05/40/smiles/3844568069.png)
- Contenu sponsorisé
Page 1 sur 3 • 1, 2, 3
Sujets similaires
» [ SKETCHUP plugins ] Oob plugins - Plugins top pour le bâtiment réalisés par un français
» [ SKETCHUP plugins ] tutos en plusieurs parties sur la généralité des plugins sketchup
» [ SKETCHUP plugins ] Black friday -30 % à - 50% sur des plugins sketchup
» [ SKETCHUP plugins ] les plugins sketchup que vous utilisez
» [ SKETCHUP plugins ] Certains Plugins de Fredo vont devenir payants!
» [ SKETCHUP plugins ] tutos en plusieurs parties sur la généralité des plugins sketchup
» [ SKETCHUP plugins ] Black friday -30 % à - 50% sur des plugins sketchup
» [ SKETCHUP plugins ] les plugins sketchup que vous utilisez
» [ SKETCHUP plugins ] Certains Plugins de Fredo vont devenir payants!
Créer un compte ou se connecter pour répondre
Vous devez être membre pour répondre.
Page 1 sur 3
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum