Page 1 of 2

Vanishing Actor/PPOs

Posted: Mon Oct 27, 2014 5:51 pm
by John Adams
We have a major glitch somewhere, and it wasn't there before the recent Unreal changes (last Aug?) which fixed a lot of stuff for housing. Unfortunately, the result is that anything >inside< something else goes invisible. See my comment in this post when I first noticed it from a player's report.

Example, as I approach this house, I see a glowing light coming from inside:

[attachment=2]ScreenShot_00172.JPG[/attachment]


I step into the doorway, the light disappears
[attachment=1]ScreenShot_00173.JPG[/attachment]


I am moving around the house, clearly tripping over items placed around the floor but cannot see them until I get as close to a wall as I can and spin around.
[attachment=0]ScreenShot_00174.JPG[/attachment]

The graphics anomalies in VG client (where you can poke your head through a solid wall sometimes) actually makes the items visible. This is a very well decorated house in Razad at -87222 -66197 1005


In a pile of things that are probably really critical for Content Development, this is right up there with commands and not crashing the world I'd like us all to put our headds together and see if we can't figure out why this is happening - including going back to the pre-Unreal fixes (by Xen, I think) and comparing what's changed.

I believe Xen's work (or was it Lokked?) made it so houses themselves actually appeared. Remember before, it was just the stuff floating in mid-air.

Re: Vanishing Actor/PPOs

Posted: Mon Oct 27, 2014 8:21 pm
by Lokked
When your camera is inside the space of decoration PPO (a cabinet), all the decoration PPOs display, but the house itself disappears. If your camera isn't resting inside a Decoration PPO, the Decoration PPOs disappear and the house displays.

If this issue was occurring on an unfinished Client, I'd say the 3D Engine is calculating occlusion all wrong. BUT, I'm guessing we're sending PPO data in a way the client doesn't understand. When I stand in the house and run a macro with

Code: Select all

GETALL PlayerPlacedObject Name
it will return 105 PPOs, which seems reasonable, so they are all recognized by the client. They just aren't displaying properly.

Re: Vanishing Actor/PPOs

Posted: Mon Oct 27, 2014 9:54 pm
by Lokked
Progress:

For the house you are looking at, this is the _placement record for the actual building:

Code: Select all

spawn_location_placement.location_id = 256223
spawn.spawn_id = 730061
If you remove the _placement record, temporarily, and restart the server (currently on New Telon, only NPCs are reloadable :/. Will change this to include PPOs), the house will be gone and the OBJECTS INSIDE will appear. I capitalized "Objects Inside" because I think that has something to do with it. The 3D engine isn't displaying the PPOs while you are standing in the house because the objects aren't recognized as being a part of the house. When you pan your camera so it's resting inside or overtop a PPO (like a cabinet or the dining table), it is now in a "Furniture's space", where it will see other furniture, but not the house.

More Progress:
Here are a few items that I would think are either a house or belong outside (signs):

Code: Select all

=============== START 0x01 PACKET ===============
-- Server Spawn & Movement -- | 7/31/2014 04:33:35 | 69.174.203.16 -> 192.168.1.5
RAW HEX:
0000:	01 00 4A 00 00 00 6E 00 8B 43 00 C8 42 80 78 9E ..J...n..C..B.x.
0010:	8B D1 E9 C9 A2 29 A8 3A 45 2A 2C E6 0B 2A E6 6B .....).:E*,..*.k
0020:	28 E6 2B 89 68 2E ED CC 6D EE 6B 2E ED CC 0D 06 (.+.h...m.k.....
0030:	86 E6 CB EC 4D 6E 2A 8C AD 0C 26 E6 CB AE 4C 2E ....Mn*...&...L.
0040:	06 40 6F 23 00 00 C8 03 00 00 00 6E B4 88 5A 80 .@o#.......n..Z.
BITSTREAM DATA:
********* NEW BITSTREAM SECTION *********
SECTION TYPE: BUNCH | Total Bistream Length: 591 | PacketID: 110 | isControl: True | isOpen: True | isClose: False | isReliable: True
Channel Index: 56 | Channel Sequence: 1 | Channel Type: 2 | Data Length: 534 | Header Pos: 57
ACTOR CHANNEL | ACTOR TYPE: PlayerPlacedObject
LOCATION = (-26439, 7837, 6700)
ROTATION = (0, 40960, 0)
PREFAB_NAME_TAG = Ra1_P1_C1_IDsigns_sign004_forSale01_ver1
BUILDING_UNIQUE_ID = 1133
BUILDING_TYPE = 1
OBJECT_UNIQUE_ID = 11866472
=============== END 0x01 PACKET ===============

=============== START 0x01 PACKET ===============
-- Server Spawn & Movement -- | 7/31/2014 04:33:35 | 69.174.203.16 -> 192.168.1.5
RAW HEX:
0000:	01 00 43 00 00 00 6D 00 9B 43 00 C8 3B 80 78 9E ..C...m..C..;.x.
0010:	B1 D1 0F CA A2 29 A8 5A 44 2A 0C 07 06 26 E6 6B .....).ZD*...&.k
0020:	2A ED CC 6D EE 8B CD 8E 0D 06 26 E6 6B E8 4D CE *..m......&.k.M.
0030:	AD 4C 6E 8E EE CD AD 0C 26 06 40 77 23 00 00 C8 .Ln.....&.@w#...
0040	03 00 00 00 EE 30 71 3F 8B                      .....0q?.
BITSTREAM DATA:
********* NEW BITSTREAM SECTION *********
SECTION TYPE: BUNCH | Total Bistream Length: 535 | PacketID: 109 | isControl: True | isOpen: True | isClose: False | isReliable: True
Channel Index: 57 | Channel Sequence: 1 | Channel Type: 2 | Data Length: 478 | Header Pos: 57
ACTOR CHANNEL | ACTOR TYPE: PlayerPlacedObject
LOCATION = (-25831, 8445, 6700)
ROTATION = (0, 40960, 0)
PREFAB_NAME_TAG = Ra8001_Signs_lvl001_Cornerstone01
BUILDING_UNIQUE_ID = 1136
BUILDING_TYPE = 1
OBJECT_UNIQUE_ID = 4156029986
=============== END 0x01 PACKET ===============

=============== START 0x01 PACKET ===============
-- Server Spawn & Movement -- | 7/31/2014 04:33:35 | 69.174.203.16 -> 192.168.1.5
RAW HEX:
0000:	01 00 5B 00 00 00 67 00 FB 43 00 28 53 80 78 5F ..[...g..C.(S.x_
0010:	28 93 F4 88 C1 44 E9 D5 39 52 61 36 30 30 31 5F (....D..9Ra6001_
0020:	50 31 5F 43 31 5F 47 72 69 64 5F 50 48 63 69 74 P1_C1_Grid_PHcit
0030:	79 30 31 5F 48 6F 6D 65 53 68 6F 70 30 30 32 72 y01_HomeShop002r
0040:	6F 6F 74 30 30 31 5F 6C 76 6C 31 30 5F 76 65 72 oot001_lvl10_ver
0050:	31 00 FA 1E 01 00 40 2E 00 00 00 70 17 88 D0 21 1.....@....p...!
0060	07                                              .
BITSTREAM DATA:
********* NEW BITSTREAM SECTION *********
SECTION TYPE: BUNCH | Total Bistream Length: 722 | PacketID: 103 | isControl: True | isOpen: True | isClose: False | isReliable: True
Channel Index: 63 | Channel Sequence: 1 | Channel Type: 2 | Data Length: 665 | Header Pos: 57
ACTOR CHANNEL | ACTOR TYPE: PlayerPlacedObject
LOCATION = (12933, -47196, 4870)
ROTATION = (0, 62464, 0)
PREFAB_NAME_TAG = Ra6001_P1_C1_Grid_PHcity01_HomeShop002root001_lvl10_ver1
BUILDING_UNIQUE_ID = 1151
BUILDING_TYPE = 2
OBJECT_UNIQUE_ID = 2542868799
=============== END 0x01 PACKET ===============
And here are a few items that I would think go inside a building (cups, chest, cabinet):

Code: Select all

=============== START 0x01 PACKET ===============
-- Server Spawn & Movement -- | 7/31/2014 04:33:35 | 69.174.203.16 -> 192.168.1.5
RAW HEX:
0000:	01 00 48 00 00 00 6B 00 BB 43 00 E8 3F 80 78 6F ..H...k..C..?.xo
0010:	AD B1 C3 7B E3 43 DD D5 21 52 61 38 30 30 31 5F ...{.C..!Ra8001_
0020:	43 61 62 69 6E 65 74 73 5F 6C 76 6C 30 30 33 5F Cabinets_lvl003_
0030:	63 61 62 69 6E 65 74 30 31 00 B6 DE FA D5 A4 8E cabinet01.......
0040	A6 00 00 90 0F 00 00 00 DC 18 00 ED 35 01       ............5.
BITSTREAM DATA:
********* NEW BITSTREAM SECTION *********
SECTION TYPE: BUNCH | Total Bistream Length: 568 | PacketID: 107 | isControl: True | isOpen: True | isClose: False | isReliable: True
Channel Index: 59 | Channel Sequence: 1 | Channel Type: 2 | Data Length: 511 | Header Pos: 57
ACTOR CHANNEL | ACTOR TYPE: PlayerPlacedObject
LOCATION = (6870, 56861, 3981)
ROTATION = (0, 60928, 0)
PREFAB_NAME_TAG = Ra8001_Cabinets_lvl003_cabinet01
UNK DT: 54
=============== END 0x01 PACKET ===============

=============== START 0x01 PACKET ===============
-- Server Spawn & Movement -- | 7/31/2014 04:33:35 | 69.174.203.16 -> 192.168.1.5
RAW HEX:
0000:	01 00 43 00 00 00 68 00 EB 43 00 E8 3A 80 78 6F ..C...h..C..:.xo
0010:	A1 71 37 BA F9 43 D4 1D 52 61 38 30 32 31 5F 4C .q7..C..Ra8021_L
0020:	69 67 68 74 73 5F 6C 76 6C 30 30 33 5F 6C 69 67 ights_lvl003_lig
0030:	68 74 30 34 00 36 BF 2C 20 A9 1E DB 00 00 90 0F ht04.6., .......
0040	00 00 00 DC B9 45 37 BA 01                      .....E7..
BITSTREAM DATA:
********* NEW BITSTREAM SECTION *********
SECTION TYPE: BUNCH | Total Bistream Length: 528 | PacketID: 104 | isControl: True | isOpen: True | isClose: False | isReliable: True
Channel Index: 62 | Channel Sequence: 1 | Channel Type: 2 | Data Length: 471 | Header Pos: 57
ACTOR CHANNEL | ACTOR TYPE: PlayerPlacedObject
LOCATION = (6678, 53691, 4070)
ROTATION = (0, 0, 0)
PREFAB_NAME_TAG = Ra8021_Lights_lvl003_light04
UNK DT: 54
=============== END 0x01 PACKET ===============

=============== START 0x01 PACKET ===============
-- Server Spawn & Movement -- | 7/31/2014 04:33:35 | 69.174.203.16 -> 192.168.1.5
RAW HEX:
0000:	01 00 41 00 00 00 66 00 0B 44 00 E8 38 80 78 8F ..A...f..D..8.x.
0010:	A3 11 23 FA FB C3 F4 02 D6 19 52 61 38 30 36 30 ..#.......Ra8060
0020:	5F 43 75 70 73 5F 6C 76 6C 30 30 33 5F 63 75 70 _Cups_lvl003_cup
0030:	30 34 00 36 BF 2C 20 A9 EE FA 00 00 90 0F 00 00 04.6., .........
0040	00 DC 50 E1 5F 6C 01                            ..P._l.
BITSTREAM DATA:
********* NEW BITSTREAM SECTION *********
SECTION TYPE: BUNCH | Total Bistream Length: 512 | PacketID: 102 | isControl: True | isOpen: True | isClose: False | isReliable: True
Channel Index: 64 | Channel Sequence: 1 | Channel Type: 2 | Data Length: 455 | Header Pos: 57
ACTOR CHANNEL | ACTOR TYPE: PlayerPlacedObject
LOCATION = (6712, 53528, 4079)
ROTATION = (62464, 0, 32768)
PREFAB_NAME_TAG = Ra8060_Cups_lvl003_cup04
UNK DT: 54
=============== END 0x01 PACKET ===============
The common theme is the Unknown DT: 54. I'll investigate this further, but I don't think this is a showstopper. It's just a piece of information we haven't discovered yet.

Re: Vanishing Actor/PPOs

Posted: Tue Oct 28, 2014 9:56 am
by John Adams
Good work, Lokked. This is a mystery I'd like to get solved in case it's "bigger than a breadbox".

FYI, I am not pushing for "houses and their contents" to be functional. This post is merely to report we have a problem with our data, and is really only important in respects to Xinux's rift stone he found in a cavern, that would not appear until he moved it outside. The cavern, I would assume, was not a piece of our data but part of the Unreal terrain. This is the only reason I think it's important (not housing support, yet). If we're validating content, or building the world, we need to see everything we spawn. Housing support will of course come later, but is a real convenient example of the problem for analysis.

Re: Vanishing Actor/PPOs

Posted: Tue Oct 28, 2014 10:39 am
by Lokked
Right! I'm also thinking about this Disappearing Player Actor issue in Hathor Zhi, when travelling outside the confines of that square, underground room with the bird bath in the middle.

I have a pretty good idea of what DT 54 is: The parent object's Unique ID, so this would be the house that contains the object.

I'm trying to figure out why the Unreal Engine cares, and while I have some ideas, I don't know that they make complete sense from a 3d engine perspective. The best explanation I can come up with is to flag whether or not to render the object, prior to a raycast. It's cheaper to say, "If this object is not rendered, don't even consider rendering any of these" than to run screen-space culling on each object. I'm guessing if the house is within screen-space, then raycasts can be performed on the "child" objects at that point for occlusion. If the camera is positioned in the House space, it finds no children and thus doesn't render them. If the camera is in the "child" object space, the Camera is no longer trying to find a parent/child list for the house, and so it displays all the "Child" objects in the area. But why does it not display the house? Perhaps because while in the "child" space, it looks for a parent to render and finds nothing.

Edit** And actually, there is no UNIQUE_OBJECT_ID sent with "child" objects, so going along with my theory, without the parent, these objects wouldn't show up at all.

Question for folks: Would VGO let you place a cup/fruit basket outside of a house? I'm guessing not. When the item is placed, I'm betting is when the relationship between the Parent and Child is created.

Re: Vanishing Actor/PPOs

Posted: Tue Oct 28, 2014 4:35 pm
by Xinux
See this thread since i think they were related.

viewtopic.php?f=23&p=7803#p7801

Re: Vanishing Actor/PPOs

Posted: Tue Oct 28, 2014 5:32 pm
by John Adams
[quote="Lokked"]Question for folks: Would VGO let you place a cup/fruit basket outside of a house? I'm guessing not. When the item is placed, I'm betting is when the relationship between the Parent and Child is created.[/quote]
I do not believe so, Lokked. If you could drop stuff all over the world, Telon would have been a junkyard

Re: Vanishing Actor/PPOs

Posted: Tue Oct 28, 2014 6:33 pm
by shargash
Definitely not. If you were outside the house, the UI would ask if you wanted to destroy the object. Inside, it would deposit the object on the ground.

Re: Vanishing Actor/PPOs

Posted: Wed Oct 29, 2014 1:24 am
by Blackstorm
...and only if your house have a free slot ! ^^ bigger house = more slots ^^

Re: Vanishing Actor/PPOs

Posted: Wed Oct 29, 2014 9:22 am
by Xinux
Yup this also fixes items showing up in houses as long as the right values are in the DB.

bed.JPG