Excellent script, thanks! I was not seeing the object level perms for users tied to database roles I had created, so I simply added another OR statement to the where clause to get what I was looking for:
SELECT DISTINCT Principal_Name,Login_Name, DatabaseName, ObjectName, ObjectType, PermissionName, state_desc, Grantor
FROM @ObjectPermissions op
WHERE ISNULL(Login_Name, '') like @loginName
OR ISNULL(Principal_Name, '') like @loginName
OR ISNULL(Principal_Name, '') in (SELECT DISTINCT DB_RoleMember
FROM @DBRolePermissions dbrp
WHERE (ISNULL(Login_Name, '') LIKE @loginName
OR ISNULL(Principal_Name, '') LIKE @loginName)
AND dbrp.DatabaseName = op.DatabaseName
AND Permission_Type = 'DATABASE_ROLE')
ORDER BY DatabaseName, Principal_Name, ObjectName, PermissionName