Skip to main content
Participant
November 29, 2024
Answered

shuffle layer order

  • November 29, 2024
  • 2 replies
  • 2629 views

hey everyone i wanted to shuffle layers randomly in after effect. I have around 50 layers and wanted to just rendomly shuffle i need any kind if script or free tool that can help me to ease my work rather than doing manually

 

for example:

 

(before shuffle)

layer 1

layer 2

layer 3

layer 4

layer 5

layer 6

layer 7

layer 8

layer 9

layer 10

 

(after shuffle)

layer 4

layer 7

layer 5

layer 1

layer 9

layer 3

layer 8

layer 10

layer 2

layer 6

This topic has been closed for replies.
Correct answer Airweb_AE

Maybe your JSX file is not encoded in UTF-8,

otherwise try using QuickScript.

 

2 replies

nishu_kush
Legend
November 29, 2024

Appreciate your response, Dan.

Let us know if it helps, naaikk_786


Thanks,
Nishu

Participant
December 3, 2024

i have converted the code into ( JSX ) and run the script and im not able to use it 

Airweb_AECorrect answer
Legend
December 3, 2024

Maybe your JSX file is not encoded in UTF-8,

otherwise try using QuickScript.

 

Dan Ebberts
Community Expert
Community Expert
November 29, 2024

Here's a simple script that assumes all layers are participating:

function shuffleLayers(){
	function shuffleArray(theArray){
		var temp;
		var idx;
		for (var i = 0; i < theArray.length; i++){
			idx = i + Math.floor(generateRandomNumber()*(theArray.length-i));
			temp = theArray[i];
			theArray[i] = theArray[idx];
			theArray[idx] = temp;
		}
	}
	var myComp = app.project.activeItem;
	if (! (myComp && myComp instanceof CompItem)){
		alert ("No comp active.");
		return;
	}
	var myLayers = [];
	for (var i = 1; i <= myComp.numLayers; i++){
		myLayers.push(myComp.layer(i));
	}
	shuffleArray(myLayers);
	for (var i = 0; i < myLayers.length; i++){
		myLayers[i].moveToBeginning();
	}
}
shuffleLayers();