Demo Reel

Addison Ye



2019

Picture of rig in action

UE5 Default Mannequin Rig
Designed to not touch the existing hierarchy of the Unreal Engine skeleton for maximum compatibility and ease of export. Features parent space swapping for the head and all the limbs (both fk and ik). There are controls for every possible joint, even the ones that don't affect anything on the default actor.

[2023.06.03] V1.0: Initial Release (47.5MB)
(46MB are due to the included UE5 Mannequin mesh)


Extra Tools

import maya.cmds as cmds

"""Combines multiple curves/shapes together."""

sl_curves = cmds.ls(sl=True)
final_curve = sl_curves.pop(-1)

for cur in sl_curves:
    cmds.parent(cmds.listRelatives(cur, s=True), final_curve, s=True, r=True)
    cmds.delete(cur)
    cmds.select(final_curve)

import maya.cmds as cmdsdef prefixStrip(obj_list):
    """Removes the first set of characters before an underscore"""
    out_list = []
    for obj in obj_list:
        split_list = obj.split('_')
        split_list.pop(0)
        out_list.append('_'.join(split_list))
        return out_list
def assignControl(group_prefix, control_prefix, joint_prefix):
    """Applies a control curve with an empty group to every joint selected
    First select the control curve, then select as many joints as desired
    afterwards. Original control curve is kept.
    """
    select_ls = cmds.ls(selection=True)
    ctrl_obj = select_ls.pop(0)
    if joint_prefix:
        select_ls = prefixStrip(select_ls)
        joint_prefix += '_'
    else:
        joint_prefix = ''
    if not group_prefix:
        group_prefix = 'egrp'
    if not control_prefix:
        control_prefix = 'ctrl'
    for current_obj in select_ls:
        current_grp = cmds.group(empty=True,
            name='_'.join([group_prefix, current_obj]))
        cmds.select(joint_prefix+current_obj, add=True)
        cmds.matchTransform(cmds.ls(selection=True))
        current_ctrl = cmds.duplicate(ctrl_obj,
            name='_'.join([control_prefix, current_obj]))[0]
        cmds.matchTransform([current_ctrl, current_grp])
        cmds.parent(current_ctrl, current_grp)
        cmds.makeIdentity(apply=True, pn=True)
        cmds.parentConstraint(current_ctrl, joint_prefix+current_obj)
assignControl(group_prefix='egrp', control_prefix='ctrl', joint_prefix='')

Addison Ye


Work Experience


Freelance 3D Animator (2021, 2022, 2023)

  • Used both Blender and Maya

  • Created first person animations to be used in game engines for an indie First-Person Shooter game.

  • Collaborated with client to ensure each animation created were in line with the overall style of the game.

  • Continually revised multiple animations to ensure everything created was at a similar quality level and were consistent with each other.

  • Rigged arms and hard surface objects when needed.


Skills and Software Proficiency


  • 3D Animation

  • Hard Surface Modeling

  • Rigging

  • Scripting (Python/Java)

  • Unreal Engine 5 Animation Blueprints

  • Lighting

  • Video Editing

  • Image Editing

  • Texturing

Contact

LinkedIn
linkedin.com/in/addison-ye
Email
thorints@outlook.com
Phone
778-712-5142
YouTube
konol