مرحبا بكم
اليوم نستعرض لكم كيفية عمل حركة رائعة في الأفتر افيكت بدون استخدام أى إضافات خارجية أو اسكربتات
الحركة عبارة عن صنع شكل معين قادر على التأثير على أى طبقة تمر من جانبه أو يمر من جانبها .. بحيث تستطيع التحكم أنت في مقدار تغير الحجم والمكان والشفافية والتدوير أو حتى اللون لكل عنصر
وهنا يمكنك مشاهدة الشرح بشكل مفصل أكثر
الأن إليك أسماء عناصر التحكم التي سيتم إضافتها إلى عنصر Effector ونوع كل عنصر على حدة
Effector Names:
ثم يمكنك ربط الطبقة مع عنصر تحكم ال Position من خلال هذا الأكسبريشن:
var p1 = thisLayer.transform.position;
var p2 = thisComp.layer("Effector").transform.position;
var RadiusStrength = thisComp.layer("Effector").effect("Radius Strength")(1);
var Radius = thisComp.layer("Effector").effect("Radius")(1);
var MoveX = thisComp.layer("Effector").effect("Position XYZ")(1)[0];
var MoveY = thisComp.layer("Effector").effect("Position XYZ")(1)[1];
var MoveZ = thisComp.layer("Effector").effect("Position XYZ")(1)[2];
var d = length(p1, p2);
var x = linear(d, Radius, RadiusStrength, MoveX, 0);
var y = linear(d, Radius, RadiusStrength, MoveY, 0);
var z = linear(d, Radius, RadiusStrength, MoveZ, 0);
var xPos = p1[0] + x;
var yPos = p1[1] + y;
var zPos = p1[2] + z;
[xPos, yPos, zPos];
ثم يمكنك ربط الطبقة مع عنصر تحكم ال Scale من خلال هذا الأكسبريشن:
var pos1 = thisLayer.transform.position;
var pos2 = thisComp.layer("Effector").transform.position;
var ValueFrom = transform.scale[0];
var ValueTo = thisComp.layer("Effector").effect("Scale To")(1);
var RadiusStrength = thisComp.layer("Effector").effect("Radius Strength")(1);
var Radius = thisComp.layer("Effector").effect("Radius")(1);
var d = length(pos1, pos2);
var finalValue = linear(d, Radius, RadiusStrength, ValueTo, ValueFrom);
[finalValue, finalValue, finalValue];
وكذلك ربط الطبقة مع عنصر تحكم ال X Rotation من خلال هذا الأكسبريشن
var p1 = thisLayer.transform.position;
var p2 = thisComp.layer("Effector").transform.position;
var ValueTo = thisComp.layer("Effector").effect("Rotation XYZ")(1)[0];
var ValueFrom = transform.xRotation;
var RadiusStrength = thisComp.layer("Effector").effect("Radius Strength")(1);
var Radius = thisComp.layer("Effector").effect("Radius")(1);
var d = length(p1, p2);
var t = linear(d, Radius, RadiusStrength, 0, 1);
var r = linear(t, 0, 1, ValueFrom + ValueTo, ValueFrom);
r;
أو ربط الطبقة مع عنصر تحكم ال Y Rotation من خلال هذا الأكسبريشن
var p1 = thisLayer.transform.position;
var p2 = thisComp.layer("Effector").transform.position;
var ValueTo = thisComp.layer("Effector").effect("Rotation XYZ")(1)[1];
var ValueFrom = transform.yRotation;
var RadiusStrength = thisComp.layer("Effector").effect("Radius Strength")(1);
var Radius = thisComp.layer("Effector").effect("Radius")(1);
var d = length(p1, p2);
var t = linear(d, Radius, RadiusStrength, 0, 1);
var r = linear(t, 0, 1, ValueFrom + ValueTo, ValueFrom);
r;
وربط الطبقة مع عنصر تحكم ال Z Rotation من خلال هذا الأكسبريشن
var p1 = thisLayer.transform.position;
var p2 = thisComp.layer("Effector").transform.position;
var ValueTo = thisComp.layer("Effector").effect("Rotation XYZ")(1)[2];
var ValueFrom = transform.zRotation;
var RadiusStrength = thisComp.layer("Effector").effect("Radius Strength")(1);
var Radius = thisComp.layer("Effector").effect("Radius")(1);
var d = length(p1, p2);
var t = linear(d, Radius, RadiusStrength, 0, 1);
var r = linear(t, 0, 1, ValueFrom + ValueTo, ValueFrom);
r;
ربط الطبقة مع عنصر تحكم ال Opacity من خلال هذا الأكسبريشن
var pos1 = thisLayer.transform.position;
var pos2 = thisComp.layer("Effector").transform.position;
var ValueFrom = transform.opacity;
var ValueTo = thisComp.layer("Effector").effect("Opacity To")(1);
var RadiusStrength = thisComp.layer("Effector").effect("Radius Strength")(1);
var Radius = thisComp.layer("Effector").effect("Radius")(1);
var d = length(pos1, pos2);
var finalValue = linear(d, Radius, RadiusStrength, ValueTo, ValueFrom);
[finalValue];
وكذلك ربط الطبقة مع عنصر تحكم ال Color من خلال هذا الأكسبريشن
var p1 = thisLayer.transform.position;
var p2 = thisComp.layer("Effector").transform.position;
var ColorFrom = thisComp.layer("Effector").effect("Color From")(1);
var ColorTo = thisComp.layer("Effector").effect("Color To")(1);
var RadiusStrength = thisComp.layer("Effector").effect("Radius Strength")(1);
var Radius = thisComp.layer("Effector").effect("Radius")(1);
var d = length(p1, p2);
var t = linear(d, Radius, RadiusStrength, 0, 1);
var r = linear(t, 0, 1, ColorTo[0], ColorFrom[0]);
var g = linear(t, 0, 1, ColorTo[1], ColorFrom[1]);
var b = linear(t, 0, 1, ColorTo[2], ColorFrom[2]);
[r, g, b, 1];
أو يمكنك تحميل ملف الإكسبريشن كامل من هنا
نرجو أن نكون قد أفدناكم