Linking objects / Make Proxy, moving and so on..how? [solved]

Hi,
i played with linking objects between blends, but whatever i did i couldn´t get the objects
to be in a movable state when starting the GE.
Tried proxy-ing, parenting and some other things.
The object to be linked is composed of 3 rotating objects parented to an empty, all in the same group.
When linked in another blend, make proxy selected, i chose the parent-empty, which then kind of gets excluded from the linked group, and …nothing more.
How would i make the whole hierarchy movable without proxy-ing every object and reparenting?
(is that possible?)

Hi. Add your objects to a group (green edges). Then link the group not the empty to your file. Then you can add the group to your file (Add–>Group–>groupe name). Look the Yo Frankie video http://www.yofrankie.org/tutorial-library-linking/.

HG1

Do you mean that, when you add logic to the group pivot the remaining objects of the group do not follow in the BGE?

This is simply because the pivot object is just a placeholder (usually an empty) to provide the position/orientation/scale where the group is added. After that it has nothing to do with the group anymore.

I already have a library to deal with this issue. See here:
LinkLib

Here are two threads to see it in action:
FreeViewerControl
MouseOrbiter

Hi. Maybe I understand something wrong, but if you add logic on the group pivot the remaining objects of the group follows in the BGE. I don’t need any script. I made a quick setup. Download both files and start the Linked.blend.
Linked.blend (127 KB) Main.blend (128 KB)

HG1

HG1, your group is not linked.

I think you want to link the group “Group” from the main.blend. The cube in main.blend does not matter as it is not part of the group.

When you link this group to Linked.blend only the group with its objects is linked - not the cube.
(BTW. you forgot to switch to relative paths before distributing the linking file)

You could have a cube in linking.blend. Now try to parent this cube to any object of the group. You will see this is not possible, because the objects from the cube are not even selectable. Only the pivot (“Group”) is selectable, but this is not parented to any group object nor the group objects are parented to the pivot.

OK. I misunderstood heijulien. I don’t know that heijulien want to parent a object to the linked group.
For the peoples that only want to link groups I have uploaded the files now with relative paths.

HG1

when i link a group and add it, i can move it with the mouse(i know it´s just the reference, but why cant -that- also be ingame), that´s what i want to be able to do in Game mode, nothing more, i dont need to edit mesh data, hierarchy, ipo… just position and maybe rotation.
something like
Emtpy -> Cube, Cube, Cube where Empty is parent. I want to be able to move the Empty and the rest should stay as it is, but follow.

Sometimes it worked when proxy-ing every object in the hierarchy, but at other times, when proxy-ing, the objects snap to the origin and need to be repositioned…thats not exactly what i want.

That is what I said. You need to dynamically parent the group objects to the pivot object.
The above thread tells you how to do that.

Maybe I’m missing something. When I use external blends in my game (linking to them, not appending), they can’t be moved, rotated, or scaled at first (which, I think, is correct). I just press Ctrl L and click Make Object local - then I can change object properties as usual, but the mesh and materials (which can’t be edited) are back with the original blend file, available for editing (and the mesh or material data will update if I change the object in the original blend file). Is that a wrong technique?

I found a simple solution, that works perfect, just as i want.
So if someone has the same problem:

just create a script:


import GameLogic as gl
mycontrolobject = "OBgroupcontrol"
gl.getCurrentController().owner.position = gl.getCurrentScene().objects[mycontrolobject].position
gl.getCurrentController().owner.orientation = gl.getCurrentScene().objects[mycontrolobject].orientation

make all group objects children of an empty (put that empty in the group too) and attach the script to that empty.
in your new scene create an object and name it like the value of mycontrolobject (without “OB”).
Parent that object to your linked group, and now you can attach logic bricks with movement or whatever to that object.

I would mark this thread as solved, but i dont know how to do that so…

Solved!

That is what LinkLib does, but it is (in my eyes) a more elegant way. Especially it can deal with multiple group instances and various different groups and you do not even need to modify the py-source.

The above script is limited to exactly one groupinstance and the object needs to have the name in the script.

Moderation:
To mark it solved, edit your first post and append [solved]. I do not know if you have a solved-button with the new forum engine.