Announcement

Collapse
No announcement yet.

Dungeon Architect

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Originally posted by James Barnette View Post
    Well To My knowledge you can use baked lighting to to the fact that the geometry is being moved
    Did you mean to write can not ?

    If I bake lighting, then move geometry, I will get lighting needs to be build warning in red letters when running the game and the geometry will be black.

    Comment


      Originally posted by motorsep View Post
      Did you mean to write can not ?

      If I bake lighting, then move geometry, I will get lighting needs to be build warning in red letters when running the game and the geometry will be black.
      Yeah sorry meant CAN'T use baked lighting.
      James Brad Barnette
      Senior Creative Artist
      3Dmotif LLC

      Comment


        Originally posted by James Barnette View Post
        in English please? lol
        (Hierarchical) Instanced Static Mesh Components

        Comment


          Originally posted by James Barnette View Post
          Can we get a full list of engine features that wont work with the snap builder. as best I can tell The Anything using the painting systems doesn't work. I'm not sure what the reason is for this but using the vegetation pain for scattering object on a surface doesn't work as well as it seems that Vertex painting for blending textures on an object also gets lost when building the dungeon.

          So it would be nice to know the full list of things that are not going to work so that we dont waste time doing only to have them thrown out when he dungeon builds.
          James, Foliage support is in the todo list. The snap builder is still a wip and I'll create a roadmap for it soon.

          As for the save issue, I worked on the test level you sent yesterday and sorted most of the issue but I need to properly do this by using world composition. For some reason, the UWorld::Spawn function still references the child actors in the external module map, and doesn't allow saving.

          Edit: Foliage, vertex paint, baked light and other engine features should work when I stream the level in using world composition, rather than cloning and spawning it myself (which doesn't seem to clone it properly)
          Last edited by Ali Akbar; 09-23-2016, 08:29 AM.
          Dungeon Architect | Prefabricator

          Discord Support

          Comment


            Originally posted by Ali Akbar View Post
            Edit: Foliage, vertex paint, baked light and other engine features should work when I stream the level in using world composition, rather than cloning and spawning it myself (which doesn't seem to clone it properly)
            Could you please make a short video explaining how to set it all up to work properly ? Thanks

            Comment


              [MENTION=1680]motorsep[/MENTION] I'm not at my office today. I'll have one by tomorrow
              Dungeon Architect | Prefabricator

              Discord Support

              Comment


                Originally posted by Ali Akbar View Post
                [MENTION=1680]motorsep[/MENTION] I'm not at my office today. I'll have one by tomorrow
                No rush, thanks

                Btw, have you tried using LPV (Light Propagation Volumes) with DA ?

                Comment


                  Hello Ali,

                  I can now spawn, modify and delete DA dungeons at will in my game during runtime (and it's super fun^^).

                  However, when trying my game in client-server configuration it seems that things work only on the server.

                  I tried the very code you gave in a server function and the dungeon is spawned only on the server, it doesn't appear on the clients.
                  I tried to have it replicate with Dungeon->SetReplicates(true) but with no success.

                  I'm afraid the replication has to be set on every UInstancedStaticMeshComponents (at least it's what i do on my self made dungeons).

                  So is there a way to access all the instanced meshes in a ADungeon so i can make them replicate ?

                  If possible, i would also like to set them other properties like being clickable, etc.
                  As an example, here is how i treat my own UInstancedStaticMeshComponent (this is from the constructor of my own dungeon class):
                  Code:
                  Mesh0Component = ObjectInitializer.CreateDefaultSubobject<UInstancedStaticMeshComponent>(this, TEXT("mesh 0 component"));
                  Mesh0Component->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepRelativeTransform);
                  Mesh0Component->SetNetAddressable();
                  Mesh0Component->SetIsReplicated(true);
                  Mesh0Component->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
                  Mesh0Component->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Block);
                  Mesh0Component->SetCollisionObjectType(ECollisionChannel::ECC_WorldDynamic);
                  Mesh0Component->OnClicked.AddDynamic(this, &AYagActor::YagActorClicked);
                  Mesh0Component->OnReleased.AddDynamic(this, &AYagActor::YagActorReleased);
                  My intellisense doesn't want to work with the DA plugin so i am kind of blind here and it's quite a pain to parse every DA header file when looking for something.

                  Is there a way to do similar things on the DA dungeons meshes ?

                  If not, is there some simpler way to replicate the dungeons ?

                  Thanks !
                  Cedric

                  Comment


                    Hi Ali,

                    Firstly I wanted to say how amazing the work you're doing is. Truly exceptional.

                    Secondly, I'd very much be interested in purchasing your work for one of my projects but first I wanted to ask if you had considered adding functionality so you could create prefab rooms that would be used in dungeon generation.

                    It's very important for me to be able to build very specific rooms and have them show up in the generation.

                    Many thanks.

                    Comment


                      Originally posted by RedSaturnSix View Post
                      Hi Ali,

                      Firstly I wanted to say how amazing the work you're doing is. Truly exceptional.

                      Secondly, I'd very much be interested in purchasing your work for one of my projects but first I wanted to ask if you had considered adding functionality so you could create prefab rooms that would be used in dungeon generation.

                      It's very important for me to be able to build very specific rooms and have them show up in the generation.

                      Many thanks.
                      I`m doing that now actually. All you do is build the Rooms with the Build Volume, have it connected too the Generator. Then Have it Spawn all the Rooms in your Array which you save, and then run the Generator via Blueprints to reseed, and generate your roooms stay the same, but everything connects too it.

                      Comment


                        Sounds awesome. Could you run me through the process in a bit more detail if you have the time?

                        Comment


                          what you are refering to is the snap builder and it is already in there. you basically build you rooms as levels then insert the snap door nodes and a Snap info node and set the parameters a then in the main level you set what levels you want to use and then it builds them on in an array.
                          Last edited by calmasacow; 09-23-2016, 08:33 PM.
                          James Brad Barnette
                          Senior Creative Artist
                          3Dmotif LLC

                          Comment


                            Originally posted by uced View Post
                            Hello Ali,

                            I can now spawn, modify and delete DA dungeons at will in my game during runtime (and it's super fun^^).

                            However, when trying my game in client-server configuration it seems that things work only on the server.

                            I tried the very code you gave in a server function and the dungeon is spawned only on the server, it doesn't appear on the clients.
                            I tried to have it replicate with Dungeon->SetReplicates(true) but with no success.

                            I'm afraid the replication has to be set on every UInstancedStaticMeshComponents (at least it's what i do on my self made dungeons).

                            So is there a way to access all the instanced meshes in a ADungeon so i can make them replicate ?

                            If possible, i would also like to set them other properties like being clickable, etc.
                            As an example, here is how i treat my own UInstancedStaticMeshComponent (this is from the constructor of my own dungeon class):
                            Code:
                            Mesh0Component = ObjectInitializer.CreateDefaultSubobject<UInstancedStaticMeshComponent>(this, TEXT("mesh 0 component"));
                            Mesh0Component->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepRelativeTransform);
                            Mesh0Component->SetNetAddressable();
                            Mesh0Component->SetIsReplicated(true);
                            Mesh0Component->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
                            Mesh0Component->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Block);
                            Mesh0Component->SetCollisionObjectType(ECollisionChannel::ECC_WorldDynamic);
                            Mesh0Component->OnClicked.AddDynamic(this, &AYagActor::YagActorClicked);
                            Mesh0Component->OnReleased.AddDynamic(this, &AYagActor::YagActorReleased);
                            My intellisense doesn't want to work with the DA plugin so i am kind of blind here and it's quite a pain to parse every DA header file when looking for something.

                            Is there a way to do similar things on the DA dungeons meshes ?

                            If not, is there some simpler way to replicate the dungeons ?

                            Thanks !
                            Cedric
                            All right just a quick update to spare you any work or answer.

                            After a good night sleep i found a solution !

                            The trick is to assign all the dungeon attributes (theme, gridconfig...) on each client (not only on server).

                            So my DA Actor is replicated but all the cooking happens also on the clients.

                            I did this using an OnRep function.

                            I'll continue my testing and will post a full working howto with code when it's mature enough.

                            Cheers !
                            Cedric

                            Comment


                              Originally posted by uced View Post
                              Hello Ali,

                              I can now spawn, modify and delete DA dungeons at will in my game during runtime (and it's super fun^^).

                              However, when trying my game in client-server configuration it seems that things work only on the server.

                              I tried the very code you gave in a server function and the dungeon is spawned only on the server, it doesn't appear on the clients.
                              I tried to have it replicate with Dungeon->SetReplicates(true) but with no success.

                              I'm afraid the replication has to be set on every UInstancedStaticMeshComponents (at least it's what i do on my self made dungeons).

                              So is there a way to access all the instanced meshes in a ADungeon so i can make them replicate ?

                              If possible, i would also like to set them other properties like being clickable, etc.
                              As an example, here is how i treat my own UInstancedStaticMeshComponent (this is from the constructor of my own dungeon class):
                              Code:
                              Mesh0Component = ObjectInitializer.CreateDefaultSubobject<UInstancedStaticMeshComponent>(this, TEXT("mesh 0 component"));
                              Mesh0Component->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepRelativeTransform);
                              Mesh0Component->SetNetAddressable();
                              Mesh0Component->SetIsReplicated(true);
                              Mesh0Component->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
                              Mesh0Component->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Block);
                              Mesh0Component->SetCollisionObjectType(ECollisionChannel::ECC_WorldDynamic);
                              Mesh0Component->OnClicked.AddDynamic(this, &AYagActor::YagActorClicked);
                              Mesh0Component->OnReleased.AddDynamic(this, &AYagActor::YagActorReleased);
                              My intellisense doesn't want to work with the DA plugin so i am kind of blind here and it's quite a pain to parse every DA header file when looking for something.

                              Is there a way to do similar things on the DA dungeons meshes ?

                              If not, is there some simpler way to replicate the dungeons ?

                              Thanks !
                              Cedric
                              Cedric, All dungeon spawned actors have a tag starting with "Dungeon-"



                              So you can grab your ISMs by iterating over all the actors in the world and checking if the Actor::Tags has your dungeon tag
                              Code:
                                      const FName DungeonTag = UDungeonModelHelper::GetDungeonIdTag(Dungeon);
                              	for (TActorIterator<AActor*> ActorItr(GetWorld()); ActorItr; ++ActorItr) {
                              		AActor* Actor = *ActorItr;
                              		if (Actor->Tags.Contains(DungeonTag)) {
                              			// This actor was spawned by the above dungeon actor
                              		}
                              	}
                              As for intellisense, I'll have a look. Are you using using Visual Assist X with Visual C++? If not, you should
                              Dungeon Architect | Prefabricator

                              Discord Support

                              Comment


                                Originally posted by RedSaturnSix View Post
                                Hi Ali,

                                Firstly I wanted to say how amazing the work you're doing is. Truly exceptional.

                                Secondly, I'd very much be interested in purchasing your work for one of my projects but first I wanted to ask if you had considered adding functionality so you could create prefab rooms that would be used in dungeon generation.

                                It's very important for me to be able to build very specific rooms and have them show up in the generation.

                                Many thanks.
                                [MENTION=18451]RedSaturnSix[/MENTION] Thank you! Like others have pointed out, this can be done with the snap builder. However it is still a work in progress and will take a little more while to finalize. I'll update the status in the forums here
                                Dungeon Architect | Prefabricator

                                Discord Support

                                Comment

                                Working...
                                X