Giter Site home page Giter Site logo

pedr0fontoura / gtav-audio-occlusion Goto Github PK

View Code? Open in Web Editor NEW
76.0 8.0 31.0 1.43 MB

πŸ”§ Audio occlusion generation tool for GTA V custom interiors

License: MIT License

TypeScript 98.59% JavaScript 1.15% HTML 0.26%
gtav modding electron react audio

gtav-audio-occlusion's Introduction

gtav-audio-occlusion

A tool for generating audio occlusion for V MLOs.

It was created as an incentive to help the community move to FiveM's native audio system.

Disclaimer

This tool uses the CodeWalker XML format, so you need to extract/import game files with CodeWalker before using the generated files.

If you don't know what is audio occlusion or how it works on V, the following content will be useful to you:

Installation

Download

Get the latest version of the tool from the releases section.

Build (for developers)

# Clone this repository
$ git clone https://github.com/pedr0fontoura/gtav-audio-occlusion

# Navigate to the repo directory
$ cd gtav-audio-occlusion

# Install the project dependencies
$ yarn

# Run the tool
$ yarn start

Preview

Initial screen

Initial screen

Empty project

Empty project

Create project modal

Create project modal

Project

Project screen

Portals

Portals screen

Entities

Entities screen

Rooms

Rooms screen

Settings

Settings screen

Acknowledgements

  • Nikez for the initial documentation about audio occlusion.
  • appricotflower821 for the rage.re research and the path nodes original algorithm.

gtav-audio-occlusion's People

Contributors

isingrel avatar pedr0fontoura avatar snakewiz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gtav-audio-occlusion's Issues

Saving projects

Parsing the generated XML files for loading ongoing projects would be extremely painful, so saving an intermediary data structure that the tool can read is the go-to for this.

Support for multiple interiors

Splitting interiors in multiple MLO's is a very common practice in GTA V mapping, this would be a nice feature to have.

A lot needs to be done before implementing this feature, including managing resources (loading multiples .ytyp and .ymap), some refactoring, and UI work because user input is needed to link the interiors properly.

Program ignores portals without entities

Hello, i don't know bug it or not, but this program ignores portals without attached entities( for example i'm load ymap and ytyp of vanilla tunnel interior, and i'm got empty file:

<naOcclusionInteriorMetadata>
  <PortalInfoList itemType="naOcclusionPortalInfoMetadata"/>
  <PathNodeList itemType="hash_771E3577"/>
</naOcclusionInteriorMetadata>

If someone too have same issue, i am guess it can be fixes by attach any props to all portals in interior

Inverted behavior on editing portal entries

When you disable a portal entry, for some weird reason that I can't identify the opposite portal entry is disabled.

e.g:

Portal entry 0 : Room 0 -> Room 1
Portal entry 1: Room 1 -> Room 0

If you disable the portal entry 1 sound stops routing from Room 0 to Room 1.

IDEA | Save Files

We could maybe have save files for the tool, so we can multitask through several projects at the same time without needing to open new windows or close on-going things.

Could be saveable in some kind of cache folder?

Nodes resetting

When I uncheck a node under "Nodes" and then go to portals and then go back to nodes everything is restored. Therefore I can't save changes in nodes because every time I exit it resets back to normal :(

UnhandledPromiseRejection

I'm having trouble that with a lot of ytyp files when i add them to the application it is throwing up the errors you can see in the screen shot , also if i try and generate any Occlusion / Gamedata / Dynamix then it just goes to a grey window and nothing ever happens.

Please find below a link to a screenshot of the problem .
The ytyp used in the screenshot is from the redline garage mlo.

https://gyazo.com/89e20af52dabb46f96d05e5da3261d38

Can Only run for a single Map

So when you use the tool to make another set of audio occlusions for another map so for example I have:
MLO - Warehouse
MLO - Mafia

And we make occlusions for Warehouse and run it they work, then we make it for Mafia and start that resource 2nd in the config, Occlusions will work for Warehouse but not mafia, if we disable warehouse and its occlusions then occlusions will work for Mafia. Is there a way to run both sets? Even if its something that needs to be set manually outside of the tool?

UnhandledPromiseRejectionError

cMloArchetypeDef: getting entities ...
cMloArchetypeDef: getting rooms ...
cMloArchetypeDef: getting portals ...
(node:3292) UnhandledPromiseRejectionWarning: TypeError: t.attachedObjects.split is not a function

getting this when I import MRPD ymap and ytyp

v2

  • Electron good practices
  • Tests
  • Improve UI and UX
  • Docs

Already tracked stuff:

Crash

After this commit program is crashing if you edit "isDoor" or "Isglass"

image

Error I get when import the codewalker XML's

image

image

I tried the xml's from the nikez example and they work. But the XML i have hase only 1 archtype.

I have tried out some print to see whats wrong, and this is where it seems to go wrong.
In ytyp.ts
image
the console log
image

The length is undefined
Sorry for the screenshots and no code blocks, I will check some more tomorrow or maybe know the problem.

Greetings YpsilonTM,
Very Nice work btw ! <3

Occlusions do not work at all

Hello,

I can’t seems to get any occlusions to work at all, with any interiors. Does the version of codewalker matter for use of this tool?

Audio routing issue with some custom MLO's

I've generated over 30 interiors without any issues with this tool, but with some interiors I got some kind of routing issue, like for example: Audio travels correctly from limbo to room it's linked with but after whatever room I'm in audio stops travelling between rooms. This has happened on +10 custom MLO's we have on our server and can't seem to figure it out why is it doing that. I've tried multiple different portal flags if it's related to that, checked multiple times if the attached entities are linked correctly to portals etc etc.

I'm pretty sure there are people facing same problems as I am. Also I'm pretty confident the issue is related to algorithm that generates paths between rooms.

I can provide files to sort this issue out when needed.

t.attachedObjects.split is not a function

Hello! First of - thanks for creating this awesome tool.

I'm trying to use the tool, on an existing MLO to add audio data the tool provides - but I get this error:
image

I will attach the 2 XML files aswell for ymap and ytyp.
xml.zip

No entitys shows up

Hey,

So trying to learn this tool, but in the Portals Entites nothings shows up with any of the MLO's i have tested so fare, what might be the problem here?

Crash everytime I goto generate

Hey, i am having a problem with this tool crashing everytime I goto generate files using the "+" buttons, I import the ytyp and ymap .xml's and select an output, then clicking either generate will give the tool a blank screen and give the error in console in the below SS

I have tried both release build and latest commits with no luck

please help, would really love to get this working, thank you

https://i.gyazo.com/d1dab2698a467680760fb9c9cb32b787.png

Cannot read property 'isDoor' of undefined

Hello i get the error message: "Uncaught (in promise) Error: Error invoking remote method 'generateAudioOcclusion': TypeError: Cannot read property 'isDoor' of undefined
at EventEmitter.i.invoke (electron/js2c/renderer_init.js:73)"

When i try to generate the audioOcclusion. I've tried multiple MLO's made by my friend but the same error keeps popping up.

https://i.imgur.com/AWQW6Oi.png

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.