Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonioya <blendergit@gmail.com>2019-03-19 18:03:50 +0300
committerAntonioya <blendergit@gmail.com>2019-03-19 18:04:03 +0300
commit08fe29e52f161398682570eff45d8de391b73df8 (patch)
treed1e06a477e6a314fcd81de9506c250d3f11520b9
parent85685c7bdc6f1111a82edb69ea33ca7d240be28c (diff)
Fix T62715: Grease Pencil Apply Armature Modifier Issue
@sergey wrote: "The reason it was failing is because md points to an original armature, which doesn't have runtime data needed for deformation. That data is to come from evaluated armature." Thanks to @sergey for his help.
-rw-r--r--source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
index 11e648e355d..f2e387c0374 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c
@@ -119,9 +119,11 @@ static void bakeModifier(
Main *bmain, Depsgraph *depsgraph,
GpencilModifierData *md, Object *ob)
{
- ArmatureGpencilModifierData *mmd = (ArmatureGpencilModifierData *)md;
Scene *scene = DEG_get_evaluated_scene(depsgraph);
- bGPdata *gpd = ob->data;
+ Object *object_eval = DEG_get_evaluated_object(depsgraph, ob);
+ ArmatureGpencilModifierData *mmd = (ArmatureGpencilModifierData *)md;
+ GpencilModifierData *md_eval = BKE_gpencil_modifiers_findByName(object_eval, md->name);
+ bGPdata *gpd = (bGPdata *)ob->data;
int oldframe = (int)DEG_get_ctime(depsgraph);
if (mmd->object == NULL)
@@ -137,7 +139,7 @@ static void bakeModifier(
/* compute armature effects on this frame */
for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) {
- deformStroke(md, depsgraph, ob, gpl, gps);
+ deformStroke(md_eval, depsgraph, object_eval, gpl, gps);
}
}
}