[Community Project] WIP Weather & Ocean Water Shader

Thank you for your work and contribution. I will play with it this weekend with the submarine im finishing up if no one puts together any updated versions by then. Got the hull and sail done. Just need to model and animate the moving parts now.

For your project it would be worth changing the Test Points for buoyancy to a struct with the buoyancy factor applied at each point instead of globally. That way you could simulate ballast and leave the sub neutrally buoyant except at the ballast’s locations allowing you to control each one to sink or rise.

I am currently getting AI to work with the Buoyancy and I will also play with your Blueprint Buoyancy. 4.7 correct? If Nsomnia is interested I have Rigging and Animation experience and can easily get your model rigged and good to go for animation using Maya. Just ask and we can share the FBX :slight_smile: Or if you want enemy subs that patrol with the Buoyancy effect(not sure where your at with that) I can share my work. Nsomnia I notice your Sub is very high poly, are you making a movie, or a game? I feel like you can greatly reduce the amount of topology and improve performance by simplifying the mesh and it will still look just as good. Are you using back-face culling?

Hmm never thought about that. I’ve used various methods to “simulate” ballast and negative tanks (the negative tank is filled with water for a fast dive, and then blown full of air (water in the tank is equal to the weight required to keep her neutrally buoyant) so that the sub is just a tiny, tiny bit positively buoyant when submerged which the planes (the wings) compensate for with a tiny tiny bit of angle up to keep perfect depth).

Jotting that idea down. I’ve had issues in the past with Unity using the typical slice n dice and then raycast from the waters surface and apply force method before. Unless I set the center of mass really really low round hulled ships like to tip over in the smallest of waves.

I’m always looking for team-members but the moveable surfaces are static right now. They arn’t even properly modelled. Check out my github and thread in my siggy see if anything intrests you. I’ve taken on people for things I hate doing like character modelling for free or just a small 50 dollars in your pocket favor-payment but so far just me and some off-site coders and artists. [EMAIL=“”] skype blendertek or steam nsomnia if you do wanna talk. Yes, blender uses back-face culling by default, I own Maya but dont know how it works that way. And no I have not optomized it yet for ingame, it will be for cutscenes then I’m gonna cut down every quad I can to get it down a bit. Currently sitting at around 11k tris.

Current game status: nothing. I havn’t even begun to port my old U-boat work over from unity since its all in c# scripts. I want to start fresh with blueprinting and c++ as I’ve become a much better coder and developer since then. So far its just some models, some ideas, enough reference material to blow your head off and alot of free time, I’m in talks on a submarine game forum with a fellow member who might join me now that UE is free since he is a Unity guy and in regards to the grant I want the interior of the ship to be nearly like an arch-viz, video talks with the vetern crew members that have helped me etc.

Sorry about the off topic!

I sent and email to you Nsomnia at your and yes I would love to help you out on your project. I can first help you with the back-face culling in Maya, you have to search for the command in mel and then save it in your shelf for future use I believe there is a youtube video about it. Lets talk about Torpedoes. I recommend that you try another method besides a raycast. For me I use a targeting approach of using rotation and vectors to orientate and then if I need guidance after launch I continue to update the rotation under constant vector speed over a timer to make adjustments with dampening. Of course this would be using the fired projectile BP tool that you can adjust speeds of the actor fired. I feel like a particle effect of a simple torpedo model would work well to create the bubble trail and ripple reflection against the body of the torpedo would be enough. I have fired different types of particles in other videos I have created to give different effects and always wanted to make a slow moving one. Would you like me to create this for you, would take a few days to a week :slight_smile:

As far as knowing which target to chase for the torpedo we can go with a heat seeking idea using a trigger box that identifies the class and then determines the closest one in range, then call for its location in the projectiles BP adjust rotation etc. Since this was a U-boat era, I’m not sure if you just want blind torpedoes that fire off and stay below the surface of the water. This can be done if we know that desired Z value and I have done this to create the hover effect in my flying car.

Sorry I can go on and on about this stuff LOL.

Before we those kind’ve details we should discuss how we will setup our partnership (if any) it seems like you’ve done submarine games before, makes me curious. Anyways lets keep this to email/skype/steam so that this thread isnt off-topic any longer. Sorry dotty!

Alright I think it’s time this gets an update. I was hoping to get LOD working seamlessly first, but that will need to be patched in later.

Just started migrating assets to a blank project to reduce the project size, lot’s of unused assets in my master project I use for testing. I will upload a downloadable version here and upload it to GitHub as the master going forward.

So long as there are no issues I should have a download ready later today! Sorry (once again) for the delay… :slight_smile:

Great! Do you have github figured out? Are you going to make memberships available so people can submit bugs, and contributors can submit commits, if so are you going to have seperate branches as in one for your master release one for your working version and one for public additions? Are you going to allow the wiki public-editable? Once I get into your setup more I’d love to help keep the git-hub up to date.

To be honest I really don’t know what I am doing when it comes to GitHub, I have always used SVN for my projects in the past. So I know how it works just not how to implement it all.

But I am pretty sure it will be fairly simple, it doesn’t look so bad. I want it to be open enough for bug reports, contributions, and multiple versions (one focused for player/water interaction, underwater FX, swimming etc, and another one focused on the surface/bouyancy, as well as 4.6 / 4.7 / 4.8 etc versions).

So the answer to these questions (except the first since I am a GitHub noob) is yes for sure. I really want this to be a project from community for the community so open access is a must.

I will add you on skype a little later when I am ready to go for GitHub so you can help with my noobness! :smiley:

Sure, although I’m not expert either. A master branch would probly be best that only you can edit (if thats possible, I’d have to check), then a RC branch, and a working branch for public commits. Contributors can only clone the working branch (again if thats possible) and then you can have seperate releases (.zips of all the sources for all the different versions) say v1.0 for 4.6.1 v1.0 for 4.7 v1.0 for 4.7.1. Seperating it into its different components (water interaction, FX, swimming, buoyancy) might be messy. I have no idea, I’m sure you and the community can come up with a clean way for people to get the source, and if they have github themselves, they can clone whatever part they want and make changes.

So maybe a main branch that has EVERYTHING. A RC (beta) branch for each of the components and a working branch for each of the components would be my best bet. Youd have 1+x+x (so 1+6+6?) aka alot of branches but it would be organized. Then when you decide progress has been made to warrent a version increment make a new release and just title it “Complete Project v1.01 -” and you could have “Swimming Project v1.02 -” and “Water Interaction Project v1.00 -”. When seperating a whole project into its individual parts it does create some mess. Thats the one good thing about the Unity community ocean project, everything was in one project and you just removed the scripts etc. that you didnt need for your project. But then again, you guys have already implemented more. Swimming in unitys? Nope. Fish? Nope. Effects? Just some foam and caustics. Underwater? A very alpha ugly version.

This came to mind, I dont know if GitHub can even handle a system like this usually its just one whole project split into version branches or alpha/beta/rc/release branches with releases whenever. cant say I’ve seen a modularized one

I see you can add collaberators (project members) but it appears you cant limit their access in anyway. So it seems the public will be able to download any of the files and edit all they want but they cant only upload to Github if you add them as a contributor. So if you have someone working on a certain part you’d want to add them as a collaborator under the project settings so that they can commit changes (edit files) which of course you can revert.
Otherwise anyone making changes would need to release their version via medafire/ftp/their own github. I assume only collaboraters can clone the repository (use the command line or a github client to clone the repo that then tracks their file changes that they can commit) and if they are ahead or behind the repository in which case they would sync their clone. Thats my understanding anyway. I could be wrong.

Edit: It looks like you can turn your account into an organization too, thatss what epic does, that allows you to have multiple projects under your organization which each have owners (admins) and team members (developers with fine tuned access). Free for open source.

Hey DotCam,

I have used Git on multiple large projects and wouldn’t mind teaching you or helping you maintain the Repo. One unfortunate side effect of using Git, as our team found, is that the max file size is 500mb. So large Levels cannot be commited :/. There’s probably some way around this though.

Thats a good point.

There are other reposistor services though. Bitbucket is very popular, I dont think they host files though.


And GitLab is up and coming and apparently one of the best right now feature wise and can import projets directly from github. Edit: Nevermind 20$ a month.

Of course theres sourceforge too which can use SVN but I dont know if you can have the public clone and commit.

If you need server space ever I have unlimited bandwidth/space on my server with lots of services and can create and can create ftp accounts in minutes.

Edit: I forgot about google code "One of the project owners must use the project administration page to add your Google account email address to the project.

Most projects have mailing lists that the developers use to discuss the project. To become a developer, first participate on the mailing list by showing your interest in the project and your ability to help the project. Then, ask the project owners to make you a member of the project. "

They allow 5gb repos and 200mb uploads.

Odd though, through github I uploaded close to a couple gigs in one go from the windows client with no warnings it just took hours and im sitting at 3.5 gb for my repo due to all the reference pictures and no warnings yet? Shrug maybe cause I have no file over 100 megs. it may be best to have seperate repos for everything you can. I might not be the guy to talk to.

Hi guys, firstly amazing work!

I was just looking on the trello board at some of the new features in development, and noticed some things in the completed section including “Package as Plugin”.

Any news on when the next release incorporating these features will be available?

Keep up the good work, you’re inspiring this UE4 newbie!


Well it was supposed to be released today, I was just trying to set up the project for upload and the plugin is not working. :frowning:

Hopefully I get it sorted out by tomorrow morning, release is still coming in whatever form it may take. Going to continue to plug away at it this evening.

Thanks for all the GitHub info guys! I’ll get back to you on that once this is finished.

In regards to “Tessendorf’s FFT” I beleive thats how most/all implentations of the Unity Community Ocean Project did wave calculation. You could check out the code without downloading unity as its just .cs text files. Its c# but easily portable.

And @dotcam regarding the underwater plant models you are looking for. What do you need? Static? Animated? I have a great collection of above ground plants in my personal model library and would gladly make some low-poly sea plants/coral etc. depending what exactly you need.

The thing is, with nowadays hardware, it’s not a very good idea to calculate FFT on CPU. So if in Unity it’s on CPU, then I assume that displacement map is quite small - 64x64 or smth like that. In case of UE4 you can use compute shaders to do the math on GPU. In such case you can use 512x512 map without any problems.

I beleive even half that in Unity I cant remember anymore cause FFTs are over my head.

I have released my initial code for fish AI found here:

Me and Avolanty are ready for the latest version DotCam, we got our boat imported into Unreal just fine from Blender with the rig and everything.

Just wanted to thank everyone who has participated in this project so far. Great work! Really looking forward to the new version DotCam. :slight_smile: