SkinningControl skinningControl = new SkinningControl(animData.armature);
SkinData skinData = new SkinData(); skinData.joints = joints; skinData.skinningControl = new SkinningControl(armature); skinData.animComposer = new AnimComposer(); addToCache("skins", index, skinData, nodes.size());
@Override public void visit(Spatial spatial) { SkeletonControl control = spatial.getControl(SkeletonControl.class); if (control != null) { Armature armature = skeletonArmatureMap.get(control.getSkeleton()); SkinningControl skinningControl = new SkinningControl(armature); Map<String, List<Spatial>> attachedSpatials = new HashMap<>(); for (int i = 0; i < control.getSkeleton().getBoneCount(); i++) { Bone b = control.getSkeleton().getBone(i); Node n = control.getAttachmentsNode(b.getName()); n.removeFromParent(); if (!n.getChildren().isEmpty()) { attachedSpatials.put(b.getName(), n.getChildren()); } } spatial.removeControl(control); spatial.addControl(skinningControl); for (String name : attachedSpatials.keySet()) { List<Spatial> spatials = attachedSpatials.get(name); for (Spatial child : spatials) { skinningControl.getAttachmentsNode(name).attachChild(child); } } } }
SkinningControl ac = new SkinningControl(armature); Node node = new Node("Test Armature");
SkinningControl ac = new SkinningControl(armature); ac.setHardwareSkinningPreferred(false); Node node = new Node("Test Armature");