Topic: Oude toch prachtige tutorial, maar nu met 2.7, Python, etc.  (gelezen 7163 keer)


Offline PKHG

  • Member
  • *
  • Berichten: 718
    • Bekijk profiel
« Gepost op: 14 juni 2014, 08:50:01 am »
Hallo
Dit heb ik ooit gedaan en vandaag herontdekt:
 http://wiki.blender.org/index.php/Doc:2.4/Tutorials/Animation/BSoD/Character_Animation

Het is OUD, maar laat veel over het gebruik van Blender zien, wat ook in 2.7 nog geldig is  of wat ik/wij zullen aanpassen.

En alhoewel het begin inderdaad eenvoudig te volgen is ben ik van plan al die stappen in mijn addon over stapsgewijs werken in te bouwen
als zeg s_eerste_annimatie.py ...
HIer een sript t/m de linker helft van een 'Plane'

import bpy
#http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation

bpy.ops.object.select_all(action='TOGGLE')
bpy.ops.object.select_all(action='TOGGLE')
bpy.ops.object.delete(use_global=False)
bpy.ops.mesh.primitive_plane_add(radius=1, view_align=False, enter_editmode=False, location=(4.84111, 11.1991, 0.193558), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))
bpy.ops.object.location_clear()
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.subdivide(smoothness=0)
#select left vertices 0 1 5
def selectVertices(vertList):
    bpy.ops.mesh.select_all(action='DESELECT')
    bpy.ops.object.mode_set(mode='OBJECT')   
    obj = bpy.context.active_object.data.vertices 
    for i in vertList:
        obj[i].select = True   
    bpy.ops.object.editmode_toggle() #edit mode! 
selectVertices([0,1,5])
bpy.ops.mesh.delete(type='VERT')


En hoe gebruik je dit nu? Gaat zo:
-1- haal de code met copy past en berg het op als  halve_plane.py
-2- open Blender en kies (boven klikken) voor Scripting!
-3- in het Text gedeelte haal je het script binnen (Alt O   of via klikken op Text ...)
-4- run script

Dat levert bij mij:


Wil iemand meedoen het hele tutorial project aan te passen en in Python te vangen?

EDIT:
En dit om de Mirror te activeren:

#nodig? JA! modifiers in object mode!
bpy.ops.object.editmode_toggle()

mirror = bpy.ops.object.modifier_add(type='MIRROR')
m = bpy.context.active_object.modifiers['Mirror']
m.use_y = True

EDIT EDIT
net ontdekt: gebruik ander knoopunten om weg te halen .. (van wege x modifier richtiing in de tutorial)
selectVertices([1,3,6])
en
m.use_x = True
en not tovoegen onderaan
m.use_clip = True

Zo, dat was deel 1, next: creating the mouth ... (later)
« Laatst bewerkt op: 14 juni 2014, 09:55:05 am door PKHG »
Doei
       Peter

Offline Ruud

  • Member
  • *
  • Berichten: 1,860
    • Bekijk profiel
« Reactie #1 Gepost op: 14 juni 2014, 20:20:15 pm »
In het verleden heb ik me ooit verdiept in programmeren het verloor mijn interesse door de saaiheid ervan als ik heden ten dagen zie hoe visueel en programmeren tot elkaar is gekomen vind ik je stukjes mooi en lees ze terug zodra ik me hier in ga verdiepen, er is al zoveel visueel omgezet en dat leer ik eerst :)
Keep it up!

Offline JvL

  • Member
  • *
  • Berichten: 3,415
    • Bekijk profiel
    • Llyr Studio
« Reactie #2 Gepost op: 14 juni 2014, 21:06:01 pm »
Op zich een mooi project om aan te pakken maar ik ben bang dat ik tijd te kort kom op het moment. Al moet ik zeggen dat ik wel veel interesse heb in het deel waar de daadwerkelijke animatie via een script geregeld gaat worden.

Offline PKHG

  • Member
  • *
  • Berichten: 718
    • Bekijk profiel
« Reactie #3 Gepost op: 16 juni 2014, 10:51:32 am »
Zo, loop-cut direct met Python ??? weet niet, nog denk ik dat het niet gaat,
dus voor dit doel maar iets geprogrammeerd.
Ging makkelijk ...

 

De plaajes blijvne ca 1.5 sec staan

Druk gebruik gemaakt van de index-visualiser!
(alleen de vertices met nummer >= 25 ;-) )
« Laatst bewerkt op: 17 juni 2014, 19:34:51 pm door PKHG »
Doei
       Peter

Offline Mark aka Dark

  • *
  • Berichten: 782
    • Bekijk profiel
    • Mijn eigen site
« Reactie #4 Gepost op: 16 juni 2014, 17:05:53 pm »
MARK de link laat een jpg zien, alhoewel het een gif is!

Zelfde en jpg maar kunstmatig door gif vervangen:

DAT is het dus niet, dus de upload wordt foutief gedaan door de forum software ??!!!

een tweede keer: lukt ook niet.


1. Wist je woorden in hoofdletters typen gelijk staat aan schreeuwen op internet? Ik houd er niet van als mensen tegen mij schreeuwen.
2. de jpg die ziet is het plaatje die als link geld naar de gif en is niet de gif zelf
3. zoals eerder aan je uitgelegd. Het uploaden zit niet in de forum software, maar gaat via een externe module.

Zou je screenshots willen maken van de schermen die je krijgt te zien tijdens het uploaden en wat je daar invult, en die hier posten? Dan kan ik even kijken of er iets anders bij gaat dan zoals dat bij mij gaat.

MAD
MAD staat voor: Mark Aka Dark
Problemen met inloggen? Mail naar: info@dbc-3d.nl

Offline PKHG

  • Member
  • *
  • Berichten: 718
    • Bekijk profiel
« Reactie #5 Gepost op: 16 juni 2014, 17:41:19 pm »
sorry, zal slechts mark schrijven in de toekomst  ;) (onbekende iets met hoofdletters = schreeuwen, na ja kan ik makkelijk voorkomen)

Klikken op Afbeelding aan post toevoegen levert:




aldaar selecteer ik dan het betreffende plaatje en klik op upload ...


Doei
       Peter

Offline Mark aka Dark

  • *
  • Berichten: 782
    • Bekijk profiel
    • Mijn eigen site
« Reactie #6 Gepost op: 17 juni 2014, 09:19:59 am »
Beste Peter,

Lees mijn handleiding nog eens en leg dat dan naast je screenshot, als hint zal ik wat vet gedrukt maken:

Klik tijdens het opstellen van een post op "Afbeelding aan post toevoegen klikken"
Vervolgens selecteer je in het pop-up menu de gif je die wilt uploaden en zet je het formaat op"Laat de grootte ongewijzigd"
Klik dan op "Upload"

Succes!
MAD
MAD staat voor: Mark Aka Dark
Problemen met inloggen? Mail naar: info@dbc-3d.nl

Offline PKHG

  • Member
  • *
  • Berichten: 718
    • Bekijk profiel
« Reactie #7 Gepost op: 18 juni 2014, 07:51:59 am »
Heb net ontdekt, dat men een flink stuk van de 'mond' creatie beter met in x en y richting spiegelen kan uitvoeren ... misschien moet men later de mirror toepassen en de linker helft afknippen en weer alleen in x richting spiegelen ... we zullen zien ...

EDIT (19.6)
Plaatje verkleind NA voor gif te optimaliseren (GIMP) was dus NIET goed, eerst verkleinen en DAN optimaliseren laten voor gif ... maar ja, het meest belangrijke blijft zichtbaar ...



Na een wijziging in een externe editor de script gewoon overnieuw stapsgewijs uitvoeren ...
(Inmiddels kan men ook het aantal stappen, die meteen achter elkaar uitgevoerd moeten worden, via een button aanpassen, zeg altijd 2 of dan wijzigen op alle = groot getal ...)
Het begin plaatje is ontstaan door met het tijdelijke eindresultaat te experimenteren ...
« Laatst bewerkt op: 19 juni 2014, 09:00:14 am door PKHG »
Doei
       Peter

Offline IJp

  • *
  • Berichten: 4,385
    • Bekijk profiel
    • IJpart
« Reactie #8 Gepost op: 19 juni 2014, 09:16:13 am »
In het verleden heb ik me ooit verdiept in programmeren het verloor mijn interesse door de saaiheid ervan als ik heden ten dagen zie hoe visueel en programmeren tot elkaar is gekomen vind ik je stukjes mooi en lees ze terug zodra ik me hier in ga verdiepen, er is al zoveel visueel omgezet en dat leer ik eerst :)
Keep it up!

Sorry Peter dat ik er zo tussen spring maar ik heb deze tutorial gevonden en dit moet je gewoon uitproberen zo handig dat python en totaal niet saai.  ;)
https://www.youtube.com/watch?v=pJAp5B5H2Jo#t=737

Offline PKHG

  • Member
  • *
  • Berichten: 718
    • Bekijk profiel
« Reactie #9 Gepost op: 20 juni 2014, 19:53:14 pm »
Heb de film zonder toon bekeken, ... Morgen met ...

Hoe het script gemaakt werd zag ik niet, maar blijkbaar HEEL ERG  HANDIG ...

EDIT
MEEST belangrijk je moet het loop-tool-addon activeren! en dan krijg je zoiets:

import bpy
bpy.ops.mesh.extrude_region_move(MESH_OT_extrude_region={"mirror":False}, TRANSFORM_OT_translate={"value":(0, 0, 0), "constraint_axis":(False, False, True), "constraint_orientation":'NORMAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "remove_on_cancel":False, "release_confirm":False})
bpy.ops.transform.resize(value=(0.879117, 0.879117, 0.879117), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.mesh.looptools_circle(custom_radius=False, fit='best', flatten=True, influence=100, radius=1, regular=True)
bpy.ops.mesh.extrude_region_move(MESH_OT_extrude_region={"mirror":False}, TRANSFORM_OT_translate={"value":(0, 0, 0), "constraint_axis":(False, False, True), "constraint_orientation":'NORMAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "remove_on_cancel":False, "release_confirm":False})
bpy.ops.transform.resize(value=(0.872233, 0.872233, 0.872233), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.mesh.extrude_region_move(MESH_OT_extrude_region={"mirror":False}, TRANSFORM_OT_translate={"value":(0, 0, 0), "constraint_axis":(False, False, True), "constraint_orientation":'NORMAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "remove_on_cancel":False, "release_confirm":False})
bpy.ops.transform.translate(value=(0, 0, -0.0844766), constraint_axis=(False, False, True), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.mesh.delete(type='FACE')


Misschien moet men aan de parameters nog iets draaien .... voor .. het video gebruikt dan nog modifiers ...

gat in Cube gemaakt met het script boven ...


« Laatst bewerkt op: 21 juni 2014, 09:11:41 am door PKHG »
Doei
       Peter