I succeeded by manually capturing the avatar skins, and noticing there’s two versions of Unity’s get component; one is plural and captures arrays.
public void SetPlayer()
{
// load the medium res avatar, then transfer mesh to Game Creator armature
Debug.Log("avatar URL is " + rpmURL);
if (rpmURL.Length > 0)
{
AvatarObjectLoader loader = new AvatarObjectLoader();
loader.LoadAvatar(rpmURL);
loader.AvatarConfig = config;
loader.OnCompleted += (sender, args) =>
{
lqAvatar = args.Avatar;
if (lqAvatar != null)
{
SkinnedMeshRenderer[] newSkins = gameObject.GetComponentsInChildren<SkinnedMeshRenderer>();
Animator animator = gameObject.GetComponent<Animator>();
AvatarMeshHelper.TransferMesh(lqAvatar, newSkins, animator);
DestroyAvatars();
}
};
}
}