A4B (Atelier 4 Blender)

Modérateurs : frez, Yadoob, stilobique, Matpi, ModSquad

Re: A4B (Atelier 4 Blender)

Message par lapineige » 25 Avr 2016, 15:18

Technique, ça reste quand même abordable, pas hyper poussé, mais plutôt complet pour débuter.

Il date un peu, mais doit toujours se vendre en version papier. Une trentaine d'euro je crois.
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3711
Inscription : 25 Juin 2014, 07:06

Re: A4B (Atelier 4 Blender)

Message par Olive » 25 Avr 2016, 17:48

pistiwique a écrit :Pour ton point : "Store point of view before changing screen layout", tu veux le faire pour tout les screen layout ou juste quand tu est en screen view3d ?


Euh, je résume ce que je voulais faire :

Quand je change de screen-layout, je perds l'orientation de la vue 3D au profit de celui enregistré dans le nouveau screen-layout. Très pénible quand on a trouvé une bonne vue et qu'on la perd en changeant de screen.
Cas typique en modé quand on switch entre object-mode, edit, sculpt...

Donc je voudrais une classe qui enregistre en mémoire ses fameuses coordonnées de vue 3D (avant de changer de screen-layout).
Une autre classe qui me permet de les récupérer depuis la mémoire et les appliquer aux vues 3D dans le nouveau screen-layout.
Et enfin une troisième qui efface la mémoire (à fusionner dans la 2ème classe ?)

Matpi, dans son addon 'Synchronize 3D Views' a déjà un peu exploré le sujet. Idem pour waylow dans son 'Bookmark View'
Avatar de l’utilisateur
Olive
 
Message(s) : 695
Inscription : 30 Sep 2013, 15:20
Localisation : Clemont/Sauldre

Re: A4B (Atelier 4 Blender)

Message par Olive » 25 Avr 2016, 17:57

Mise à jour : 0.3.2 avec du code censé être plus permissif pour les pie en mode object/edit/sculpt/painting qui n'ont plus besoin absolument d'un screen-layout pour fonctionner.
Par contre, les pie de retopo/uv/anim/fx/skin/hair nécessitent eux le screen approprié pour s'afficher (logique puisqu'ils s'affichent tous dans dans les mêmes modes object ou edit...)

Quelques outils ajoutés/redispatchés sur les nouveaux pie, des raccourcis divers, etc...
Avatar de l’utilisateur
Olive
 
Message(s) : 695
Inscription : 30 Sep 2013, 15:20
Localisation : Clemont/Sauldre

Re: A4B (Atelier 4 Blender)

Message par pistiwique » 25 Avr 2016, 19:21

Dis moi si c'est ce genre la que tu souhaites:
Code : Tout sélectionner
import bpy
from bpy.props import FloatProperty, FloatVectorProperty, StringProperty
#---------------------------------------------------------------------------------------------------------------------------------------
#add property to Scene to store the view data
class Taz_View_ProptyGrp(bpy.types.PropertyGroup):
    taz_view_loc = FloatVectorProperty(name="Location", description="location", default=(0.0, 0.0, 0.0))
    taz_view_rot = FloatVectorProperty(name="Rotation", description="rotation", size=4, default=(0.0, 0.0, 0.0, 0.0))   
    taz_view_dist = FloatProperty(name="Distance", description="distance", default=10.0)
    taz_view_shade = StringProperty(name='Shading Mode', default="")
    taz_view_persp = StringProperty(name='Perspective', default="")
#---------------------------------------------------------------------------------------------------------------------------------------   
class Taz_View_Store(bpy.types.Operator):
    """Store the current view"""
    bl_idname = "scene.taz_view_store"
    bl_label = "Store the current view"
 
    def execute(self, context):
        region_id = bpy.context.region.id
 
        #this will loop through the areas and match the view with the same id
        for area in bpy.context.screen.areas:           
            for region in area.regions:
                if region.id == region_id:
                    view = area.spaces[0]
 
        taz_view = bpy.context.window_manager.Taz_View_ProptyGrp
        taz_view.taz_view_loc = view.region_3d.view_location
        taz_view.taz_view_rot = view.region_3d.view_rotation
        taz_view.taz_view_dist = view.region_3d.view_distance
        taz_view.taz_view_shade = view.viewport_shade
        taz_view.taz_view_persp = view.region_3d.view_perspective
 
        return {'FINISHED'}
#---------------------------------------------------------------------------------------------------------------------------------------
class Taz_View_Replace(bpy.types.Operator):
    """Replace the current view"""
    bl_idname = "scene.taz_view_replace"
    bl_label = "Replace the current view"
 
    def execute(self, context):
        taz_view = bpy.context.window_manager.Taz_View_ProptyGrp           
        region_id = bpy.context.region.id
        for area in bpy.context.screen.areas:           
            for region in area.regions:
                if region.id == region_id:
                    view = area.spaces[0]
       
        view.region_3d.view_location = taz_view.taz_view_loc
        view.region_3d.view_rotation = taz_view.taz_view_rot
        view.region_3d.view_distance = taz_view.taz_view_dist
        view.viewport_shade = taz_view.taz_view_shade
        view.region_3d.view_perspective = taz_view.taz_view_persp
 
        return {'FINISHED'}
 
class TazViewPanel(bpy.types.Panel):
    bl_idname = "taz_view_panel"
    bl_label = "Taz View Panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "TOOLS"
    bl_category = "category"
 
    def draw(self, context):
        layout = self.layout
        layout.operator("scene.taz_view_store", text="Store")
        layout.operator("scene.taz_view_replace", text="Replace")
 
#---------------------------------------------------------------------------------------------------------------------------------------
 
def register():
    bpy.utils.register_module(__name__)
    bpy.types.WindowManager.Taz_View_ProptyGrp = bpy.props.PointerProperty(type=Taz_View_ProptyGrp)
 
def unregister():
    del bpy.types.WindowManager.Taz_View_ProptyGrp
    bpy.utils.unregister_module(__name__)
 
if __name__ == "__main__":
    register()
 


La il ne fonctionne que dans la vue 3D et sans contrainte de mode sculpt, objet ou edit mais c'est juste pour le test.
Avatar de l’utilisateur
pistiwique
 
Message(s) : 590
Inscription : 10 Août 2014, 10:35
Localisation : le sud ou il fait trop chaud

Re: A4B (Atelier 4 Blender)

Message par Olive » 25 Avr 2016, 20:38

Oui, c'est nickel, merci pisti :D

Je l'ai déjà intégré en mode manuel via mon pie d'affichage :

Image

Me reste à proposer une option "full automatic" dans les users-prefs et ce sera parfait 8-)
Avatar de l’utilisateur
Olive
 
Message(s) : 695
Inscription : 30 Sep 2013, 15:20
Localisation : Clemont/Sauldre

Re: A4B (Atelier 4 Blender)

Message par Olive » 25 Avr 2016, 22:58

En manuel, no problemo, tes classes (pisti) fonctionnent nickel !

J'ai ensuite ajouté ma fonction "bpy.ops.scene.taz_view_replace()" pour que l'update se fasse automatiquement mais çà ne marche pas :x
Le + bizarre, c'est que la fonction "bpy.ops.scene.taz_view_store()" fonctionne à merveille depuis le début :roll:

Code : Tout sélectionner
# Switch between layouts "A4B-Animation" & "A4B-FX"
class ClassLayoutAnim(bpy.types.Operator):
    """Switch between layout "A4B-Animation" & "A4B-FX" """
    bl_idname = "class.layoutanim"
    bl_label = "Class Layout Animation"
   
    def execute(self, context):
               
        if bpy.context.window.screen == bpy.data.screens["A4B-Animation"]:
            bpy.ops.scene.taz_view_store()
            bpy.context.window.screen = bpy.data.screens["A4B-FX"]
            bpy.ops.object.mode_set(mode="OBJECT")
            bpy.ops.scene.taz_view_replace()
        else:
            bpy.ops.scene.taz_view_store()
            bpy.context.window.screen = bpy.data.screens["A4B-Animation"]
            bpy.ops.object.mode_set(mode="OBJECT")
            bpy.ops.scene.taz_view_replace()
        return {'FINISHED'}


Après réflexion, la seule chose qui change entre les 2 méthodes :
- en manuel, j'active le replace directement dans la vue 3D du nouveau screen-layout
- tandis qu'en auto, le replace doit s'activer n'importe où dans le screen-layout.
Avatar de l’utilisateur
Olive
 
Message(s) : 695
Inscription : 30 Sep 2013, 15:20
Localisation : Clemont/Sauldre

Re: A4B (Atelier 4 Blender)

Message par pistiwique » 26 Avr 2016, 19:02

J'ai dl ton addon ainsi que le .blend.
Tout d'abord, quand j'ai voulu dl le .blend sur ton cite, Bitdefender m'a mis en garde contre de potentiels malwares. J'ai dl quand même... on verra bien :lol: .
ensuite, si je l'ai dl sur ton site, c'est parce qu'il n'est pas sur ton github, c'est dommage, parce que ça centraliserai le tout et si tu apportes des modifs au .blend, c'est mis à jour^^.
Et enfin, vu que de toute façon les gens qui voudront utiliser tes pies seront obligé de les faire fonctionner avec ton .blend startup, plutôt que de mettre du code pour une ouverture auto, pourquoi ne pas simplement dire aux gens d'ouvre le .blend et de faire un "save startup files" ?
Comme ça, il ne le font qu'une fois, ils peuvent même s'ils le souhaite modifier un peu l'interface tant qu'ils ne modifient pas le noms des screens.
Et au pire, si certains le font (parce qu'il y en a toujours qui iront faire ce qu'il ne faut pas faire :evil: ), ils auront toujours le .blend dans le dossier de l'addon quand il sera en multi file.

EDIT:
Un autre point que j'ai oublié. Perso, j'ai décoché la case "load UI" dans les prefs pour éviter que lorsque j'ouvre un .blend, mon UI soit changé. Du coup, ça ne chargeait pas l'ui de ton .blend et donc, les screens layout non plus.
Il faudra surement que tu mettes un message d'alerte dans les prefs ;) .
Avatar de l’utilisateur
pistiwique
 
Message(s) : 590
Inscription : 10 Août 2014, 10:35
Localisation : le sud ou il fait trop chaud

Re: A4B (Atelier 4 Blender)

Message par Olive » 26 Avr 2016, 21:36

pistiwique a écrit :Tout d'abord, quand j'ai voulu dl le .blend sur ton cite, Bitdefender m'a mis en garde contre de potentiels malwares.


Moi, j'ai pas d'anti-virus sur mon PC et j'ai jamais été infecté :lol:

pistiwique a écrit :si je l'ai dl sur ton site, c'est parce qu'il n'est pas sur ton github, c'est dommage, parce que ça centraliserai le tout et si tu apportes des modifs au .blend, c'est mis à jour^^.


J'avais up-loadé en mettant le tout en zip, mais quand je l'avais re-downloadé pour une vérif, çà me téléchargeait une page web ! J'ai pas du faire la bonne manip :lol:
Je vais revoir çà :mrgreen:

pistiwique a écrit :[..] plutôt que de mettre du code pour une ouverture auto, pourquoi ne pas simplement dire aux gens d'ouvre le .blend et de faire un "save startup files" ?


C'est déjà indiqué" dans les prefs de l'addon (bon encore en frenchy :oops: )

C'est une solution simple et rapide en effet. Mais elle oblige l'user à perdre tous ses réglages, ce que je trouve très génant.
A terme, il serait mieux :

- soit de ne charger que les screen-layouts dans le startup fourni, mais Matpi s'est déjà renseigné, çà ne semble pas possible à moins de modifier en C dans blender direct :roll:

- soit de lancer un script à l'install de l'addon :
Code : Tout sélectionner
copie du 1er screen-layout disponible dans le blender de l'utilisateur
renommage du nouveau screen-layout ainsi créé

Ces 2 fonctions à répéter 13 fois de suite (il y a 14 screen-layout)

Finir avec un save user prefs

Je pense que c'est réalisable, toutes ces fonctions existent déjà dans l'interface, mais je ne connais pas les commandes python pour çà (elles ne s'affichent pas quand je copie ou renomme un screen-layout).

pistiwique a écrit :Perso, j'ai décoché la case "load UI" dans les prefs pour éviter que lorsque j'ouvre un .blend, mon UI soit changé. Du coup, ça ne chargeait pas l'ui de ton .blend et donc, les screens layout non plus.
Il faudra surement que tu mettes un message d'alerte dans les prefs ;) .


Ouaip, c'est un oubli de ma part, merci de me le rappeler !

pistiwique a écrit :[..] ils auront toujours le .blend dans le dossier de l'addon quand il sera en multi file.


En multi file ?!... j'ai pas compris de quoi tu parles :roll:
Avatar de l’utilisateur
Olive
 
Message(s) : 695
Inscription : 30 Sep 2013, 15:20
Localisation : Clemont/Sauldre

Re: A4B (Atelier 4 Blender)

Message par lapineige » 26 Avr 2016, 21:48


Moi, j'ai pas d'anti-virus sur mon PC et j'ai jamais été infecté :lol:

Hum... tu veux qu'on regarde ce qu'il passe sur le réseau ? Lance wireshark pour voir ;)
Un bon virus, sauf de la catégorie des ramsonware et autres (qui veulent être visibles) saura bien se cacher.
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3711
Inscription : 25 Juin 2014, 07:06

Re: A4B (Atelier 4 Blender)

Message par cedric » 26 Avr 2016, 21:53

Si t'es sur win 10 tu as bitdefender.
Cédric Lepiller, Freelance 3D Pitiwazou.com, Mes Addons, Asset Management, Speedflow
Avatar de l’utilisateur
cedric
Administrateur
 
Message(s) : 7043
Inscription : 03 Août 2013, 21:36

Re: A4B (Atelier 4 Blender)

Message par lapineige » 26 Avr 2016, 21:57

cedric a écrit :Si t'es sur win 10 tu as bitdefender.

Je trolle ? :D
Au choix: les manchots, ou la résolution des problèmes.
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3711
Inscription : 25 Juin 2014, 07:06

Re: A4B (Atelier 4 Blender)

Message par Olive » 27 Avr 2016, 00:02

J'ai honteusement essayé de copier la mise en page des prefs de l'addon "Asset Manager".
Je la trouve beaucoup plus claire avec les différents onglets.

Code : Tout sélectionner
import bpy
from bpy.types import AddonPreferences
from bpy.props import EnumProperty

# Preferences Panel

class A4BUserPrefs(bpy.types.AddonPreferences):
    bl_idname = __name__
       
    prefs_tabs = EnumProperty(
        items=(('install', "Install", "Must read before using A4B"),
               ('keymap', "KeyMap", "A4B default KeyMap"),
               ('prefs', "Prefs", "A4B Preferences"),
               ('thx', "Thx", "Thanks and links"),
               default='install'
               )
                 
    def draw(self, context):
        layout = self.layout
       
        row= layout.row(align=True)
        row.prop(self, "prefs_tabs", expand=True)
        if self.prefs_tabs == 'install':
            layout.label(text="bla bla bla")
        if self.prefs_tabs == 'keymap':
            layout.label(text="bla bla bla")
        if self.prefs_tabs == 'prefs':
            layout.label(text="bla bla bla")
        if self.prefs_tabs == 'thx':
            layout.label(text="bla bla bla")
                                   
# register
     
def register():
    bpy.utils.register_module(__name__)
def unregister():
    bpy.utils.unregister_module(__name__)
                   
if __name__ == "__main__":
    register()

Et j'ai le message d'erreur suivant :
Code : Tout sélectionner
    File "C:\blender-2.77a-windows64_portable\2.77\scripts\modules\addon_utils.py", line 330, in enable
    mod = __import__(module_name)
SystemError: <built-in function bpy_import_meth> returned NULL without setting an error
Avatar de l’utilisateur
Olive
 
Message(s) : 695
Inscription : 30 Sep 2013, 15:20
Localisation : Clemont/Sauldre

Re: A4B (Atelier 4 Blender)

Message par Olive » 21 Mai 2016, 13:50

Version 0.3.6 :

- Interface des layouts simplifiée
- amélioration des pie (workflow simplifié)
- corrections de qq. bugs

Le lien pour télécharger l'addon mis à jour : http://olidou.com/data/A4B.zip
Avatar de l’utilisateur
Olive
 
Message(s) : 695
Inscription : 30 Sep 2013, 15:20
Localisation : Clemont/Sauldre

Re: A4B (Atelier 4 Blender)

Message par Olive » 22 Mai 2016, 15:12

Version 0.3.7 :

Ajout des "NumPad Views" dans le pie dédié à l'affichage. Utile pour ceux qui n'ont pas de pavé numérique sur le clavier.

Image
Avatar de l’utilisateur
Olive
 
Message(s) : 695
Inscription : 30 Sep 2013, 15:20
Localisation : Clemont/Sauldre

Re: A4B (Atelier 4 Blender)

Message par ILYA » 28 Déc 2018, 09:09

Olive a écrit :Version 0.3.7 ....

Bonjour Olive,

Après ~ 3 ans d'arrêt de pratique de Blender, quitté au moment des versions 2.5x, j'ai entrepris la "remise à flot", difficile et longue...
Pour y parvenir, j'ai longuement, trèèès longuement lu quasi tous vos échanges passionnés et passionnants, sur ce forum, depuis vos B.A. BA des menus personnalisés jusqu'à la mise au point de vos pie menus les plus aboutis... voici deux ans... Lapineige va être content, ce post sent la sortie de terrier !

J'ai beaucoup appris de vos expériences et de vos approches respectives des pie menus, notamment entre Cédric et toi, d'autant plus riches qu'elles n'ont pas la même "philosophie", si l'on peut dire ainsi.
Plutôt que mettre en application vos productions en installant tels quels vos add-ons, j'ai puisé dans vos approches respectives pour me concocter "ma" version pie menus des commandes les plus utiles, une version qui je crois "mixe" vos scripts à tous deux, sans être toutefois allé aussi loin que vous dans la richesse de contenu.
Inutile de dire que j'ai galéré pour mettre au point et agréger les scripts, je n'ai pas votre maestria ! Cela fait presque un an que je m'y emploie, en partant de 0.0 : le peu que je connaissais des scripts du temps de Blender 2.4x et 2.5x n'a plus cours...

J'ignore si cela peut t’intéresser, mais à titre de remerciement je ne demande pas mieux que te soumettre ce que j'ai réalisé puisque c'est une application de vos travaux.
En tout cas je trouve que la moindre des marques de reconnaissance est au moins de dire publiquement merci pour tout ce que vous avez fait et dont j'ai pu profiter, ce mot ayant pour moi le sens du plus pur esprit de partage.
Utiliser vos scripts sans vous le dire et sans vous remercier, ce n'est pas dans mes pratiques... même si j'arrive longtemps après vous sur ce sujet !

Pour en quelque sorte "étayer" ma palette d'outils pie menus, j'ai bien envie de le faire en utilisant ta version A4B 0.3.7, puisée sous format .zip sur ton site olidou.com, qui est sauf erreur de ma part ta version finale des pie menus. Je l'ai installée, elle fonctionne sans erreur, mais j'ai toutefois quelques questions "basico-basiques" qui me viennent, surtout au vu de ta vidéo, comparée à ce que je constate en pratique...

Est-il possible de te demander de me renseigner, deux ans après que tu aies mis au point ton projet ? Je ne crois pas que ce qui me questionne soit très compliqué pour toi, mais je peux comprendre que le temps écoulé ne soit pas gage de facilité pour répondre, comme cela aurait été sans nul doute le cas dans le feu de l'action !

Je te remercie chaleureusement, ainsi que tous les acteurs de votre généreux travail commun,

ILYA
D'un monde 3D à un autre...
ILYA
Avatar de l’utilisateur
ILYA
 
Message(s) : 72
Inscription : 18 Oct 2017, 09:39

Précédent

Retour vers Addons

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité