Col={Purple,Green,Gray,Red};
ColX={Purple,Green,Gray,Orange};
ColY={Purple,Blue,Gray,Red};
ColXY={Purple,Blue,Gray,Orange};
ColZ={Purple,Green,Yellow,Red};
ColXZ={Purple,Green,Yellow,Orange};
ColYZ={Purple,Blue,Yellow,Red};
ColXYZ={Purple,Blue,Yellow,Orange};
ColW={Magenta,Green,Gray,Red};
ColXW={Magenta,Green,Gray,Orange};
ColYW={Magenta,Blue,Gray,Red};
ColXYW={Magenta,Blue,Gray,Orange};
ColZW={Magenta,Green,Yellow,Red};
ColXZW={Magenta,Green,Yellow,Orange};
ColYZW={Magenta,Blue,Yellow,Red};
ColXYZW={Magenta,Blue,Yellow,Orange};
Manipulate[Module[{angle,distance1,distance2,distance3,distance4},(*Segment 1:0–0.5=translation only*)(*Segment 2:0.5–1=angle& final translation*)angle=If[master<=0.5,0,Rescale[master,{0.5,1},{0,0.66666}]];
distance1=If[master<=0.5,Rescale[master,{0,0.5},{0,-2.8}],Rescale[master,{0.5,1},{-2.8,-2.195}]];
distance2=If[master<=0.5,Rescale[master,{0,0.5},{0,9}],Rescale[master,{0.5,1},{9,8.36}]];
distance3=If[master<=0.5,Rescale[master,{0,0.5},{0,-2.74}],Rescale[master,{0.5,1},{-2.74,-2.185}]];
distance4=If[master<=0.5,Rescale[master,{0,0.5},{0,-3.42}],Rescale[master,{0.5,1},{-3.42,-4}]];
Graphics3D[{makeCubes[colorMap[ColX],TranslationTransform[{distance1,0,0}],reflectX,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColY],TranslationTransform[{distance2,0,0}],reflectY,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColXY],TranslationTransform[{distance1,0,0}],reflectY,reflectX,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColZ],TranslationTransform[{distance2,0,0}],reflectZ,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColXZ],TranslationTransform[{distance1,0,0}],reflectZ,reflectX,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColYZ],TranslationTransform[{distance2,0,0}],reflectZ,reflectY,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColXYZ],TranslationTransform[{distance1,0,0}],reflectZ,reflectY,reflectX,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColW],TranslationTransform[{distance3,0,0}],mirrorX4,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColXW],TranslationTransform[{distance4,0,0}],mirrorX4,reflectX,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColYW],TranslationTransform[{distance3,0,0}],mirrorX4,reflectY,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColXYW],TranslationTransform[{distance4,0,0}],mirrorX4,reflectY,reflectX,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColZW],TranslationTransform[{distance3,0,0}],mirrorX4,reflectZ,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColXZW],TranslationTransform[{distance4,0,0}],mirrorX4,reflectZ,reflectX,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColYZW],TranslationTransform[{distance3,0,0}],mirrorX4,reflectZ,reflectY,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[ColXYZW],TranslationTransform[{distance4,0,0}],mirrorX4,reflectZ,reflectY,reflectX,RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]],makeCubes[colorMap[Col],TranslationTransform[{distance2,0,0}],RotationTransform[angle,{0,1,-1},{0.3,0.3,0.3}]]},Lighting->"Neutral",Boxed->False,Axes->False,PlotRange->{{-1.5,11},{-1.5,4.5},{-1.5,4.5}},ViewPoint->{10,-25,6},ImageSize->700]],{{master,0,"Master Animation"},0,1,Appearance->"Labeled"},ControlPlacement->Bottom]