8 Replies Latest reply on Feb 1, 2011 11:28 PM by Yelnats1

    Smarter smart objects

    whitequill Level 1

      I'd like to see more functionality of smart objects for instance, I have a smart object with several layers and each layer has a layer effect, when I put it in as a smart object all the layer effects don't do anything to the document its linked into.

      I'd like to see the layer effects in one document effect another, so if you use the, 'Place' function. You can place it on the top layer, and expect the layer effects to effect the layers in the current document.

        • 1. Re: Smarter smart objects
          Level 7

          The way Smart Objects work, and why they allow all the things they do, is because they are encapsulated and render down to a single layer with no interaction between the documents.  Allowing other interaction would make them too slow to be useful.

           

          Also, Layer Effects don't work that way -- they only affect the single layer they are applied to.  They will not affect other layers, and that is what makes their function possible without being too slow to be useful.

          1 person found this helpful
          • 2. Re: Smarter smart objects
            whitequill Level 1

            Thank you for your response. Is there a way to go about what I'm trying to do without having to make the logo image in each file by hand? I was hoping I could automate it. Is there another way to place logos on many files?

            • 3. Re: Smarter smart objects
              Level 7

              A simple logo?  Smart Objects can already do that.

               

              Layer styles applied outside the layer: nothing can do that.

              1 person found this helpful
              • 4. Re: Smarter smart objects
                whitequill Level 1

                sounds like me. Wanting to push limits.

                the logo is made of 4 layers.

                 

                I want to apply the effects on-top of a series of images.  I was thinking I could place it and have all the effects with in the file apply above the image.

                But as you said, its not doable.

                 

                Maybe its just that I'm new to Photoshop, which is also true. And you could simply direct me to an appropriate tutorial.

                • 5. Re: Smarter smart objects
                  Reynolds (Mark) Level 4

                  To me its hard to understand what you are asking exactly. There is most probably already a way to do what you need using some kind of workaround. Layer Styles for example can be Copied and Pasted very quickly between documents. And many of these type of things can be automated using Actions very easily.

                   

                  Layer Styles can be applied to a Smart object as if it were a flat layer.  As Chris says "because they are encapsulated and render down to a single layer with no interaction between the documents". This is the only limitation to what you are asking. Most probably some change in your way of working will provide the result and flexibility you are looking for.

                   

                  You may not be aware but Chris Cox who responded above is the Adobe engineer who put Smart Objects together in Photoshop.

                  • 6. Re: Smarter smart objects
                    whitequill Level 1

                    Most of my concern was around automating between documents.

                    Cause in automation is says, "select previous document" from the drag and drop, but I can't tell if it will "always" use logo.psd and copy the layers from that file to <destination.psd> selected file(s).

                     

                    and no I was not aware that Chris was the person that put Smart Objects together.

                    • 7. Re: Smarter smart objects
                      Reynolds (Mark) Level 4

                      But what you can do - you can open and close them directly from the disk within your Action: If you open your logo document and then Copy and Paste from it, you may be able to automate it this way.

                       

                      Most of my concern was around automating between documents. Cause in automation is says, "select previous document" from the drag and drop, but I can't tell if it will "always" use…

                       

                      Yes, you have identified one of the big gaps with Actions, and the way they are implemented in Photoshop at present. This kind of thing is possible only if you know how many documents you have open, and therefore exactly what "previous"and "next" are going to do. It is impossible to record activating documents by name, so you would need Scripting for this part. You are able to move GROUPS of layers from one document to another, but only if the name of the destination document is unchanged. Another major, and continually frustrating limitation with Actions. 

                      • 8. Re: Smarter smart objects
                        Yelnats1 Level 1

                        Heres a script that will open a document and copy its selected layers to the

                        original document.  Is that what you needed?

                        doc= new File( "C:/Users/Yelnats/Desktop/LOGO.psd" )   // Put logo image path here
                        
                        
                        docName=activeDocument.name
                        app.open(doc)
                        
                        
                        var idDplc = charIDToTypeID( "Dplc" );
                            var desc51 = new ActionDescriptor();
                            var idnull = charIDToTypeID( "null" );
                                var ref43 = new ActionReference();
                                var idLyr = charIDToTypeID( "Lyr " );
                                var idOrdn = charIDToTypeID( "Ordn" );
                                var idTrgt = charIDToTypeID( "Trgt" );
                                ref43.putEnumerated( idLyr, idOrdn, idTrgt );
                            desc51.putReference( idnull, ref43 );
                            var idT = charIDToTypeID( "T   " );
                                var ref44 = new ActionReference();
                                var idDcmn = charIDToTypeID( "Dcmn"  );
                                ref44.putName( idDcmn,docName);
                            desc51.putReference( idT, ref44 );
                            var idVrsn = charIDToTypeID( "Vrsn" );
                            desc51.putInteger( idVrsn, 2 );
                        executeAction( idDplc, desc51, DialogModes.NO );
                        
                        
                        activeDocument.close()