i left unity ,and now im working on a FPS in godot for a week now. its a dark fantasy shooter heres the result> https://youtube.com/watch?v=47KIZJXtIAs started with the basic controller, footsteps and procedural bobbing / jumping and weapon sway
main character concept drawing
Wow! That looks amazing. Like a AAA game. Can't believe you put that together so quickly in Godot.
@cybereality said: Wow! That looks amazing. Like a AAA game. Can't believe you put that together so quickly in Godot.
tnx, not really AAA but im not aiming for insane graphics . gameplay,sound design and atmosphere are more important than AAA graphics imo
guess i wont be using godot afterall :'( cant get my animations to import correctly in the engine. tried fbx, collada, gltf. everything screws up my skinning and animation tried to workaround and import them in blender first, they look fine there. even blenders' exporters dont work when importing. shame
I'm sure it's a fixable problem. Animation is working in Godot AFAIK and lots of games use them.
Might be some issue with the base pose or some transform on the bone that is not applied properly. glTF is your best bet for Blender. For Autodesk programs, use FBX. I wouldn't bother with COLLADA, I think it still works but it's not the greatest format.
Can you send me one of the animations? I can take a look on my end (you can PM me if you don't want to post on the public form). I'll see if I can get it to work.
I think I got it working. We can continue talking here if you want.
@cybereality said: I think I got it working. We can continue talking here if you want.
tnx for your time! does anyone know how to correctly export from blender in fbx? now every object is set to an animated layer. how do i combine those in the fbx? also how to split up animations on import so they show up in the editor?
The animations are in the AnimationPlayer. If you click on it there is a drop down on the menu on the bottom middle that shows the animations to preview. You can play then in code by calling animation_player.play("animation name") however it can only play one at a time. You need an AnimationTree to play multiple animations, and inside you can make different objects, such as a BlendSpace or various things. It seems kind of complex, so maybe there is a better way to sync animations. I think it is more useful to blend between say a running and a jumping animation.
i understand, but i want it more simplified as my animations dont need to blend or loop. they blend perfectly in my animations. and yes i only want to play 1 animation at once
Hi, i had also some issues with Blender Animations. For me it works with an combination of glTF and the escn exporter for blender: https://github.com/godotengine/godot-blender-exporter With glTF the animation where transfered to godot, but the mesh was not there, maybe a think with the vertex weights. Did export with escn (there the animation was not correct, but the mesh). So i delete the mesh from the glTF, add the mesh from the escn and attached the Skeleton from the glTF inside godot.
@Andreas said: Hi, i had also some issues with Blender Animations. For me it works with an combination of glTF and the escn exporter for blender: https://github.com/godotengine/godot-blender-exporter With glTF the animation where transfered to godot, but the mesh was not there, maybe a think with the vertex weights. Did export with escn (there the animation was not correct, but the mesh). So i delete the mesh from the glTF, add the mesh from the escn and attached the Skeleton from the glTF inside godot.
i allready fixed it with gltf. but i cannot get the "split animation clips " on import to work
Hi, sry didnt get the point. As you say, you want to have all animations in one clip? Why to split them?
@Andreas said: Hi, sry didnt get the point. As you say, you want to have all animations in one clip? Why to split them?
i used to have my animation split up into layers in gltf when importing into godot. i wanted a main animationlayer to use. that was fixed by simply unchecking a thickbox on export then i tried splitting the animation on import settings into clips but that doesnt work. so i ended up duplicating the "main" animation and editing the clips in the godot timeline editor, wich isnt ideal
From Blender, if you finish with your animations, you have several animations in the Action Editor, right? Then you need to "Push Down" (there is a button in the action editor) to create the NLA stack. In the NLA-Editor you need to mute the layers (for some reason) With all your animations in the NLA stack, you do export to glTF. On the AnimationExportDialog check if "Group by NLA" is active. After importing to godot, you will have a single AnimationPlayer, but with all your animations inside. You can access them like cyberreality wrote:
If you click on it there is a drop down on the menu on the bottom middle that shows the animations to preview. You can play then in code by calling animation_player.play("animation name")
@Andreas said: From Blender, if you finish with your animations, you have several animations in the Action Editor, right? Then you need to "Push Down" (there is a button in the action editor) to create the NLA stack. In the NLA-Editor you need to mute the layers (for some reason) With all your animations in the NLA stack, you do export to glTF. On the AnimationExportDialog check if "Group by NLA" is active. After importing to godot, you will have a single AnimationPlayer, but with all your animations inside. You can access them like cyberreality wrote:
If you click on it there is a drop down on the menu on the bottom middle that shows the animations to preview. You can play then in code by calling animation_player.play("animation name")
i cant use the nla stack, i create my work in c4d. i just use blender( to import my fbx models) because it has a better gltf exporter godot should fix their importers so they work correctly, splitting animations on import shouldnt be a problem it would make a whole lot of peoples' lifes easier
Have you asked on Cinema4D forums or contacted Cinema4D support? To my mind the cinema glTF exporter should be able to do the job too. If not then there's work to be done there to improve it. If they are never informed they'll not know to improve it either.
@Megalomaniak said: Have you asked on Cinema4D forums or contacted Cinema4D support? To my mind the cinema glTF exporter should be able to do the job too. If not then there's work to be done there to improve it. If they are never informed they'll not know to improve it either.
c4d is notorious for export problems. even fbx(the most common system) was only starting working correctly in r18/19 i wish godot developers would adress the fbx import system, and the ability to split the imported animation file into clips. that way i dont need to workaround the gltf blender workflow
Honestly FBX problems exist because of AutoDesk and this is also one of the very reasons why glTF exists, collada didn't do the job well enough and everyone was getting sick of FBX issues.
AutoDesk does put out an SDK for motionbuilders fbx but they also keep changing specs rather arbitrarily every year so it's a huge pain to maintain support for, if you even can since the license itself is a pain too.
There's a reason why blender community just reverse engineered and developed their own importer and exporter from scratch. It's cause blender is GPL licensed and AD decided to outright make their license completely incompatible. Explicitly.
I still want to figure out your problem. I'm sure we can find a work around or something. But this is a common issue with proprietary "standards" that one company controls. Especially when the specification is not open, costs money, or changes every year. When I heard about glTF, and especially after the 2.0 version came out, I decided I will only support that. I also used to use Maya primarily, but I cancelled my subscription and I just use Blender now and it's actually much better. It sucks, I know, but these companies make their money by locking you in, that is by design.
So I don't know, it doesn't seem like you can fix the model in Blender. I spent a few days looking into it. There were a few things that looked promising, but I was not able to get them to work.
One was baking the animation. If you select an object then go to the menu on top under object > animation > bake, then it can bake the animation into the object. This seems to be designed for rigged meshes maybe. I don't know, some people said they did it but it was messing up the animation for me. And even when I sort of got it working (with a few pieces missing like the bullet and clutch) there were still 2 animation tracks (one for the arms and one for the gun) in which case it still wouldn't work.
The other option I saw was to combine all the objects together, and then copy and paste all the keyframes onto the same track. I didn't try this, cause it seems like a hack and too much work anyhow. And there is a high chance of messing something up, and it's a manual process you'll have to do each time you export the model (like if you update anything). So I don't consider this a viable option.
But one thing I did think about was doing it in Godot. I think I found one trick that might work. Leave the glb file as-is, the same one you sent me, and just create the animation frames in code. The AnimationPlayer works based on seconds, not frames, so you have to do some math to convert the clips. But the idea is that you would have a script running on _process() that will check the AnimationPlayer timecode and then either loop or stop based on what you want. However, I think you will lose the ability to blend animations like this, so it may not be the best solution either. This code just has the gun firing non-stop like a machine gun.
onready var gun = get_node("Gun")
onready var anim = gun.get_node("AnimationPlayer")
func _ready():
anim.get_animation("Animation").set_loop(true)
anim.play("Animation")
func _process(delta):
if anim.current_animation_position > 0.3:
anim.seek(0.0)
I also tried messing with the AnimationTree and StateMachine but they seem to be for mixing distinct animations (like run and jump) not for pieces of the same animation, so that wasn't working either. So I don't know. I think I've done enough research and there is not a simple solution. Most likely it will have to be a modification to the original source animation so that it will work better with Godot.
Also, I think most games do not export the character and the weapons together. The character (arms in a shooter) would be one mesh, and each weapon would be another mesh with it's own animation. You can still create them together in your modeling app, but export as separate files. However, they would still need one track per model. This is easy for the arms, I did get that working. But the gun has many pieces and I'm not sure how that would work in C4D since I've never used it. But if you can find a way to combine all the gun pieces into one animation, then that might actually work.
@cybereality said: Also, I think most games do not export the character and the weapons together. The character (arms in a shooter) would be one mesh, and each weapon would be another mesh with it's own animation. You can still create them together in your modeling app, but export as separate files. However, they would still need one track per model. This is easy for the arms, I did get that working. But the gun has many pieces and I'm not sure how that would work in C4D since I've never used it. But if you can find a way to combine all the gun pieces into one animation, then that might actually work.
it actually works fine in other game egnines. i understand the autodesk problem. i dont really mind importing the fbx in blender and then exporting the gltf as one animation(i allready got that working). thats not much work. but the splitting animation clips should work on import regardless the name of the animation in the source file. splitting animations by code in script based on seconds isnt really ideal imo i dont need to use an animationtree, as the clips sync perfectly and i only need to play one animation once at a time
im sharing my first test weapon with the community https://sketchfab.com/3d-models/persuader-animated-c915c024e4e44d9fad250242d094d4e2
if anybody can get it working with split clips on import that would be great
It says I don't have permission to download.
EDIT: Nevermind, I had to go to my account and accept the new terms of service.
i cant work with godot, not in its current state if i cant easily import art into an engine i cant work with it honestly importing my 3d animated models are all screwed up, fbx and gltf/glb u cannot easily split animation clips on import i tried godot 4 and was hoping they would have worked on these issues instead of improving graphics quality maybe ill try the engine once again later, ill leave it as is now
Makes sense. I don't blame you.
after alot of trial and error, ive found that the c4d gltf exporter is completely broken for animated models(works fine for static objects) so its not a godot issue. ill contact maxon for this splitting the main animation clip into seperate ones in godot does remain an issue tho, this should be adressed
so ive finally made the switch to linux, bought myself a nuc computer
here is my result of 2 days in blender
ive managed to make a custom rig, learning the interface, setup mats etc.
next is learning the animation tools. that evee renderer looks awesome.
dont know why i waited so long to try learning blender, i just kept postponing it over and over.
it just felt daunting to switch to a new 3d app as i had been using c4d for over 12 years.
one thing i miss on linux is zbrush, love that program, ive bought 3dcoat but im not that familiar with it yet
everything else ive found alterntives for, free, open source, and in many ways better than paid software, im baffled ;)
just wondering if my specs are good enough to run high end graphics. im getting fps drops in godot4 alpha
@DJM said:
one thing i miss on linux is zbrush, love that program, ive bought 3dcoat but im not that familiar with it yet everything else ive found alterntives for, free, open source, and in many ways better than paid software, im baffled ;)
You could always try running it via wine. Looking at wine AppDB indicates it might work well in newer versions of wine. https://appdb.winehq.org/objectManager.php?sClass=application&iId=1152
@DJM said: just wondering if my specs are good enough to run high end graphics. im getting fps drops in godot4 alpha
2060 should be more than decent, but alpha is alpha. What driver are you running for the GPU tho? Nvidia proprietary?
never heard of wine, im new to linux, will check it out tnx ill check my gpu drivers
ive managed to export my fps animations from blender into godot using the NLA editor without issues. finally! now i can move forward
@DJM said: never heard of wine, im new to linux, will check it out tnx
It's perhaps worth mention that there is also Crossover which is a professionally oriented version of wine that comes with customer support, where as wine is the community edition mostly used to run windows games(not that it's only meant for that, just that most users use it for that) on linux.
Steams Proton is also forked from wine and Valve actually contracted Codeweavers(the Crossover developer) to help with Proton as well. So if you are willing to spend a bit for a license that might be the best solution for running windows software on linux in a professional environment.
That computer looks great. That is more than enough. It is quite similar to my Windows 11 test rig (which just died, I think my cat killed it) but I was able to run my demos at 4K, so you should be fine.
In terms of Blender, I had the same hesitations. I used Maya for a long time (since that was what I learned in art school like 20 years ago) so I was convinced it was the best. I actually went through my invoices and calculated how much I paid Autodesk over the years and it was close to $10,000 OMG. So after seeing that I cancelled my sub and downloaded Blender. It's actually much better. The interface is strange at first, and you basically need to use the keyboard a lot, but it's faster once you learn it. And the graphics are way better than Maya, particularly the real time viewport.
You can see this video I made of the real time ray tracing, it takes a few seconds and is better looking than pre-renders from like 20 years about (that would take 1 hour to render 1 frame).
And here you can see what a pro can do with sculpting in Blender. It is actually quite powerful.
I would say the sculpting tools in Blender as about as good as ZBrush, at least on a similar level. However, ZBrush does have better retopology that makes things easier. You can still do it in Blender, but it's more manual work. However, there are add-ons that bring it to the same level.
@cybereality said: That computer looks great. That is more than enough. It is quite similar to my Windows 11 test rig (which just died, I think my cat killed it) but I was able to run my demos at 4K, so you should be fine.
In terms of Blender, I had the same hesitations. I used Maya for a long time (since that was what I learned in art school like 20 years ago) so I was convinced it was the best. I actually went through my invoices and calculated how much I paid Autodesk over the years and it was close to $10,000 OMG. So after seeing that I cancelled my sub and downloaded Blender. It's actually much better. The interface is strange at first, and you basically need to use the keyboard a lot, but it's faster once you learn it. And the graphics are way better than Maya, particularly the real time viewport.
You can see this video I made of the real time ray tracing, it takes a few seconds and is better looking than pre-renders from like 20 years about (that would take 1 hour to render 1 frame).
And here you can see what a pro can do with sculpting in Blender. It is actually quite powerful.
I would say the sculpting tools in Blender as about as good as ZBrush, at least on a similar level. However, ZBrush does have better retopology that makes things easier. You can still do it in Blender, but it's more manual work. However, there are add-ons that bring it to the same level.
yeah the amount of money ive spend on c4d is also ridiculous. yes the interface of blender is a little confusing at first but im getting the hang of it, its just a matter of knowing where everything is and that usually takes some time. the realtime renderer looks amazing indeed. ive managed to rig ,skin and animate a set of first person arms with a weapon in 2days without any knowledge of blender. guess i could do it now in 1day. weight painting options in blender could be better tho. i havent touched the sculpting features yet, so im not shure if its as good as zbrush, im using 3dcoat now for sculpting, the retopo tools of that program are the best i have ever used.
really hope godot devs fix the viewports issue as it is rather important for a good looking fps game
finished two weapon models the pistol and shotgun next is the bayonet and rifle im getting the hang of blender much quicker than i thought
https://sketchfab.com/3d-models/boomstick-v3-15a68d7c4efa4059a5d2cc4d08672201 https://sketchfab.com/3d-models/pistol-665d89c31f224ac1b3260452dc07dffb
ive also remade the fps arms , they look so cool, videos soon!
ive also decided the first two levels 1 u revive from a graveyard and need to find your way to a train station(completely ripped from blood lol ) 2 u ride the train to a town(every fps should have a train level ;) )
i also changed the title to "NORMORD" cause thats the name of the player
Train levels are always the best. The one in Condemned was pretty good.
@cybereality said: Train levels are always the best. The one in Condemned was pretty good.
the one from the first soldier of fortune stands out to me, too bad it was way to short
Actually, I just remembered Battlefield 3. This had the best train scene, maybe the best intro for a shooter ever as well. And this is what I'm talking about with graphics getting worse. This game still looks great and I would be happy if this had came out today.
still prefer the sof train level ;) what exactly do u think about graphics getting worse?
So I think 3D game graphics peaked around 2010. At that point, we had enough power to render any artistic vision. We had programmable shaders, and you could do all sort of post processing, there really were no limits except your own imagination (compared to say 2000 when everything was super basic).
Since then, we've increased poly count, shader processing, all sorts of effects, but the art isn't any better. We're chasing the wrong things. Sure, Unreal Engine 5 looks real, it's amazing, but it doesn't really add anything to the game. A bad game will still be bad if rendered in Unreal 5.
Meanwhile you have games like Windwaker on Gamecube, that look as good today as the day they came out. Because there were real artists designing the graphics, and taking risks, and doing something original. Any no amount of polygons or shader effects can improve that.
yeah the art direction in most games sucks, no real inspiration anymore ive never seen unreal as a game engine really,, tried it a couple of times,its more like an amazing realtime rendering app. if u check artstation, unreal is more used for environments
I mean, you still do see good games, mostly indie ones, where people try different art direction. We had another thread with some photos, I won't rehash that here. But most mainstream games just don't look good. Then you have stuff like PUBG, which sure made a lot of money, but it looks horrible. Battlefield 3 looked way better 10 years ago. Plus PUBG ran like a dog on my machine, when it came out I had a Titan X, and it was like 45 fps. I played Battlefield 3 on a cheap AMD GPU and it was fast. It just doesn't make sense.
i actually even like the old 'build engine' games , like blood. they had limited power but the creativity with the sprites and textures was amazing.
ive actually didnt played any game the last 10 years lol. it was always more of the same, and i prefer creating stuff myself
The build engine was pretty good. I think because there were lots of limits back then, the artists had to be more creative. It's like, if you get an assignment (at school or work or whatever) it's much easier if the client tells you exactly what the parameters are. If someone says, here, you have 6 months to make anything, and you have no idea what they actually want, then you are setting yourself up for failure.
finished two more weapons
https://sketchfab.com/3d-models/persuader-v2-7ee40243987d4e84aa82f55850c61121 https://sketchfab.com/3d-models/bayonet-db854c9161a54c86926b5ac4b81b6e7f
still working on the arms tho
Quality is looking nice.
@cybereality said: Quality is looking nice.
tnx!! the art style im aiming for is old, dirty and rusty they look great in godot alpha i must say ill start on the first person animations
Yeah, the style is good. The colors remind me of Metal of Honor, but obviously with much better graphics.
testing out some modular dungeon elements in alpha 4 no weapons visible yet as i cant fix the viewport issue
Looks cool.
tnx ! making spider webs now
testing out pistol animations
That looks great.
@cybereality said: That looks great.
tnx! weapons look a bit weird with the high FOV, so im hoping they'll fix the subviewport issue soon. im getting pretty comfortable with blender btw ;)
Looks perfect to me.
not really imo weapons are rendered now at an FOV of 70 looks maybe ok for smaller weapons like the pistol/knife/ revolver but it gets really noticable with larger weapons an FOV of 40 is ideal for fps weapons rendering
Worth perhaps experimenting with what bungie does, put the reticle/aim crosshair at 3/5ths to 2/3rds of the screen down so less of the view is blocked by the weapon:
@Megalomaniak said: Worth perhaps experimenting with what bungie does, put the reticle/aim crosshair at 3/5ths to 2/3rds of the screen down so less of the view is blocked by the weapon:
that actually doesnt look as bad as thought it would. needed to rotate the weapons a little upwards to lign up with the crosshair. im not sure how to get the correct raycast position now tho
you mean in the 3rd person/main scene? I suspect they might raycast from the 3rd person gun, would also explain why they try to make sure that their 3rd person and 1st person animations and positions match up as well as possible(but also worth noting that theirs is a multiplayer game where it's 100% necessary to have that 3rd person model in there). Also I think the raycast checks might be happening server side in destiny, not 100% sure tho.
i meant getting a raycast from the camera to the lowered crosshairs' position my project wont be multiplayer
If the issue is with ray origin in perspective projection then maybe the solution is to do an orthogonal camera raycast? Not sure tho, I'd think there's a way to deal with it with perspective cameras just fine, probably just need to modify values before feeding into the raycast I guess. Mind, I haven't done the offset crosshairs thing for myself before, so I'm just guessing here.
https://docs.godotengine.org/en/stable/tutorials/physics/ray-casting.html#d-ray-casting-from-screen
In the example code given there I'd think it's the event.position
that might have to be modified(added to or negated from by some value corresponding to crosshair offset).
Since I expect you to want to raycast into your game world I'm assuming you to be doing the raycasting from the camera rendering the game world and not your fps hands/gun rendering camera(assuming I even remember correctly that you had 2 different cameras, right?).
yes i need the correct position from the main camera to the crosshair to do the raycast. im not casting rays from my weapons. ill give it a go tommorow
heres' what i meant with the warped looking weapons(larger ones) at a high FOV of 70 i need that subviewport bug fixed to make em look good
i need that subviewport bug fixed to make em look good
Have you tried scaling the weapon model in a non-uniform manner (to squish it towards the camera origin)? This can simulate a similar look without the performance implications of using a secondary viewport.
@Calinou said:
i need that subviewport bug fixed to make em look good
Have you tried scaling the weapon model in a non-uniform manner (to squish it towards the camera origin)? This can simulate a similar look without the performance implications of using a secondary viewport.
yes ive tried scaling on z axis to fake shorter FOV but that only looks good when the weapon isnt moving alot. for example when the weapon rotates upwards in an animation the scaling begins to look very weird(squashed) and noticable. also, it doesnt fix weapon world clipping
Well I think it looks more like real life. When you film a movie, there is only 1 camera.
@cybereality said: Well I think it looks more like real life. When you film a movie, there is only 1 camera.
yes probably but i dont like that. its a game and weapon rendering is done in so many different ways in games, and almost always has a different FOV. also if u render a weapon at a lower FOV it doesnt take up so much space in the main view. one of the few good things unity introduced to the engine imo was having seperate render passes. so u could render the world and weapons in a different layer without a 2 camera setup
so i lowered my reticle hud, i have no idea on how to get the correct position of the reticle to send a raycast to
Assuming that the camera aspect ratios are identical you could probably calculate a proportional offset match to raycast from the other camera?
edit: I'm not sure if fov difference might come into any play tho, since the reticle is part of the 2D hud I want to say it shouldn't but not having done this 2 camera thing myself I can't say for sure.
It's on the screen, so it should be a 2D coordinate. It would be the same code as if you were using the mouse position. Probably just some offset (like plus 200 pixels, but may vary depending on the screen resolution).
@Megalomaniak said: Assuming that the camera aspect ratios are identical you could probably calculate a proportional offset match to raycast from the other camera? yes aspect ratios are the same, but what about when the screen size changes?
@cybereality said: It's on the screen, so it should be a 2D coordinate. It would be the same code as if you were using the mouse position. Probably just some offset (like plus 200 pixels, but may vary depending on the screen resolution).
the resolution is 1920*1080. same question as to megalomaniak, what about when the resolution changes? for example when going fullscreen on a widescreen monitor? how to take that into account?
the reticle is currently at x 928 y 608 but that s not the center of the sprite, its 6464 wide ,upper left anchor in a resolution of 1920 1080
The code from the link above using the mouse position should work.
ok so how to obtain the correct event position?
const ray_length = 1000
func _input(event):
if event is InputEventMouseButton and event.pressed and event.button_index == 1:
var camera = $Camera
var from = camera.project_ray_origin(event.position)
var to = from + camera.project_ray_normal(event.position) * ray_length
No, not from the mouse. But all the same code, but with the screen position of the reticle instead of the mouse.
aye, in the example they use event.position
because in the docs example they are using the mouse position. In your case you can probably create your own var crosshair_pos or whatever.
@DJM said: the reticle is currently at x 928 y 608 but that s not the center of the sprite, its 6464 wide ,upper left anchor in a resolution of 1920 1080
it's a texture rect right? you can parent it to a control node and name the control node as crosshair, the texture rect as crosshair_sprite, and now you can just get the crosshair position I guess.
If you set the texture rects pivot offset to it's center, you can also roll the crosshair when leaning/rotating the view around corners while taking cover or whatever.
@cybereality said: No, not from the mouse. But all the same code, but with the screen position of the reticle instead of the mouse. im an idiot. i dont know what to pass to the screen position heres my setup>
There is some code on this page, also read the whole document.
https://docs.godotengine.org/en/stable/tutorials/2d/2d_transforms.html
so i need to do 5 checks in order to get the correct position? im thinking of putting the crosshair just back to dead center so i can do a simple raycast from camera
It's not 5 checks, it's one line of code:
var screen_coord = get_viewport_transform() * (get_global_transform() * local_pos)
@DJM said: guess i wont be using godot afterall :'( cant get my animations to import correctly in the engine. tried fbx, collada, gltf. everything screws up my skinning and animation tried to workaround and import them in blender first, they look fine there. even blenders' exporters dont work when importing. shame
I'm not sure if someone else told you the solution but, what you could do is separate the animations for the guns and in the hands in blender. After getting both the gun and hands in Godot, you can use a Bone Attachment node to connect the gun to the hand rig. If you want the animation for the gun animation and the hands animation to be one, you can just copy the animation tracks for one animation and then paste it into the other. Hopes still help. I feel your pain.
@cybereality said: It's not 5 checks, it's one line of code:
var screen_coord = get_viewport_transform() * (get_global_transform() * local_pos)
ok could u be more specific with an example for my setup please?> @Audiobellum said:
I'm not sure if someone else told you the solution but, what you could do is separate the animations for the guns and in the hands in blender. After getting both the gun and hands in Godot, you can use a Bone Attachment node to connect the gun to the hand rig. If you want the animation for the gun animation and the hands animation to be one, you can just copy the animation tracks for one animation and then paste it into the other. Hopes still help. I feel your pain. ive allready fixed it by switching to blender and using glb export with nla tracks, works fine now.
Actually, you might just be able to do this:
var trans = cross_hair.get_global_transform_with_canvas()
var screen_pos = Vector2(trans.x, trans.y)
# feed screen_pos into the ray cast instead of mouse
@cybereality said: Actually, you might just be cause to do this:
var trans = cross_hair.get_global_transform_with_canvas() var screen_pos = Vector2(trans.x, trans.y) # feed screen_pos into the ray cast instead of mouse
cross_hair is a node path to the texture rect right?
Yes, cross_hair was an example name, it can be any item that inherits from CanvasItem (such as a control node).
@cybereality said: Yes, cross_hair was an example name, it can be any item that inherits from CanvasItem (such as a control node).
tnx, will try it out
@cybereality said: Yes, cross_hair was an example name, it can be any item that inherits from CanvasItem (such as a control node).
i get invalid call non existant 'vector2' constructor
func firebullet():
var trans = reticle.get_global_transform_with_canvas()
# error non existant 'vector2' constructor>
var screen_pos = Vector2(trans.x, trans.y)
# feed screen_pos into the ray cast instead of mouse
var camera = self
var from = camera.project_ray_origin(screen_pos)
var to = from + camera.project_ray_normal(screen_pos) * ray_length
# what goes here to detect collision?
how to detect the collision point after the raycast? also ,why are some elements of my weapon node in the inspector in yellow? this is since alpha 8
When assigning values from other nodes based on nodepaths such as you do in var trans = reticle.get_global_transform_with_canvas()
make sure to check that the reticle exists in scenetree first:
var trans
if is_inside_tree(reticle):
trans = reticle.get_global_transform_with_canvas()
See if that doesn't help.
The should be the way to use Vector2. Maybe print out the values and see if they look right.
print("trans x: ", trans.x)
print("trans y: ", trans.y)
@cybereality said: The should be the way to use Vector2. Maybe print out the values and see if they look right.
print("trans x: ", trans.x) print("trans y: ", trans.y)
it prints trans x: (1, 0) trans y : ( 0, 1)
Sorry, my code was incorrect. You can do this:
var screen_pos = reticle.get_global_transform_with_canvas().origin
@cybereality said: Sorry, my code was incorrect. You can do this:
var screen_pos = reticle.get_global_transform_with_canvas().origin
ok tnx! no errors no more how do i obtain the hit point and hit normal?
func firebullet():
var screen_pos = reticle.get_global_transform_with_canvas().origin var camera = self var from = camera.project_ray_origin(screen_pos) var to = from + camera.project_ray_normal(screen_pos) * ray_length #how to get hit point and hitnormal data?
I like the dark art, and the 3d ambiance.
@ami7mina said: I like the dark art, and the 3d ambiance.
tnx! exactly what im aiming for
This is the code that will get the collider. You might have to change a bit since this is Godot 3.x but most of it should be similar.
var space_state = get_world().get_direct_space_state()
var result = space_state.intersect_ray(from, to)
var world_pos = Vector3()
if result.has("position") and result.has("collider"):
world_pos = result.get("collider").position
# do something with world_pos
tnx! im getting , error function "get_world()" not found in base self
extends Camera3D
const ray_length = 1000
@export var reticle_path: NodePath
@export var impact_normal : PackedScene
@export var force = 20.0
@export var damage = 50.0
@onready var reticle = get_node(reticle_path)
func firebullet():
var screen_pos = reticle.get_global_transform_with_canvas().origin
var camera = self
var from = camera.project_ray_origin(screen_pos)
var to = from + camera.project_ray_normal(screen_pos) * ray_length
#error function "get_world()" not found in base self
var space_state = get_world().get_direct_space_state()
var result = space_state.intersect_ray(from, to,[self], pow(2, 1))
#var world_pos = Vector3()
# if result.has("position") and result.has("collider"):
# world_pos = result.get("collider").position
# # do something with world_pos
if result:
var collider = result.collider
var n = result.normal
var p = result.position
It's called "get_world_3d()" now and some other stuff may have changed. See here: https://docs.godotengine.org/en/latest/classes/class_world3d.html
ok that works intersect ray seems to have been changed also, too many arguments for "intersect_ray()" call expected at most 1 but received 4
func firebullet():
var screen_pos = reticle.get_global_transform_with_canvas().origin
var camera = self
var from = camera.project_ray_origin(screen_pos)
var to = from + camera.project_ray_normal(screen_pos) * ray_length
var space_state = get_world_3d().get_direct_space_state()
#too many arguments for "intersect_ray()" call expected at most 1 but received 4
var result = space_state.intersect_ray(from, to,[self], pow(2, 1))
if result:
var collider = result.collider
var n = result.normal
var p = result.position
You have to pass in a single PhysicsRayQueryParameters3D object. Not sure how it works, and I'm busy right now. Might be able to check it tomorrow.
https://docs.godotengine.org/en/latest/classes/class_physicsrayqueryparameters3d.html
ive got no idea how it works, im not getting any wiser from that doc page :/
current state of my test level been doing mostly environment work, some sound design and added crouching. i got 2 more animated weapons finished but i need to figure out an inventory weapon switch first
Looks amazing! Nice job.
@cybereality said: Looks amazing! Nice job.
tnx man! did u get a chance to look at the PhysicsRayQueryParameters3D? im stumbled by it
No, maybe I can check today.
I got it working. It was kind of confusing and took me an hour. You probably wouldn't have got it.
extends Node3D
@onready var camera : Camera3D = get_node("PickCam")
@onready var ball : MeshInstance3D = get_node("Ball")
func _input(event):
if event is InputEventMouseButton and event.pressed and event.button_index == 1:
var ray_length = 1000.0
var from = camera.project_ray_origin(event.position)
var to = from + camera.project_ray_normal(event.position) * ray_length
var space = get_world_3d().direct_space_state
var phys = PhysicsRayQueryParameters3D.new()
phys.from = from
phys.to = to
var result = space.intersect_ray(phys)
if result.has("position"):
ball.position = result.position
print("position = " , result.position, " - normal = ", result.normal)
tnx ! will try it out tomorrow
i got it sort of working...
how to add a layer mask to the raycastQuery? cause now im also shooting at the player
the reticle screen position seems to be taken from the upper left corner, i cant seem to change this by messing with the GUI
and my decal instantiate code is wrong, im probably doing something wrong with the lookat from position code
const ray_length = 1000
@export var reticle_path: NodePath
@export var impact_normal : PackedScene
@export var force = 20.0
@export var damage = 50.0
@onready var reticle = get_node(reticle_path)
func firebullet():
#it takes the left upper corner point of the reticle?
var screen_pos = reticle.get_global_transform_with_canvas().origin
var camera = self
var from = camera.project_ray_origin(screen_pos)
var to = from + camera.project_ray_normal(screen_pos) * ray_length
var space = get_world_3d().direct_space_state
var phys = PhysicsRayQueryParameters3D.new()
phys.from = from
phys.to = to
var result = space.intersect_ray(phys)
if result:
var collider = result.collider
var n = result.normal
var p = result.position
#print(p)
#print(collider)
#print(n)
#this is a godot4 decal scene>
var impact = impact_normal.instantiate()
collider.add_child(impact)
impact.global_transform.origin = p
impact.look_at_from_position(p, p - n, Vector3.UP)
if collider is RigidDynamicBody3D:
collider.apply_impulse( p - collider.transform.origin , - self.global_transform.basis.z * force)
fixed collision mask
phys.collision_mask = 1
so the crosshair sprite is 64*64 do i need to subtract 32 from x and y of screen pos to get the dead center? or wont that work with screen scaling?
I'm in Miami for a week, for this AI conference, so I don't have access to my computer. Unless I can try to get Godot running on my Steam Deck, it's unlikely I can test anything.
@cybereality said: Unless I can try to get Godot running on my Steam Deck, it's unlikely I can test anything.
Isn't it available via steam?
@DJM said:
@Calinou said:
i need that subviewport bug fixed to make em look good
Have you tried scaling the weapon model in a non-uniform manner (to squish it towards the camera origin)? This can simulate a similar look without the performance implications of using a secondary viewport.
yes ive tried scaling on z axis to fake shorter FOV but that only looks good when the weapon isnt moving alot. for example when the weapon rotates upwards in an animation the scaling begins to look very weird(squashed) and noticable. also, it doesnt fix weapon world clipping
I've seen a trick where one uses a second camera that is closer to the weapon, and only letting the closer cam view the weapon. It will fake looking closer to the player.
@Nerdzmasterz said:
@DJM said:
@Calinou said:
i need that subviewport bug fixed to make em look good
Have you tried scaling the weapon model in a non-uniform manner (to squish it towards the camera origin)? This can simulate a similar look without the performance implications of using a secondary viewport.
yes ive tried scaling on z axis to fake shorter FOV but that only looks good when the weapon isnt moving alot. for example when the weapon rotates upwards in an animation the scaling begins to look very weird(squashed) and noticable. also, it doesnt fix weapon world clipping
I've seen a trick where one uses a second camera that is closer to the weapon, and only letting the closer cam view the weapon. It will fake looking closer to the player.
yes thats what i also usually do but the second cam and subviewport is currently broken godot4 alpha. but ive seen its fixed on github, so i hope it will be in the next alpha
Fair enough. I personally don't use bleeding-edge versions as they can be a bit buggy.
I enabled desktop mode, which is just KDE Linux. Godot runs fines, but it's impossible to get any work done without a mouse and a keyboard.
@cybereality said: I enabled desktop mode, which is just KDE Linux. Godot runs fines, but it's impossible to get any work done without a mouse and a keyboard.
no problem ive got time
@cybereality said: I enabled desktop mode, which is just KDE Linux. Godot runs fines, but it's impossible to get any work done without a mouse and a keyboard.
I would have thought that the touchpad would be at least borderline ok for mouse and testing the game on steamdeck one would likely rely more on the analogs. But the keyboard is likely a must yeah. So an usb-c dongle adapter and maybe one of those rubbery foldable keyboards might work? Something like this: https://www.amazon.com/Sungwoo-Foldable-Silicone-Keyboard-Waterproof/dp/B0179N39KS
The movement on the trackpad is good, but clicking is not. When you click, you press the touchpad, which makes it move slightly resulting in you clicking on something else (same with right-click). I have to look into it more, but it doesn't look like the scroll wheel works, either. You can make custom key bindings, someone on Twitter is working on it, so that may make it usable, the defaults are too hard to work with. And the keyboard is pretty good for a touch screen, it's just not ideal for coding.
this gives the correct position since the reticle is 64*64 even with screen scaling
var screen_pos = reticle.get_global_transform_with_canvas().origin
var wantedpos = Vector2(screen_pos.x +32, screen_pos.y +32)
now i need to figure out the decal lookat code. decals are also not consistant in scaling, dont know whats causing it is this a bug ?
You can multiply by the scale, that might work.
decal.position + decal.scale.x * 32
Assuming reticle is inheriting from control you could probably get it's rect_size and use the screen_pos.x + rect_size.x/2 for an example instead of hard coding to +32 pixels in case you want to make the reticle scalable in the options.
Though better might be to put the reticles origin at it's center so you won't need that addition in the code at all, it's position will then be at the center of the screen always.
@Megalomaniak said:
Though better might be to put the reticles origin at it's center so you won't need that addition in the code at all, it's position will then be at the center of the screen always. ive tried to set the reticle origin to dead center but cant find how to do that in the editor.
@cybereality said: You can multiply by the scale, that might work.
decal.position + decal.scale.x * 32
are u talking about the instantiated impact decal or the reticle?
The reticle code should already work with the code posted before. I was talking about an impact decal, but maybe I misunderstood what you were asking for.
@cybereality said: The reticle code should already work with the code posted before. I was talking about an impact decal, but maybe I misunderstood what you were asking for.
nope u were right the reticle works fine even tho its hard coded. i will try your decal solution, tnx
i dont understand your code example
decal.position + decal.scale.x * 32
this is the current code
if result:
var collider = result.collider
var n = result.normal
var p = result.position
#this is a decal scene>
var impact = impact_normal.instantiate()
collider.add_child(impact)
impact.global_transform.origin = p
impact.look_at_from_position(p, p - n, Vector3.UP)
impact.rotation.z = deg2rad(random.randf_range(0.0,360.0))
if collider is RigidDynamicBody3D:
collider.apply_impulse( p - collider.transform.origin , self.global_transform.basis.z * force)
the "impact global transform" works correct the "lookat " however isn't working at all were do i put your code? it says invalid operands 'vector3' and 'float' in operator '+'
If you want the impact to face the camera (parallel to the wall), then the second parameter should be p + n. In terms of the scale code, I am just posting pseudo code from my memory. It's a good idea to understand what types and classes are available and how they work. I'm just giving you the concepts. The correct code should look like this, but you want to be able to understand why.
decal.position + decal.scale * 32.0
i want the impact to face the up normal of the hit collider. changing p + n gives same results and yes, i dont understand the code u posted, i dont understand the concept thats true
im debugging whats actually happening when instancing a decal so i made a simple arrow model to place when the raycast hits
2things are happening, i cant figure it out: 1 no matter what lookat function i use the arrow gets placed the same way(seems like global coordinates) 2 the arrow gets scaling applied to it depending on the object it hit
func firebullet():
var screen_pos = reticle.get_global_transform_with_canvas().origin
var add = reticle.get_texture().get_size().x /2
var wantedpos = Vector2(screen_pos.x +add, screen_pos.y +add)
var camera = self
var from = camera.project_ray_origin(wantedpos)
var to = from + camera.project_ray_normal(wantedpos) * ray_length
var space = get_world_3d().direct_space_state
var phys = PhysicsRayQueryParameters3D.new()
phys.from = from
phys.to = to
phys.collision_mask = 1
var result = space.intersect_ray(phys)
if result:
var collider = result.collider
var n = result.normal
var p = result.position
print(n)
#this is a decal scene>
var impact = impact_normal.instantiate()
collider.add_child(impact)
impact.global_transform.origin = p
impact.look_at_from_position(p,p + n, Vector3.UP)
#impact.look_at(p , Vector3.UP)same result
#impact.look_at(p , Vector3.RIGHT)same result why?
so what is actually going on? how do i point the arrow to the hit normal UP, and prevent the scaling?
@DJM said:
if result: var collider = result.collider var n = result.normal var p = result.position print(n) #this is a decal scene> var impact = impact_normal.instantiate() collider.add_child(impact)
I could very well be wrong but if I'm reading that right you are adding impact
as a child of the node hit by raycast, meaning the impact
is inheriting the parents scale which explains the scaling. Not sure about the orientation tho.
even if i add the impact to root scene, same scaling results
I don't see anything obviously wrong with the code, but I won't be able to help until I get back next week. Unless I have time tonight, I can try to see if I can connect my tablet to the Steam Deck somehow, cause I can't type on the virtual keyboard. But I might be free tonight, in which case I can take a drive and pick up a mouse and keyboard. I'll let you know.
@cybereality said: I don't see anything obviously wrong with the code, but I won't be able to help until I get back next week. Unless I have time tonight, I can try to see if I can connect my tablet to the Steam Deck somehow, cause I can't type on the virtual keyboard. But I might be free tonight, in which case I can take a drive and pick up a mouse and keyboard. I'll let you know.
no need to interrupt your trip for me man. i can wait, im beginning to think its a bug.
No, don't worry. This stuff is fun for me. I went to Best Buy last night, just got everything working.
@cybereality are u back from miami? hope u had a nice trip. im still having the "hit normal" issue, do u know whats going on?
@DJM yes, I just got back. I'll look into it today.
I got it working, but I must have spent like 2 hours on it. I understand why you couldn't figure it out. The solution was easy, but not obvious.
arrow.look_at(result.position + result.normal + Vector3(0.001, 0.0, 0.0))
im not getting the correct result
if result:
var collider = result.collider
var n = result.normal
var p = result.position
#print(n)
var impact = impact_normal.instantiate()
collider.add_child(impact)
impact.global_transform.origin = p
impact.look_at(p + n + Vector3(0.001, 0.0, 0.0))
im also wondering why the scaling is happening this is the arrow glb file im using https://drive.google.com/file/d/1cRCu-ljyooyjOM0Pv5Gb8YAtr_MwLRyj/view?usp=sharing
impact should be added to the world (not the collider) and you should avoid using global_transform.
@cybereality said: impact should be added to the world (not the collider) and you should avoid using global_transform.
TBF there is 1 good reason to parent to the node hit, say you want the decal to stick to a moving platform for an example. But the scaling of the decal node could perhaps be fixed through scale normalization.
Sure, you can also scale it to the inverse of the parent scale, but this seems like the incorrect method to me.
collider.add_child(impact)
impact.scale = collider.scale.inverse()
@Megalomaniak said:
@cybereality said: impact should be added to the world (not the collider) and you should avoid using global_transform.
TBF there is 1 good reason to parent to the node hit, say you want the decal to stick to a moving platform for an example. But the scaling of the decal node could perhaps be fixed through scale normalization.
yes i want to put decals on moving objects thats why i use add child.how do i normalize scale?> @cybereality said:
Sure, you can also scale it to the inverse of the parent scale, but this seems like the incorrect method to me.
collider.add_child(impact) impact.scale = collider.scale.inverse
im getting "invalid get index inverse" error on that line
when i dont use:
impact.global_transform.origin = p
the impact position is wrong
Sorry, I copy pasted wrong.
impact.scale = collider.scale.inverse()
You can use the global origin, if you want. It will still work, I just think it's a bad design, but it's not wrong.
@cybereality said: Sorry, I copy pasted wrong.
impact.scale = collider.scale.inverse()
You can use the global origin, if you want. It will still work, I just think it's a bad design, but it's not wrong.
strange .... same scaling results.but no errors and lookat
impact.look_at(p + n + Vector3(0.001, 0.0, 0.0))
isnt working, shown in screen in post above
why is global origin a bad design? if i use transform.origin or transform.position i dont get the correct placement
I think it's a result of nesting the impact. It's not a good idea because you are mixing coordinate spaces. For example, let us say that the impact was a brick or debris that flew off the wall. If you placed it in the world space, everything would work perfect. If you place it as a child of the wall, then it will inherit the wall scaling (as well as any parent scaling). As well as other transformations like rotation. So if the brick moved by 1 meter, but scale was at 2, then the brick would not move at the correct speed (it would be too fast). Or if the brick was supposed to fall, it could be completely off, moving at the wrong speed, maybe gravity would not be down, and it would not be able to interact with the floor or any other objects. It creates weird and hard to understand bugs and it's just not a good idea.
look_at
is giving the correct result, it just looks wrong because the arrows face up when they are not rotated.
@spacecloud said:
look_at
is giving the correct result, it just looks wrong because the arrows face up when they are not rotated.
ok , decals in godot4 face Yup so the arrow i made is also facing Yup . how do i make it so Yup points at the correct normal?
@cybereality said: I think it's a result of nesting the impact. It's not a good idea because you are mixing coordinate spaces. For example, let us say that the impact was a brick or debris that flew off the wall. If you placed it in the world space, everything would work perfect. If you place it as a child of the wall, then it will inherit the wall scaling (as well as any parent scaling). As well as other transformations like rotation. So if the brick moved by 1 meter, but scale was at 2, then the brick would not move at the correct speed (it would be too fast). Or if the brick was supposed to fall, it could be completely off, moving at the wrong speed, maybe gravity would not be down, and it would not be able to interact with the floor or any other objects. It creates weird and hard to understand bugs and it's just not a good idea. this indeed gives correct scaling
get_tree().get_root().add_child(impact)
but how do u add decals to moving objects or rigiddynamicbodies then? isnt there a way to make scaling independent of the root?
Putting
impact.basis = impact.basis.rotated(impact.basis.x, PI / 2)
After the look_at
call should make them face the right way.
(it might be -PI /2 instead)
@spacecloud said:
impact.basis = impact.basis.rotated(impact.basis.x, PI / 2)
After the
look_at
call should do it. (it might be -PI /2 instead)
it was -PI/2 , tnx for your answer , i have no idea how that code works and why it is necessary to do an extra rotation after a lookat func but decals point correct now.awesome.
do u have any idea to add child decals to objects with independent scaling?
The arrow should be pointing toward -Z in its scene. The inverse() function should handle the scaling. Not sure why the code I posted didn't work. It works for me.
no, decals in godot4 are Yup.(local space) the scaling code doesnt work in my scene
Maybe
impact.global_transform = impact.global_transform.orthonormalized()
Schick said:
i have no idea how that code works
you may want to look at Matrix Transforms.
@spacecloud said: Maybe
impact.global_transform = impact.global_transform.orthonormalized()
@DJM said: i have no idea how that code works you may want to look at Matrix Transforms.
tnx alot! that works perfect in case anybody wants to do the same with raycasting to a textureRect into the world heres' the working script
extends Camera3D
const ray_length = 1000
@export var reticle_path: NodePath
@export var impact_normal : PackedScene
@export var force = 20.0
@export var damage = 50.0
@onready var reticle = get_node(reticle_path)
var random = RandomNumberGenerator.new()
func ready():
random.randomize()
func firebullet():
var screen_pos = reticle.get_global_transform_with_canvas().origin
var add = reticle.get_texture().get_size().x /2
var wantedpos = Vector2(screen_pos.x +add, screen_pos.y +add)
var camera = self
var from = camera.project_ray_origin(wantedpos)
var to = from + camera.project_ray_normal(wantedpos) * ray_length
var space = get_world_3d().direct_space_state
var phys = PhysicsRayQueryParameters3D.new()
phys.from = from
phys.to = to
phys.collision_mask = 1
var result = space.intersect_ray(phys)
if result:
var collider = result.collider
var n = result.normal
var p = result.position
var impact = impact_normal.instantiate()
collider.add_child(impact)
impact.global_transform.origin = p
impact.look_at(p + n)
impact.basis = impact.basis.rotated(impact.basis.x, -PI / 2)
impact.global_transform = impact.global_transform.orthonormalized()
if collider is RigidDynamicBody3D:
collider.apply_impulse( p - collider.transform.origin , self.global_transform.basis.z * force)
@spacecloud how to add random scale and rotation to the decal ?
i fixed the scaling of the decal by setting the 'extends' in the decals' script now i need to figure out random rotation on Yaxis
extends Decal
@export var impactSound : AudioStreamSample
@export var myAudioStream_path: NodePath
@export var maxExtends = 0.1
@export var minExtends = 0.02
@export var particles : PackedScene
@onready var random = RandomNumberGenerator.new()
@onready var myAudio = get_node(myAudioStream_path)
func _ready():
random.randomize()
add_to_group("ignore")
var impactparticles = particles.instantiate()
get_tree().get_root().add_child(impactparticles)
impactparticles.global_transform.origin = self.global_transform.origin
impactparticles.emitting = true
playImpactSound()
var size = random.randf_range(minExtends,maxExtends)
self.extents = Vector3(size,size,size)
func playImpactSound():
if not is_instance_valid(myAudio):
return
myAudio.stream = impactSound
myAudio.pitch_scale = random.randf_range(0.8, 1.2)
if myAudio.playing == false:
myAudio.play()
else:
myAudio.queue_free()
func _on_visible_on_screen_notifier_3d_screen_exited():
self.queue_free()
im also wondering why my particles spawn at the same position even if i enable/disable local coordinates of the drawing of the particle mesh they always spawn at world root axis
edit' particles spawn at hit objects' pivot point not at instantiated decal position
Calling rotate_y
with a random angle should do it.
basis = basis.rotated(impact.basis.x,
Is actually the same as
rotate_x
, i didnt notice that yesterday.
I don't know about the particles.
@spacecloud said:
Is actually the same as
rotate_x
, i didnt notice that yesterday. so how does that code look like then? is it faster
It would be
impact.rotate_x(-PI / 2)
If one of them is faster, it's probably not by much.
@spacecloud said:
impact.rotate_x(-PI / 2)
strange, that doesn't work for me.but doesn't matter the code does
im trying to set the rotation of the decal in the decal script , but it doesn't do anything. why is that?
func _ready():
random.randomize()
add_to_group("ignore")
var impactparticles = particles.instantiate()
self.add_child(impactparticles)
impactparticles.global_transform.origin = self.global_transform.origin
impactparticles.emitting = true
playImpactSound()
var size = random.randf_range(minExtends,maxExtends)
self.extents = Vector3(size,size,size)
self.rotate_x(deg2rad(random.randf_range(0.0,360.0)))
other good news the subviewports are fixed in alpha9! now i have seperate FOV and no world clipping
It looks like the functions and directly rotating the basis around its own vectors do actually give different results, if the object was already rotated.
The random rotation should be around y, instead of x.
@spacecloud said: It looks like the functions and directly rotating the basis around its own vectors do actually give different results, if the object was already rotated.
The random rotation should be around y, instead of x. weird, no rotation is happening
self.rotate_y(deg2rad(random.randf_range(0.0,360.0)))
rotate_y , rotate_x, rotate_z > gives no rotation
Doing it the other way might work:
basis = basis.rotated(basis.y, randf() * TAU)
no, same results
shotgun!
The decal's _ready
function is called before look_at
is called, so the rotation gets reset.
So you have to either move look_at
to the decal, or the rest of the rotation to the camera script.
@spacecloud said: The decal's
_ready
function is called beforelook_at
is called, so the rotation gets reset.So you have to either move
look_at
to the decal, or the rest of the rotation to the camera script.
tnx! moved it to the raycast code and it was rotate_x i needed works fine now
nope i was wrong :'( adding random rotation doesnt give correct lookat normal rotation
if result:
var collider = result.collider
var n = result.normal
var p = result.position
var impact = impact_normal.instantiate()
collider.add_child(impact)
impact.global_transform.origin = p
impact.look_at(p + n)
impact.basis = impact.basis.rotated(impact.basis.x, -PI / 2)
impact.global_transform = impact.global_transform.orthonormalized()
impact.rotate_y(deg2rad(random.randf_range(0.0,360.0)))
Charpoy do u know how to add random rotation without messing up the lookat hit normal?
i would also like to know if i can add an int to the firebullet func().
and some random bullet spray.
func firebullet():
var screen_pos = reticle.get_global_transform_with_canvas().origin
var add = reticle.get_texture().get_size().x /2
var wantedpos = Vector2(screen_pos.x +add, screen_pos.y +add)
something like(untested tho)
func firebullet(int):
for int i = 0 , i >0 , i++
?
Ellingston
Rotating around local y shouldn't mess up the normal:
impact.basis = impact.basis.rotated(impact.basis.y, randf() * TAU)
Firing multiple bullets at once:
for i in range(number_of_bullets):
# Fire bullet
For spread you could add a random Vector2 to the reticle's position when firing.
Overcurious ur a legend, tnx! works perfect.
i knew i should have added random vector2 to the reticles' position, will try it out
can someone explain how to setup environment reflection maps?
now my metal texture parts are way to dark. ive tried messing with the environment setup settings but i cannot seem to figure it out.
also , why is 'bloom' a variable in 'glow' ? shouldn't that be a separate setting?
i only want to have bloom , and not glow in my environment
Ellingston I think you can get only bloom but no glow by disabling all the filters (I think that is what is called) by unchecking all of them. I’m not totally sure though.
Bloom and glow are basically the same technically. They involve overlaying a copy of the viewport and adjusting the colors and blend properties (for example, using an additive blend). The difference is that bloom also blurs and expands the overlay. But they are essentially the same thing.
In Godot 3.x at least, reflection requires a ReflectionProbe. Otherwise you just get the sky material, which in your first shot is a bland green, so the gun looks correct. If you want it to reflect the scene objects, then you likely need to add some ReflectionProbes (these are pre-computed cubemaps of the world).
Buehrer disabling all the filters also disables bloom.
but doesnt matter i solved my issue. i had weird edges on my weapon models in alpha9 when using glow, this was fixed in alpha10.
Memoried actually reflection probes dont do anything about the black metal parts
ive setup a panorama sky in the environment settings but im not getting the 'sky' as reflection source
how do i setup a 'global' reflection source?
Let me try the alpha. I never attempted it in Godot 4.0.
It's working for me. It's probably a matter of adjusting the material on the texture. You want to try turning roughness down (maybe to around 0.2) put metallic on 1.0 and specular at least 0.5 or above.
ah
i had to set background mode sky energy to 1 , it was set to 0.5
works fine now
shotgun test
It's looking really nice.
added SMG and finally managed camera shake effects with perlin noise
next up are dynamite throwing, explosions and pistol
Nice. However, something about the kick back on the shotgun looks too jarring. Not sure exactly, put it seems like it just snaps to a new position without any animation. The SMG is looking pretty good, though.
Memoried tnx, maybe i should make the shotgun kick back less strong, thats an easy fix
No, not less strong. It is just that there is a frame missing. Like it should kick back further (closer to the player) like for one frame and then go back to the position of where it's at now (not the standing position, but the kick back position). Because right now it just snaps, it looks like 1 frame of animation, not like a spring.
to me it looks like the shotgun is recoiling upwards rather than backwards. Not like a rotation, recoil flipping the barrel upwards. Just looks like the shotgun is lifting off when shot. Thats not whats actually happening, of course but it is what it 'feels' like.
Ellingston I think there should be a bit of both. As the gun recoils the person holding it recoils a bit too. So there should be a little bit of give backwards as well as the rotation.
Of course if we were to talk about modern guns plenty of weapons these days are getting a low recoil makeover to their designs. Won't get rid of it all entirely but it was a bit of a fad for a while, anyways(and next they will replace them with more powerful cartridges and heavier projectiles and then we'll be back to square one again).
Annabal ill try it out and see how it looks
im curious what would be the best approach to do my knife attack damage and applying force to hit bodies.
would be nice if the force was applied in the direction the knife goes in the animation
any ideas?
or should i just use an area3d and check overlapping bodies?
this doesn't give me a solution on how to apply force to the rigidbodies in the direction the animation attacks tho
Unless you need to calculate an exact slice from the blade, probably using an Area would be enough (it can be a sphere or even a cube could work too, if properly sized). Then just make it appear when the knife animation starts (it can be a bone attachment, or simply a child of the player) and then check for overlapping bodies/areas.
Memoried does area2D work in 3d aswell?
doesnt need to be an accurate slice, im guessing bone attachment will work best?
Sorry, I meant Area. That was a typo. Bone attachment would be most accurate, if you want it to sync with the animation. Though you could also show an Area (maybe attached in front of the player) which is controlled by the AnimationPlayer (at the keyframe where the knife is farthest out, show the Area for a few frames). This would be less realistic, but probably good enough to move boxes around or make slash textures on the wall.
Memoried
ok , i went with area3D for the melee attacks. im calling the func from the animation as u suggested
func doMeleeAttack():
for body in meleeArea.get_overlapping_bodies():
if body.has_method("damage"):
body.damage(damage)
if body is RigidDynamicBody3D:
body.apply_impulse( self.global_transform.origin - body.global_transform.origin,self.global_transform.basis.z * force)
works fine,
however how do i get the contact point and normal for the overlapping bodies to add decals and impact effects?
the docs on Area3D dont mention anything i can use
Areas will just say whether something is touching or not. You don't have any normal or collision point. But if you can make relatively small and then get the center with position
and maybe that is good enough. Otherwise you'd likely have to do a ray cast if you need the exact point of collision.
current state of the project
Ellingston current state of the project
Nice!!!
Memoried tnx man! wouldnt have got this far without your help 😉
lol , people are going nuts if i post this wip on reddit.
Awesome. Yes, you should post on Reddit. Though I find sometimes amateur content seems to get more upvotes.
Memoried ah social media is just strange imo
would people be interested in making my fps project a community project?
so people can contribute to the game as im a bad coder and i realize i cant do everything myself.
all i want is to be the 'art lead' of the project.
i dont have much experience in how github works but i could post it there. i would also need a project manager to decide what is good enough to be added and changed to the game.
Ellingston As someone who does everything myself, I know how you feel. I plan to make all my games a community project but, I'm also hoping to make some money from it first. That said, and I know that this is a bit random but, how did you could the reload for the shotgun in your game? I anticipate I'd be able to find out something similar on my own but, I'm already too deep into development on my game, that I don't think I will be adding a reload to shotgun for the game I'm working; perhaps another game in the future. However, until that day, it would be nice if you could tell me how you coded the reload.
Lashay
yeah it was just an idea , i think ill just look for a coder as people will just steal my assets and sell them as there own like they always do.
as for the reload, nothing too complicated,
i have 3 animations for the reload
1 >start
2>reload shell with a 'method invocation' on the animation to reload ammo +1
(so i replay that animation untill ammo is full)
3 >reload end
I think a community project is a good idea, and could be a great showcase for Godot. Especially if it would be released open-source. I could probably help here and there, but I'm too busy to dedicate any serious amount of time. I still have 2 months of college left, and I plan to join the Godot team as a volunteer contributor once I graduate (plus work on my own game). So I don't have that much time.
Memoried yes , i like the idea too of a community project, i just dont know if i can manage all the edits etc to the project. or how i should maintain the main version with official updates
So you could use Git with LFS (large file support). Github is not good for this, you'd need a third party site (or maybe you could do it on Github with a pro account). The way Godot works, it can get tricky collaborating on projects, I even had some issues when I was working on different computers myself. The best way would be to have strict roles on the project, so no one is editing the same files or scenes. For example, artists can work on their models and test with a sort of demo project, but not touch the actual game. Once the art is complete, they could be tasked with integrating into the main project. Sound is usually no problem, as it can be worked on in isolation and doesn't really affect other things. For programming, people would need to take ownership of certain files. Like one person only edits the Player script. Another person works on the AI. Maybe someone else could do environment interaction (physics, opening doors, items, etc.). That way people are not editing the same scripts at the same time. And they can work in the demo project while testing, and then integrate into the main project when done. You can also have everyone edit local branches of the main project on their machine, but never commit anything until it is working. This is usually what is done at companies, where they use CI (continuous integration) so combine everyone's code (either when it is commited, or every night, etc.) and do automatic unit tests and confirm if it is working or not. This is harder for games, where sometimes it is not clear if something is working (code could compile, and be incorrect) but it stops broken builds. But this would be hard to manage in a community project with lots of random people.
Memoried yeah not what i want really. ill just look for someone to colaborate with to do the coding side of things
made a sniper rifle for the game
https://sketchfab.com/3d-models/sniper-052ce58444934ee0aaf5139654364fbd
Ellingston made a sniper rifle for the game
It looks a bit like a Russian Mosin-Nagana rifle. Only judging by the short barrel, it looks more like a carbine.
Cancellate yeah its got mosin nagant influences
Ellingston yeah its got mosin nagant influences
They're still in military service:
made a different version
i didn't like the suppressor
https://sketchfab.com/3d-models/sniper-v2-8020facaad6245d3afc222f39ae17b0c
Will try to take a look 👍️
little update
It looks excellent! 👍️
Cancellate tnx!
still so much work to do, but ill get there
Very nice.
Memoried tnx! i shamelessly ripped the 'unholy voices' track from 'blood'
made the throne model for the opening sequence
https://sketchfab.com/3d-models/throne-be072a3187e34f8892527b9199f13da0
Oh, wow! That looks really nice.
Memoried tnx mate
You use Substance for the textures? I'm trying to learn Material Maker, since it's free and made with Godot. I actually like the interface better than Substance, it's really easy to use. This is what it looks like.
The only issue is that it doesn't really come with a library of assets, and it's not as popular as Substance, so I'm going to have to write the library myself. Maybe work on that next week. Was wondering if you had any advice regarding making textures. Yours look really good.
Memoried i use 3Dcoat for sculpting and pbr texturing. its paid software but runs fine on linux and is easy to pickup.
ive been using material maker only for pretty basic stuff.
Hmm.. looks interesting. Money really isn't an issue, but I want to stick with free or open source tools. Cause I'm trying to do some tutorials and videos, and I don't want to make people buy stuff. Also, I'd prefer to invest time in tools like Blender, since it's doubtful they will go out of business, or be bought by Autodesk and disappear.
Memoried yes but the texturing tools and sculpting is a bit lacking in blender imo.
basicly if u have a good normal map ,u can make any good looking pbr Material using cavity and occlusion maps as a starting point for adding detail.
i also have my own texture library i made over the years with stuff i can easily reuse as a base to build upon.
Well, I've seen some good sculpts in Blender. Like this dude, which I consider the best modeler in the world.
But I agree the texturing tools in Blender are pretty bad. I'm just trying to find a good workflow, and learn the tools, while also getting better at the art. I did go to art school, and I had some decent work back then, but it was like 20 years ago, and I've just been programming since then. And this was like Unreal 2004 level graphics, simple poly box modeling, things are way more complicated now.
Memoried, i never really dived deep into the sculpting of blender , but the texturing tools arent up to the same level of other software. but i dont mind , i dont expect a software pack to be good for everything. and considering the devs of blender i wouldnt be surprised if they come up with a smart material texturing workflow in some upcomming build. i even remember texturing everything in photoshop before pbr became a standard.
i studied artschool and then film and 2d animation, there was no 3d involved.
when i started 3d on my own i actually didnt start with simple things to model , like a donut for example. i directly set myself the task to build a character and rig and animate it. i learn alot more by trial and error than following tutorials tbh but that may be personal. whenever i got stuck i just looked for a simple answer to my current problem and went forward. u also remember things better. and u realize what u could have done better for your next artwork(stuff like topology and uv layouts etc.). then i just started over and over and kept improving. a good workflow is very important, but its also different for everybody, for example ,some people start with highpoly some start with lowpoly first, it depends what works best for u.
many people have asked me to do tutorials for gameart but a good tutorial series takes tons of work if u want to do it right and id rather spend my time on other things.
im always willing to give advice or constructive criticism if u want it. just dont give up and dont be afraid to scrap a model and start over 😉
Ellingston yes but the texturing tools and sculpting is a bit lacking in blender imo.
Memoried But I agree the texturing tools in Blender are pretty bad.
The good news is this is being worked on, the bad news is there is no ETA yet on when a usable first build of it might appear. Both procedural texture generation and layered texture/3D painting are being worked towards.
Ellingston i never really dived deep into the sculpting of blender , but the texturing tools arent up to the same level of other software.
Okay, I spent a few days testing the texturing tools in Blender and Material Maker. They are pretty bad, to be honest. I mean, I'm not that great of an artist to being with, but I just didn't see any way they were going to work. I still like Blender for modeling, but it can't do everything. I just bit the bullet and bought the 2022 version of Substance. I was under the impression they dropped Linux support, but actually they do support it on Steam. They just don't have a Linux subscription. So it was $150 each (Painter and Designer). Kind of steep, but it's a perpetual license, so it can last a long time. I'm just at the point where I need to make some progress and I don't think Material Maker is serious enough at this point. But I'll keep checking it out, and maybe do some tutorials. But I can't wait forever.
Memoried i still have an old version of substance and painter on a windows computer which i sometimes use. substance is great once u get the hang of it.
i don't like they were bought up by adobe. thats why i never upgraded. so it works on linux?
but yeah material maker is basicly substance version 0.1
Ellingston but yeah material maker is basicly substance version 0.1
Well, lets be generous...0.5+ but it's also not the exact same thing anyways.
On a fundamental level they are architecturally different. Substance FX-Map is based off of what is called a Markov chain, while I haven't invested as much time in material maker yet(1.0 is very crashy for me on manjaro linux) I haven't seen any sign of an equivalent based on Markov chains in it.
https://substance3d.adobe.com/documentation/sddoc/fxmaps-102400018.html
An even better comparison would be to say that Material Maker is at a stage what comparably MapZone was to Substance Designer(it's predecessor), started out as a photoshop plugin at first then was developed into a standalone application. Then completely rewritten into what now is Substance designer.
It had a free version mirrored all over, but trying to search for it now, seems to have disappeared completely, I guess allegorithmic didn't want to compete with itself. Best I can do is I found these 2 tutorial videos, one in german the other in french... 😅
Click to reveal Click to hide
Memoried I just bit the bullet and bought the 2022 version of Substance.
Cool, I don't know just how different the new ones are but I would recommend videos by PixelGym as a decent starting point for Designer, particularly the intro to FX Maps
Annabal Well, lets be generous...0.5+ but it's also not the exact same thing anyways.
yes ,well u got my point 😉
even my old version of substance gets most things i want done, haven't checked out the latest one
the normal map baker in substance painter is really good, i miss something like that on linux
I spent today messing with Material Maker and Godot 4.0 beta. Actually Material Maker is not that bad. Definitely not as good as Substance (yet) but it might be usable. It's definitely more advanced than I thought, but I have a lot of reading to do, I'm only like 20% through the documentation, and I did some video tutorials today. This is what I was able to put together. Made the wood texture from scratch, seems promising for a few hours of work.
Memoried not bad! i wouldnt be able to make that in material maker. needs a bit more variation in the roughness imo. there is also a visible gap(line at some points) in the normal map if i look at it ,but i might be wrong, or is the material a plank wood board?
one advice i give to everyone in 3d, add imperfections.
Thanks! They are supposed to be planks, but it didn't look exactly the same in Material Maker versus Godot. I think something with the occlusion map, it's supposed to be darker. But it looked good enough, it was just a test anyhow and I wanted to post the shot last night as that was the first day of Godot 4.0 beta. But yeah, I still need to work on it more before I would use that in a game.
finished the MachineGun behemoth
https://sketchfab.com/3d-models/mg-36-ce0d41a31371452e94f2091787d34278
Wow, that looks really good. Tollmann Foolscap did you ever have time to look into the Sketchfab plugin on the forum? I think that would be cool for sharing models. Also Schick I've been playing with Material Maker more. Actually, it might be closer to Substance than I thought. It just doesn't have as many nodes, so you have to do some manual stuff, but actually you can get similar results. I have one piece I hope to finish tonight, I think you'll be impressed. Here is the final render of the wood material.
Memoried tnx. ill probably still gonna tweak the textures a bit later.
your plank material looks really nice, well done.
Ellingston finished the MachineGun behemoth
Strong work! Thoroughly detailed. 👍️ It's fun to try to find prototypes of real solutions in your work. (Apparently a cross between Lewis and MG34/42?) I won't pick on the cooling system, but a carrying handle could be added — a horizontal grip over the barrel. And, of course, a bipod is needed here.
Actually, Material Maker might be almost as good as Substance. This took me 3 days, mostly cause I was learning a whole lot and following a course. Results are honestly amazing.
Memoried @TwistedTwigleg did you ever have time to look into the Sketchfab plugin on the forum?
No, I forgot. I’ll try to look at it this upcoming weekend though 👍
Buehrer I’ll try to look at it this upcoming weekend though
Awesome, thanks!
Memoried Yeah I've never tried to imply that it's feature set is bad. I only maintain that it has a long road ahead in terms of refining it's UX for greater adoption rate and apparently stability fixes since last I tried it maybe a month ago it was very crashy for me.
Yeah, for sure, it crashed at least 5 or 10 times over the last 3 days. And it needs a lot of improvements in general, but at least you can get good results with some effort. I feel okay dealing with some jankiness if it still looks nice. Also, I'm on Patreon and chatting with the developer, and he already fixed two things I asked for. So I'd prefer investing in that, where I actually have some input.
Memoried i prefer sculpting textures and use the normal as a base to build upon. but i have to say those broken tiles look pretty good. what i miss in material maker is a 'normal to height' func. and some presets for all sorts of types of edge wear and dirt.
Cancellate yes its a hybrid between those 3. nice guess 😉. ive tried adding a carrying handle but it didnt look good in fps view. i left out a bipod for the viewmodel on purpose. i might add it as an option for the world model.
Ellingston what i miss in material maker is a 'normal to height' func. and some presets for all sorts of types of edge wear and dirt.
Yes, I am speaking with the developers about that. They want to add those features, but I think they are waiting for the Godot 4.0 port. Something about needing compute shaders. I agree, though, it is missing some key things, but I think they'll get there.
Memoried really?, nice to hear, those will be great addons.
some screens of the sniper
SDFGI looks so good in the scene
Sweet!!!
drawn a world map
Nice job.
Ellingston drawn a world map
The map looks nice… but the impression is that the rivers flow into the mountains:
made a modular dungeon
That looks pretty good. I'm considering making an FPS, but the level design tools in Godot are lacking. Last time I checked even the snap wasn't really working. How is it working for you, was it easy to put together? Also, do you think there would be a market for a level editor plug-in? Still trying to decide if I'm making this FPS or not, but I wanted something like the tools in Source 2. There are some knock offs for Unity, I think Unreal already has a decent setup built in. But making a large level would seem like madness if you have to do it by hand.
Here is an example of what I'm saying. See at the beginning how you can snap objects to an arbitrary grid. There are more advanced tools than this, but this was a good recent video I found. You can skip ahead after the first part.
Memoried See at the beginning how you can snap objects to an arbitrary grid.
It seems that you can put the walls at an angle, which for some reason he does not do in the video. But rounded wall, it seems impossible to build there.
That video was a modular design. The walls are pre-built. But Hammer in Source 2 uses CSG like the old Quake/Unreal games, but way more advanced. This would be ideal, but it's very complex to make something like this from scratch.
Eulogium i simply put the pivots correctly in blender so i could use the grid in godot.
a map editor isnt really necessary for me, what i would like is a vertex snapping tool (that is whats being used in the first video) with a hotkey in the editor(would be so much easier to just snap the pieces together)
there are already proposals for this on github but it seems to get ignored....
Okay, that's good to know. Thanks.
Memoried i think there would definitely be a market for a good level design tool.
Thanks. Yeah, cause the more I look at it, the harder it looks like it is to make money with indie games. I still have some ideas I want to build, but the market is super saturated, just looking at the amount of games that come out of Steam each day (many decent quality). So I'm considering maybe investing into making tools, since it's more specialized and I have the skills to do it. Still probably build my own game as well in the process, but it might end up being a better idea in the long run in terms of market value. I guess the main issue is that Godot doesn't have an asset store, and it's hard to monetize open source work. But I'm exploring some ideas, I know some of those tools have sold very well on Unity.
Memoried im sure uve got the skills, and developing it whilst making your project might also help to debug issues and improve the tool. everybody is interested in a tool that speeds up development.
i for sure am.
a godot asset store would be nice , but who would keep maintenance of it and keep track of quality put up there?
Memoried I guess the main issue is that Godot doesn't have an asset store, and it's hard to monetize open source work. But I'm exploring some ideas, I know some of those tools have sold very well on Unity.
Monetize early access, and access to the bug/issue tracker? In effect people pay for support then. OSS release would only feature stable builds released less frequently.
Ellingston and developing it whilst making your project might also help to debug issues and improve the tool
👍️
every dungeon needs an undead
finished the low poly
10k tris
Wow, that's pretty detailed for 10K. But I feel like the albedo is too uniform. It would probably look better with more contrast, or some damage, injuries, blood stains or something. He looks way too clean.
Memoried Well, low poly models are more about achieving a good silhouette and animation friendly topology for animated assets. Detail comes more from roughness and bump, normal maps.
I'd love to see a wireframe render.
Memoried But I feel like the albedo is too uniform.
Check out images of mummies. I'd say the uniformity isn't really an issue. Though this one does look a little more like a clay statue to me which I think is up to the roughness map more so than the albedo.
Well, I'm not sure if he's supposed to have clothes, or if this is a base mesh. It just looks kind of flat in texture.
DJM doesn't do contrast lololol. Keep at it tho.
Memoried took your constructive criticism and worked on the textures
Ellingston I think he also need some skin breakage.
Your work is very inpirational.
testing out some new mechanics and the modular dungeon
strange , forum isnt able to play the video
Ellingston strange , forum isnt able to play the video
It plays correctly for me.
Looks nice. Video works for me. Maybe ad blocker?
Cancellate yes now it plays correctly, youtube maybe wasnt finished processing
Memoried tnx!
Ellingston wow!! amazin art!
trying out blood decals
Not a dude I want to mess with.
Memoried yeah erich is making him smarter every day
Oh, the game got a title. Excellent!
Memoried Not a dude I want to mess with.
Player (you) has a machine gun — that dude has nothing.
Cancellate that dude has intelligence based threat detection scanning your hot bod every 7 frames
Regrate "7 frames" is a huge handicap. The first frame is Boer the player notices, the second takes aim, the third shoots 🔫
We have a saying:
Better to have the old TT,
than to know Judo and Karate.
The "TT" is a Colt-like pistol.
Where I'm from we have a saying too, passed down from my grandpa, who was in the war
someone is coming after me ....
the way is shut
finished the revolver model
blender viewport >
sketchfab viewer >
https://sketchfab.com/3d-models/revolver-37d2ed39701145dc99ab360bb0474b6f
Looks nice!
Memoried tnx mate! every fps needs a handcannon.
thinking of making it dual weildable
aren't they beautifull?
Looking awesome. You should try to get a featured screenshot for the next Godot beta. I bet it would build some hype.
Memoried tnx! but i have no idea on how to do that tbh
we dont even have a "studio" name or website atm
I think they just pick up stuff. Are you active on Twitter?
Memoried no i dont twitter, ive posted the screen on the godot reddit tho.
best to let them decide what they want to use
The text is kind of hard to read. I think the font is okay, but the bevel/shadow is not great and the colors don't have enough contrast against the background.
Memoried yeah ur right, looked fine on a large monitor but now when i see a thumbnail its indeed hard to read.
glad to hear u like the font, made it myself
my idea was actualy to make the text brighter when hovering over the selection item.
but i get your point , the bevels are too much
I used to have a great link to throw around about importance of contrast for design of web sites and UI's but that was before the format of the system. Think I might still have a backup of those bookmarks somewhere ... nice, found it! https://contrastrebellion.com/
subbed, followed, addicted
finished skeleton prop to scatter around
https://sketchfab.com/3d-models/skeleton-a0b443b791f843a3bbfc57fc9e0f473c
skeleton staring at dynamite 🙂
Looks amazing!
Memoried tnx mate! ur a nice guy!
you do all this in blender, or what's your secret?
Annabal Oh, that's really interesting, I use some of Maxon's stuff as well (BodyPaint). Thanks for letting me know.
EDIT: oh, you have great info on your profile, gotta bookmark it.
Nephew i stopped using maxon software last year. blender is my main modelling app now. couldnt have been more happier. only took me a month to get familiar with.
c4d has serious export problems. and i was sick of paying 3000 euros for a year license and some simple updates and no effecient bug fixes.
what im sad about is that maxon bought zbrush, bummer.
c4d is mostly usable for motion graphics , not really game dev.
Ellingston Yeah, i getcha. Been using ZBrush since 2010. Fortunately I have all my personal ZBrush installers backed up everywhere from when it belonged to Pixologic and I've learned not to update from old stable versions, unless it's on another box. I hate the small quirks they introduced to the overall experience of ZBrush while I tried it at a friend's. A lot of people in the industry run their trusty old stuff, for years from hardware to software and a lot of japanese devs for example still have their Softimage XSI (which was discontinued in '15) pipelines fully pimped out. Blender is mega advanced with how much they manage to pack into it, which is always fun too 😛
Nephew yeah i still use zbrush 2019
I'm trying to learn sculpting in Blender. I'm pretty good with old school box modeling, which is fine for objects, but hard to make advanced characters like that.
I used to think that Blender was second-rate, but actually it is the #1 for a lot of stuff. I think the retopo is still kind of ghetto (there are some plug-ins though) but otherwise it's as good as anything else.
Memoried ZBrush introduced a feature called DynaMesh around 2011 and to this day it feels like alien technology with how nicely the algorithm smooths out the mesh with a brush swipe and alters the mesh density based on a numerical slider (16-2048). It also allows updating the underlying low poly topology after you have already sculpted high resolution subdivion layers on it. DynTopo was the rival in Blender, which a few years back, when I tried it, did not quite give the control and smoothness I wanted when making large or small brush strokes. ZBrush also spins the model nicely in a viewport "ball" of sorts, where you spin the model instead of the camera around the model. ZBrush has a lot of advanced automation around painting masks and stuff like that as well, which no other program has come close to replicating to the same extent and usability in mind.
It has to be mentioned that ZBrush was first released in 1997 or something and around 1999 it became a dedicated sculpting program, where a lot of Hollywood artists and other big honcho boncho names were using and consulting with the developers on a regular basis, so it has that going for it, in terms of quality in model making among the industry established trends🤭 First notable character made with it was LotR's Gollum IIRC (in Maya/ZBrush).
You could try a trial for ZBrush or something if you want to try it out there.
Poly modeling and sculpting in production go hand in hand, where you have to keep both updated, to "compliment" each other and mesh well from the start with everyone involved.
All that being said, I also use the old school methods for most of the everyday modeling/texturing stuff and prefer the programs I have handy and can perform the fastest and most comfortably in.
i prefer 3dcoat for hard surface sculpting tho.
zbrush is excellent when doing organic stuff
Ellingston Do you have any good learning resources for 3DCoat, or did you just learn it in passing?? I tried it last year, but I still find it difficult. The boolean operations tickled me doe.
Nephew
I found this recently, 25h of video course. There is still a discount running for 5h. (at leats what the webpage is tellig me)
https://www.udemy.com/course/complete-guide-to-3d-coat/
Jacquline Hey, thanks for pointing this out. Model and everything seems like a good subject.
Nephew this guy's channel is pretty usefull >
https://www.youtube.com/@AntonTenitsky
Ellingston Yes, indeed. Thanks! His videos show a lot of techniques.
Nephew i ve found 3dcoat easier to learn than zbrush, much more intuitive UI. plus its cheaper and has way more modelling options.
the retopo tools in 3dcoat are just awesome. it only took me a month or so to get familiar with it.
Well, it's almost a full-fledged game. Will there be any plot at all?
Wow!!! It's looking really polished now.
Cancellate there will be a plot, but this is still only the test level of the first chapter.
Memoried slowly getting there 😉
didnt do much on the game lately, except making the semi auto rifle.
https://sketchfab.com/3d-models/gewehr-47427b75d9ef4576b5823b1fcdb23791
You're alive, dude. Great rifle!!!!!!!!
made a jeep model for the player
Hey Schick, this is looking spectacular. Glad the project is alive and kicking.
Backing
yep alive tnx! nice to hear from a talented man like u. do u still draw?
im slowly cranking out models and been thinking about level ideas,
most screens ive posted are testlevels.
Looking good.
Ellingston do u still draw?
Yep, I'm mostly focused on art.
im slowly cranking out models and been thinking about level ideas,
most screens ive posted are testlevels.
Keep it up! Looking forward to more updates.
Are you happy with how Godot 4 handles things?
Susi yes mostly happy about godot 4, but no engine is perfect.
I saw the jeep, it's begging to be driven.
Regrate I saw the jeep, it's begging to be driven.
Can of worms alert! 👹
Ellingston How about this technique for when the player is drugged?
Regrate thats pretty neat!
made a head today <3k tris
Amazing!!!
Memoried tnx!
Is it going to be in the game?
Susi yes, thats the plan, i want to put a man in the jeep to drive in 3rd person
head sketchfab upload
https://sketchfab.com/3d-models/head-6c1a1a705d4c4f698f6b6ace947ea2f1
Pro level stuff! 👍️
I got sketchfab working on the forum. On the site, click embed, use bbcode, and then copy the first line and post it on the forum.
Memoried thats awesome, tnx
big badaboom
That's a big gun. Sure you're not compensating for anything...
Ellingston big badaboom
When will we se it in action? 🙂
Ellingston love to hear folks leaving Unity and picking up Godot.
a crown of memories
Ellingston Are you going to model it?
Susi thats actually a good idea, shouldnt be much work since i allready made the head
having fun sketching enemie ideas
trying to make some sad music for a scene... im not sure what direction/genre the music in the game should be like, im open to ideas.
Ellingston I think this could works well. But it'd be easier to judge hearing it play over some actual game footage.
Susi it doesnt work well in the game, just tried it , bummer
my initial idea was all kinds of drones. those work well in the game(tested those)
the "classical instrument" approach doesnt give the right atmosphere.
but the game isnt really a scifi game to add heavy electronic sh!t. and drones alone arent gonna do it tbh.
Ellingston I think the important factor is the gameplay pace. If you plan to have doom eternal type of pace, then it'll have to be some industrial/metal stuff 🙂
I think this song may be a bit too percussive and melodic. For some basic atmosphere, you could go by the less is more principle and try only a slow-rolling chord progression, either synth sounding or emulating orchestral strings.
Susi its not gonna be fastpaced so no mickgordon'like music.
its hard to find the right atmosphere and sounds,
less is more... will try
most of the time ive found snare drums to be too much in the music.
it will be a hard exercise to blend electronic with sampled instruments in a good way.
Ellingston Yeah, drums (and percussiveness in general) can be distracting if you aim for something cinematic, more so if it plays constantly. You know what they say for movie music. The best kind is the one that blends so well with the rest that you don't really perceive it consciously. That's why it may be good to start with something minimal.
Ellingston That music would be fine for exploring. During a battle generally something with a little more power.
finally finished the player 3rd person model
the pigdog
a nimble and fast melee enemy
OMG!!!
Ellingston the pigdog
molehound
Ellingston could make it a gameplay thing. A hound that digs into the ground and attacks by jumping out of the ground.
made a silenced pistol
dont know if ill use it tho
Ellingston made a silenced pistol
From an artistic point of view — done wonderfully! The scuffs, scratches are very fine and worked out. 👍️ Technically speaking… The window for ejecting shells (bullet casings) should be made a little to the side, so that the shells would fly out sideways.
I'm not really sure of the correct translation of the technical term.
It looks amazing.
Cancellate its based on a nambu pistol
the ejection point is on top
Ellingston its based on a nambu pistol
Yep, indeed… a highly odd decision. However:
Nambu pistols were symbols of prestige, often carried in fanciful holsters , and were used more as a means of ornament and status rather than for fighting.
for a ritual weapon is acceptable. But in real combat it causes problems.
Cancellate could be, i just thought it looked cool thats alll 😉
Cancellate looked it up and they were in service for 40 years by the japanese
Ellingston looked it up and they were in service for 40 years by the japanese
You can simulate in the game — the player takes aim, starts shooting, and shells fly out in front of him, covering the rear sight. Not very comfortable, in my opinion. 😹
I have not found that such a solution is repeated by someone else.
Cancellate the luger pistol was also top ejecting
Ellingston the luger pistol was also top ejecting
Luger didn't become particularly popular either. That is, it is possible to do so, but not practical.
Cancellate perhaps but i like weird gun designs
It's all about the look and aesthetics anyhow, no one cares if they suck in real life.
Also, on that note, the Uzi is actually a very accurate weapon. But in games it's simulated very wild and spraying, when it's not like that in real life.
You can do whatever you want in the game.
There are old proven designs, aesthetically and technically flawless. I wouldn't mind one right now.
You know what? It doesn't look bad that! 😃
Memoried Shotguns in real life are well known to be loaded with transdimensional pellets. Upon traveling 1m, the spray will cease existing in the way we know existence. In video games, in order to simplify such complex subject manner, this is explained simply as "falloff".
Memoried exactly man
soldat head1
assault rifle
some WIPs
lmg 2 finished
just a heads up...
this project is not dead.
im back alone working on it. redesigning things, simplifying the mechanics and making a gamedesign document.
ive tried to switch to unreal but ive found godot better for my needs, i dont need tripleA graphics to make my game.
ill be posting a wip video of the projects' state soon if u r interested?
Gantrisin Glad to see you're keeping it up, and looking forward to seeing some visuals 👍️
Susi tnx! i ll be needing your help with some code issues lol.
Gantrisin You know where to find me 😉
Gantrisin ill be posting a wip video of the projects' state soon if u r interested?
That's a strange question… of course, there's news about the project waiting here.
Hey, welcome back! Great to see you still going with the project.
im in need of a story writer for NORMORD.
my story is way to vague atm.
if u think u have the skills pm me.
© 2022 - 2024 — McMap. All rights reserved.