Talk:Nav Mesh Editing: Difference between revisions
Jump to navigation
Jump to search
m (comment) |
No edit summary |
||
(15 intermediate revisions by 4 users not shown) | |||
Line 6: | Line 6: | ||
:Well, I never heard about them, but I guess you can just go ahead and try to write everything you found out so far in a new subsection, probably under the ''Advanced editing techniques''. As soon as you have written something, there will be the chance that others investigate about that topic, too. --[[User:Popcorn|Popcorn]] ([[User talk:Popcorn|talk]]) 15:55, 26 August 2021 (PDT) | :Well, I never heard about them, but I guess you can just go ahead and try to write everything you found out so far in a new subsection, probably under the ''Advanced editing techniques''. As soon as you have written something, there will be the chance that others investigate about that topic, too. --[[User:Popcorn|Popcorn]] ([[User talk:Popcorn|talk]]) 15:55, 26 August 2021 (PDT) | ||
:: Yeah that works, those commwnds are typically not useful for an average navigation editing session until advanced nav editing work is required (except {{l4d2}}, since you have full access to nav attributes with VScript). - [[User:Orinuse|Orin]] ([[User talk:Orinuse|talk]]) 22:47, 26 August 2021 (PDT) | :: Yeah that works, those commwnds are typically not useful for an average navigation editing session until advanced nav editing work is required (except {{l4d2}}, since you have full access to nav attributes with VScript). - [[User:Orinuse|Orin]] ([[User talk:Orinuse|talk]]) 22:47, 26 August 2021 (PDT) | ||
::: I mentioned the two commands, but not the syntax and structure of the [[Keyvalues]] file used by them; Unless if someone else wants to, I'll document them later. - [[User:Amicdict|Amicdict]] ([[User talk:Amicdict|talk]]) 16:50, 31 August 2021 (PDT) | |||
== Select areas by attribute? / Transient areas == | |||
Is there no nav command to select all areas with a certain attribute in {{css}} or I am blind ??!? --[[User:Nescius|Nescius]] ([[User talk:Nescius|talk]]) 15:15, 2 May 2025 (PDT) | |||
:The former, I presume. Unless there's VScript ways by now, but I just tested it. There is a <code>CNavMesh</code> instance but its methods don't seem to work because they access some null instance. Unfortunate. --[[User:Popcorn|popcorn]] ([[User talk:Popcorn|talk]]) 20:15, 2 May 2025 (PDT) | |||
:May be overcomplicated, but you can <code>nav_save_selected</code> all areas to a text file and find all areas with an "Attributes" int that has the bit flag you want and edit them if desired. If it's just about adding/removing some flag from the entire mesh, you can <code>nav_select_radius 999999; nav_(mark|clear)_attribute (NO_JUMP|STAND|JUMP);</code>. --[[User:Popcorn|popcorn]] ([[User talk:Popcorn|talk]]) 20:42, 2 May 2025 (PDT) | |||
<syntaxhighlight lang=js style="font-size:80%; margin:0; float:right;">alias nextmap 1; | |||
alias 1 "alias nextmap 2; dostuff; map cs_assault" | |||
alias 2 "alias nextmap 3; dostuff; map cs_compound" | |||
alias 3 "alias nextmap 4; dostuff; map cs_havana" | |||
alias 4 "alias nextmap 5; dostuff; map cs_italy" | |||
alias 5 "alias nextmap 6; dostuff; map cs_militia" | |||
alias 6 "alias nextmap 7; dostuff; map cs_office" | |||
alias 7 "alias nextmap 8; dostuff; map de_aztec" | |||
alias 8 "alias nextmap 9; dostuff; map de_cbble" | |||
alias 9 "alias nextmap 10; dostuff; map de_chateau" | |||
alias 10 "alias nextmap 11; dostuff; map de_dust" | |||
alias 11 "alias nextmap 12; dostuff; map de_dust2" | |||
alias 12 "alias nextmap 13; dostuff; map de_inferno" | |||
alias 13 "alias nextmap 14; dostuff; map de_nuke" | |||
alias 14 "alias nextmap 15; dostuff; map de_piranesi" | |||
alias 15 "alias nextmap 16; dostuff; map de_port" | |||
alias 16 "alias nextmap 17; dostuff; map de_prodigy" | |||
alias 17 "alias nextmap 18; dostuff; map de_tides" | |||
alias 18 "alias nextmap 19; dostuff; map de_train" | |||
alias 19 "alias nextmap; dostuff;" | |||
nav_edit 1; | |||
alias t "nav_toggle_selected_set; wait 2" | |||
alias c1 "t;nav_clear_attribute CROUCH" | |||
alias c2 "t;nav_clear_attribute JUMP" | |||
alias c3 "t;nav_clear_attribute PRECISE" | |||
alias c4 "t;nav_clear_attribute NO_JUMP" | |||
alias c5 "t;nav_clear_attribute STOP" | |||
alias c6 "t;nav_clear_attribute RUN" | |||
alias c7 "t;nav_clear_attribute WALK" | |||
alias c8 "t;nav_clear_attribute AVOID" | |||
//alias c9 "t;nav_clear_attribute TRANSIENT" | |||
alias c10 "t;nav_clear_attribute DONT_HIDE" | |||
alias c11 "t;nav_clear_attribute STAND" | |||
alias c12 "t;nav_clear_attribute NO_HOSTAGES" | |||
alias c13 "t;nav_clear_attribute STAIRS" | |||
alias c14 "t;nav_clear_attribute NO_MERGE" | |||
alias c15 "t;nav_clear_attribute OBSTACLE_TOP" | |||
alias c16 "t;nav_clear_attribute CLIFF" | |||
alias dostuff "clear_non_transient; t; nav_save_selected; wait 30;" | |||
alias clear_non_transient "c1;c2;c3;c4;c5;c6;c7;c8;c9;c10;c11;c12;c13;c14;c15;c16;" | |||
</syntaxhighlight> | |||
::Oh I was too pissed off such a basic command is missing to even start thinking of alternatives and just abandoned all efforts lol. But knowing vscript's CNavMesh doesn't work is quite disappointing. I suppose nav_save_selected will work for what I want after I remove all undesired attributes and then save so I can ctrl+f the one I want. What I wanted to do was check if there is any official map using the TRANSIENT attribute --[[User:Nescius|Nescius]] ([[User talk:Nescius|talk]]) 00:13, 3 May 2025 (PDT) | |||
::Did some cfg script for automation and found some TRANSIENT attributes in cs_havana. Though they don't seem to do anything. At first I thought it's related to areas being blocked automatically at start of the round but it had the same behavior without transient.<br>--[[User:Nescius|Nescius]] ([[User talk:Nescius|talk]]) 02:59, 3 May 2025 (PDT) | |||
:::Yeah, the transient areas are actually used right at those critical spots. Then apparently the transient attribute is unimplemented. For a moment I thought that [[func_nav_blocker]]s or [[trigger_hurt]]s do the job of blocking, but there aren't any. I'm wondering how the blocked state is toggled then. | |||
:::Btw, in case you may find it interesting, I just remember that for csgo I wrote a program to convert the exported nav text file to squirrel source code such that you can find (and view) areas in-game (however not to edit them, obviously). --[[User:Popcorn|popcorn]] ([[User talk:Popcorn|talk]]) 11:49, 3 May 2025 (PDT) | |||
::::I was hoping that was the case for transient areas but the blocking happens even if you remove transient areas. I tried spawning func_brush in that map via <code>ent_create func_brush model *41</code> in the middle of random nav squares and they get blocked when the round resets too. I have too little motivation to check {{csgo}} as it was pretty much replaced by {{cs2}}. So {{csgo}} also doesn't have a command to select areas with attributes ? I find that so ridiculous. How someone programs a command like "nav_select_stairs" instead of spending 5 more minutes creating "nav_select_with_attributes" lmao --[[User:Nescius|Nescius]] ([[User talk:Nescius|talk]]) 11:58, 3 May 2025 (PDT) | |||
:::::(Oh, funny, you answered faster than I could correct myself due to having overlooked your previous last two sentences. Sorry.) | |||
:::::Yeah, I feel the pain with that missing command. | |||
:::::Well, the program for the squirrel code generation I mentioned isn't specific to csgo. I just wanted to mention that it may be a thing that you "just" have to rearrange the exported nav areas text file to get data you can process in squirrel and thus in-game. --[[User:Popcorn|popcorn]] ([[User talk:Popcorn|talk]]) 12:28, 3 May 2025 (PDT) |
Latest revision as of 12:28, 3 May 2025
These two commands are handy for forcing creation of nav areas and connections that would otherwise be impossible to make normally. This is because nav_save_selected
stores the information for a selected set in a file, that can be edited, and then added through nav_merge_mesh
.
The two commands in theory would be particularly handy for dealing with area portals in the nav mesh. I think they should be mentiond on this page, but I am uncertain how to describe them in an understandable way. - Amicdict (talk) 14:38, 26 August 2021 (PDT)
- Well, I never heard about them, but I guess you can just go ahead and try to write everything you found out so far in a new subsection, probably under the Advanced editing techniques. As soon as you have written something, there will be the chance that others investigate about that topic, too. --Popcorn (talk) 15:55, 26 August 2021 (PDT)
Select areas by attribute? / Transient areas
Is there no nav command to select all areas with a certain attribute in or I am blind ??!? --Nescius (talk) 15:15, 2 May 2025 (PDT)
- The former, I presume. Unless there's VScript ways by now, but I just tested it. There is a
CNavMesh
instance but its methods don't seem to work because they access some null instance. Unfortunate. --popcorn (talk) 20:15, 2 May 2025 (PDT) - May be overcomplicated, but you can
nav_save_selected
all areas to a text file and find all areas with an "Attributes" int that has the bit flag you want and edit them if desired. If it's just about adding/removing some flag from the entire mesh, you cannav_select_radius 999999; nav_(mark|clear)_attribute (NO_JUMP|STAND|JUMP);
. --popcorn (talk) 20:42, 2 May 2025 (PDT)
alias nextmap 1;
alias 1 "alias nextmap 2; dostuff; map cs_assault"
alias 2 "alias nextmap 3; dostuff; map cs_compound"
alias 3 "alias nextmap 4; dostuff; map cs_havana"
alias 4 "alias nextmap 5; dostuff; map cs_italy"
alias 5 "alias nextmap 6; dostuff; map cs_militia"
alias 6 "alias nextmap 7; dostuff; map cs_office"
alias 7 "alias nextmap 8; dostuff; map de_aztec"
alias 8 "alias nextmap 9; dostuff; map de_cbble"
alias 9 "alias nextmap 10; dostuff; map de_chateau"
alias 10 "alias nextmap 11; dostuff; map de_dust"
alias 11 "alias nextmap 12; dostuff; map de_dust2"
alias 12 "alias nextmap 13; dostuff; map de_inferno"
alias 13 "alias nextmap 14; dostuff; map de_nuke"
alias 14 "alias nextmap 15; dostuff; map de_piranesi"
alias 15 "alias nextmap 16; dostuff; map de_port"
alias 16 "alias nextmap 17; dostuff; map de_prodigy"
alias 17 "alias nextmap 18; dostuff; map de_tides"
alias 18 "alias nextmap 19; dostuff; map de_train"
alias 19 "alias nextmap; dostuff;"
nav_edit 1;
alias t "nav_toggle_selected_set; wait 2"
alias c1 "t;nav_clear_attribute CROUCH"
alias c2 "t;nav_clear_attribute JUMP"
alias c3 "t;nav_clear_attribute PRECISE"
alias c4 "t;nav_clear_attribute NO_JUMP"
alias c5 "t;nav_clear_attribute STOP"
alias c6 "t;nav_clear_attribute RUN"
alias c7 "t;nav_clear_attribute WALK"
alias c8 "t;nav_clear_attribute AVOID"
//alias c9 "t;nav_clear_attribute TRANSIENT"
alias c10 "t;nav_clear_attribute DONT_HIDE"
alias c11 "t;nav_clear_attribute STAND"
alias c12 "t;nav_clear_attribute NO_HOSTAGES"
alias c13 "t;nav_clear_attribute STAIRS"
alias c14 "t;nav_clear_attribute NO_MERGE"
alias c15 "t;nav_clear_attribute OBSTACLE_TOP"
alias c16 "t;nav_clear_attribute CLIFF"
alias dostuff "clear_non_transient; t; nav_save_selected; wait 30;"
alias clear_non_transient "c1;c2;c3;c4;c5;c6;c7;c8;c9;c10;c11;c12;c13;c14;c15;c16;"
- Oh I was too pissed off such a basic command is missing to even start thinking of alternatives and just abandoned all efforts lol. But knowing vscript's CNavMesh doesn't work is quite disappointing. I suppose nav_save_selected will work for what I want after I remove all undesired attributes and then save so I can ctrl+f the one I want. What I wanted to do was check if there is any official map using the TRANSIENT attribute --Nescius (talk) 00:13, 3 May 2025 (PDT)
- Did some cfg script for automation and found some TRANSIENT attributes in cs_havana. Though they don't seem to do anything. At first I thought it's related to areas being blocked automatically at start of the round but it had the same behavior without transient.
--Nescius (talk) 02:59, 3 May 2025 (PDT)- Yeah, the transient areas are actually used right at those critical spots. Then apparently the transient attribute is unimplemented. For a moment I thought that func_nav_blockers or trigger_hurts do the job of blocking, but there aren't any. I'm wondering how the blocked state is toggled then.
- Btw, in case you may find it interesting, I just remember that for csgo I wrote a program to convert the exported nav text file to squirrel source code such that you can find (and view) areas in-game (however not to edit them, obviously). --popcorn (talk) 11:49, 3 May 2025 (PDT)
- I was hoping that was the case for transient areas but the blocking happens even if you remove transient areas. I tried spawning func_brush in that map via
ent_create func_brush model *41
in the middle of random nav squares and they get blocked when the round resets too. I have too little motivation to checkas it was pretty much replaced by
. So
also doesn't have a command to select areas with attributes ? I find that so ridiculous. How someone programs a command like "nav_select_stairs" instead of spending 5 more minutes creating "nav_select_with_attributes" lmao --Nescius (talk) 11:58, 3 May 2025 (PDT)
- (Oh, funny, you answered faster than I could correct myself due to having overlooked your previous last two sentences. Sorry.)
- Yeah, I feel the pain with that missing command.
- Well, the program for the squirrel code generation I mentioned isn't specific to csgo. I just wanted to mention that it may be a thing that you "just" have to rearrange the exported nav areas text file to get data you can process in squirrel and thus in-game. --popcorn (talk) 12:28, 3 May 2025 (PDT)
- I was hoping that was the case for transient areas but the blocking happens even if you remove transient areas. I tried spawning func_brush in that map via