Jump to content

South8028

Members
  • Posts

    864
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by South8028

  1. 6 hours ago, 363rdChemicalCompany said:

    There was  a very large difference between the dystopian horror that was the Soviet Union in 1930 and the Soviet Union in 1985 to list just one example (not that I am trying to defend them in any way)

    It is a fact. In 1981-1985, the USSR ranked first in the world in social security of the population. Medicine, utilities, organization of leisure and work for citizens, housing... Those who witnessed those years are still nostalgic. As an example... In 1984, a tourist tour by boat from Moscow to Astarakhan for a child cost 36 rubles (~$40). Including meals, tourist trips in all cities along the route, and leisure activities for children. Now a tour on the same ship along the same route costs ~200k rubles (~$2200), excluding age. Contrary to propaganda, life in the USSR until the mid-80s was much better than in the West. But ~ since 1986 there has been a collapse. The real dystopia was ~ from 88 to 99. There was total anarchy and banditry.

  2. 1 hour ago, DiodeLadder said:

    Hi guys, if you are using 3DS Max, controlling visibility is much simpler.

    Here's how :

    1) select the object you want to animate the visibility of.

    2) Open Dope Sheet (Graph Editors -> Dope Sheet).

    3) Select the object in the dope sheet, and from "Edit" menu, select Visibility Track -> Add.  This creates a visibility track.

    4) Add keys to the track.  Value 1.0 = visible, 0 = invisible.

    That's it.  The exporter picks it right up and creates the necessary Controllers for the Nif automatically.

    One issue while you do this is, though, once you assign the BS Lighting FX, you can't preview the visibility animation in 3DS (it will work after the export, but no preview).  You need to use the 3DS' default materials while you create keys.

     

    Controlling visibility of Havok anim can be done via annotations : CullBone.**bonename** (make the bone invisible), UncullBone.**bonename** (make the bone visible)

    Wow! Great information. Don't have a list of annotations with explanations? I know a limited number of annotations... These are SoundPlay, FaceEmotion, AnimObjLoad/Draw. But I know that there are a lot of annotations in havok. I have a list of several dozen annotations, but I don't know how to use them all.

    https://disk.yandex.ru/d/th8tI0jnFwF6-g

  3. 4 hours ago, ChuckYufarley said:

    Here's a simple example I made that demonstrates how to use the NiVisController.  I assigned the NiVisController to the Couch NiNode. You can either assign it to the NiNode, or to the  BSTriShape contained in the NiNode. There are benefits to either method. Assigning it to the NiNode will turn off visibility for everything contained within it. Assigning separate NiVisControllers to each BSTriShape allows you to turn on/off visibility for each item however or whenever you want.  For this example I assigned it to the NiNode.

    Within the NiControllerManager there are 4 NiControllerSequences. I named the sequences to match those used in the water pump nif. They correspond to the sequences called out by the generic furniture BGED. Each sequence has 1 controlled block, the Couch NiNode. If you expand the controlled block in the first sequence, unoccupied, you'll see 4 values filled in.  I will explain them out of order, so it makes more sense.

    Under Node Name I entered the bracketed number that follows the NiNode name, in this case [2].  That is the string number for the NiNode, which can be found under the Header tab, if you expand the Strings dropdown. You have to use that number and not the block number when assigning this value.

    Under Controller,  I entered the block number of the NiVisController I assigned to the Couch NiNode. I really don't know why in some instances you enter block numbers and others you enter the string number, but that's just how it works.

    Under Controller Type  I clicked on the "Txt" icon and entered the text "NiVisController". Doing this creates a string that informs the NiControllerManager what sort of functionality to assign to the controlled block. In some cases the "NiVisController" string might already be in place, in which case you just need to double click on the blank space next to the "Txt" icon and enter the string number, in this case 3. Since there are 4 sequences and each has the same controlled block, once I created the "NiVisController" string for the first sequence, I just needed to enter the string number for the remaining  sequences.

    Finally, under Interpolator, I entered the Block number of the unique NiBoolInterpolator I created for the "unoccupied" sequence. If you expand the "unoccupied" sequence and select the number 6 NiBoolInterpolator, you'll see that the value given to it is "yes" and there is no data block attached. In the case of a NiBoolInterpolator, yes means visible, no means invisible. In the case of your punching bag, you want the furniture nif visible when it's not in use, so the "unoccupied" sequence gets a yes NiBoolInterpolator.

    For the remaining NiControllerSequences, the only differences contained in the controlled block values are that each has it's own unique NiBoolInterpolator. In the "occupied" sequence, since this is when your animation will be playing and you want the furniture nif to be invisible, I assigned a NiBoolInterpolator with a value of no, and no data node attached. 

    For the "enter" and "exit" sequences, in order to demonstrate how they work, I attached NiBoolData nodes to each of the remaining NiBoolInterpolators. First, I set the stop time for each sequence to 2 seconds. For the "enter" sequence I gave the NiBoolData node 4 keys that contain time stamps and on/off values. The values are simple. 1 is on, 0 is off. Since this is a simple demonstration I only need 4 keys to transition the visibility from on to off once during the sequence. In the case of a flashing sign I might set 10, 20, 30 different keys to transition back and forth over the length of the sequence. The time stamp for the first key is always 0.0. That is to indicate what value (1 or 0) to assign at the beginning of the sequence. The next time stamp is the last instant the on (1) value will be assigned. The next time stamp is the first instant the off (0) value is to be assigned. and finally, the last time stamp is that last instant the off value will be assigned. So, over the course of the 2 second sequence, the nif remains visible for the first second, then becomes invisible, and remains invisible for the rest of the sequence. Once that NiBoolData block is complete, I enter it's block number in the data field of the number 14 NiBoolInterpolator. 

    For the "exit" sequence, I just copy/paste the previous NiBoolInterpolator, expand the NiBoolData keys and transpose the values, changing the 1s to 0s, and the 0s to 1s. Now the sequence starts in the off state and ends in the on state. 

    If you open the nif in the Creation Kit preview window,  click each of the Gamebryo Anims in this order...unoccupied, enter, occupied,  exit and it will cycle the on/off states in the order the generic furniture BGED will play them when the furniture is interacted with.

    I hope this helps and you were able to follow my over explaining.

    FurnitureExample.nif 36.57 kB · 0 downloads

    Thank you so much, Chuck. Excellent explanation. This is a complete manual, I am sure that I can do everything according to such a detailed lesson. I am very glad for your participation. I remember seeing your jukebox mod for the first time a long time ago. I was amazed at the complexity of your work. You are one of those people who made me want to master 3D in fo4 and you continue to be an example for me.

  4. 1 hour ago, ChuckYufarley said:

    I haven't done any work on FO4 stuff for a while, but in the nif itself you can set up a NiVisController to make the mesh invisible during the sit part of the animation, and once the furniture is exited it would revert to the visible state. And I don't mean "state" as it pertains to behavior graphs or whatnot, just in general. I'd base it off the water pump furniture, or something with a similar set of NiController sequences. NiVisControllers are pretty much the easiest to use of the texture animators. They just use a NiBoolInterpolator for on and off. The interpolator has basic on/off functionality, but you can also attach a NiBoolData node to it to adjust the timing if you need to. In other words, if you simply use the NiBoolInterpolator to trigger the off state at the beginning of the Enter sequence, but it stays visible for a split second too long, or becomes invisible too soon, you attach the NiBoolData node to the interpolator and then you can input the exact time to trigger the visible/invisible state. Off the top of my head, I'm pretty sure it wouldn't even need to be scripted since the furniture BGED is what calls the different NiController sequences.  That, in combination with your AnimObject should get you the results you're looking for.

    As for the 1st person vs. 3rd person issue, I know I've made furniture objects that don't lock the player into a perspective, but I'd have to root through everything I've made to see which ones they were and how I set up the animation. I know the water pump locks you into 1st person as well, but that has nothing to do with the nif, but how the furniture object is set up in the CK. If I'm not mistaken, you should be able to set up the additive subgraph with just 3rd person animations, and give the furniture object a Force 3rd Person keyword. 

    One other thing to consider. I've never done what you're planning and I don't know for sure if the furniture collision would have any effect on your animation.  The NiVisController just turns off the texture...basically, but the object is still there, including the collision...I'm pretty sure. The AnimObject wouldn't have any collision that would cause issues, but the player does. If your animation moves the player beyond the boundaries of the furniture collision,  it might result in the player mesh spasming around. If that's the case, you could alternately write a short script to enable/disable the furniture during your animation. If you did that, you wouldn't need to mess around with the NiVisController and all that entails. Also, if you're using a custom mesh for your furniture, you could give it a very minimal collision that would just allow for interaction. A small box with no back or sides. That would allow you to place it and interact with it and not get in the way of the player collision during the animation. Just something else to consider.

    BTW, I really like the work you've been doing. You do a great job of making new and unique things that most of us have never even thought of. Also, thanks for reaching out. I've always enjoyed our interactions.

     

    EDIT: Okay...I went on that long explanation without watching your video. Jumping the gun like always. Is this what your working on or was there another object? In this case, since the animated punching bag and player are well away from the furniture punching bag, the collision wouldn't be an issue. I'd use the NiVisController for something like this.  Also, using the water pump as a jumping off point would allow for the punching animation to carry on until the player exits the furniture. The extractor chair has it's own BGED which probably triggers all the animation states in a specific manner. The water pump uses the generic furniture BGED which allows for more open ended modifications. In case you go looking for it, the water pump is in the Set Dressing file path, not the Furniture file path. There are other objects that use the generic furniture BGED as well, but I've always used the water pump as a starting point since I know how everything works with it. Well, not everything, but most things.

    I'll try niVisController. For me, working with nif is probably easier than dealing with a script. I didn't understand the explanation very well... It would be great to find nif with an example. What I need to achieve is switching the furniture to an invisible state in the Havok Entrance animation. Because using animObj is much more versatile than looking for ways to animate furniture specifically. The furniture is ordinary static, which is replaced upon Login by animObj. Collision is not an issue for havok animations. For both the actor and animObject, there are no collisions while the animation is playing. The only collision that interacts with the actor in animation is the Z axis. The actor will simply ignore the invisible object.This has been verified experimentally. Anyway... Thank you Chuck. I hope you will continue to create mods and find advanced solutions. I don't do mods. More precisely, I have a lot of models and animations, but it’s all just a bunch of models and animations that are not thematically related. I just love working in 3D, not at all professionally and solely for the sake of passing time.🙂

  5. On 4/5/2024 at 5:32 PM, Basil44 said:

    You've built too much stuff. Experimentally I found out that the maximum number of elements in a settlement is about 3000.
    I don't know what it depends on, maybe on the amount of video memory, but I have 3000, although other players have 6000 and higher.
    Try removing 100-200 items in the settlement, it should probably help.

    There are no restrictions on the number of static objects. It’s easy to remove the construction limit and build indefinitely. There is a limit on the number of activators (I don’t know what). The renderer has a technology that combines meshes and textures of cloned objects into one object. Accordingly, the processing of the same multiplied building element occurs faster than several elements. A building built from 3 building elements (foundation, wall, floor) of huge size requires less calculations than a building built from 100 building elements of small size.

  6. 22 hours ago, ChuckYufarley said:

    Trial and error, error, error...smidge of success. It's like golf. I'm a terrible golfer but that ONE beautiful shot out of 100 strokes kept me coming back. Spent many hours digging into Nifskope figuring out how this and that works. Wish I'd been on the clock all that time.

    Hi Chuck. Have you found a way to run gamebryo sequences for furniture? I'm trying to find a simple way. Any sequence that switches furniture into an invisible state. For example, switching uv animation to the alpha channel. Then it would be possible to replace the furniture with an animObject... The actor uses the furniture > the furniture becomes invisible > the havok annotation launches an animObject as a model of the same furniture, but animated. I wonder if it is possible to somehow trigger a furniture sequence using the havok annotation?

    https://disk.yandex.ru/i/RtbZHrHogMBe2w

    Here I used the sequence from extractorchair. But unfortunately, the sequence is rendered exclusively in 1st person and does not work correctly. If there is a Done tag, the sequence is not looped. If there is no tag, the sequence loops forever.

  7. 32 minutes ago, dldrzz000 said:

    Thank you for your reply.

    The second graph is the later exported animation. Both animations' data are Minigun's wpnidleready.hkx and converted into fbx by exactly the same method. Most other animations are almost losslessly exported. Only several became such blocks, and in game the protagonist shivers like someone infected by malaria.

    It's better to completely redo the animation. Weapon animations are probably not difficult. I find that any animation that doesn't involve physical movement of the actor is easier to redo than trying to edit vanilla. From a kinematics point of view, the most complex animation is character movement (gait, running, dancing, etc.). The rest of the animations are easier to do again.

    • Like 1
  8. Is the second graph an imported animation? Why did he become like this? I have not checked the graphs of the imported animation; when exporting, I use a regular sinusoid graph. The accuracy in the game is always absolute, given that I successfully synchronize the havok and gamebryo objects. It is worth understanding that with spline graphics there is always a default loss of precision, not only for havok animation, but for any animation. After the spline, the animation always has to be adjusted manually. Spline is basically stupid by default.

    • Like 1
  9. By the way, the initial concept of Bethesda before the release had a large scope of the Institute. I don’t remember 2014 or 2013, the concept art album fo4 was released. I don't have it, but I watched a review on YouTube. Initially, in fo4, the Institute was supposed to become a much more powerful structure. The Institute was supposed to be in complete control of the Commonwealth and not go into hiding. The Institute had the Sky Hunter transport. Instead of Coursers there should have been Hunters with flying exoskeletons. Armed with sample capture nets and nerve agent gas. Judging by the drawings, Bethesda artists seemed to be inspired by the Blame! manga. Unfortunately, during the production of the game, insurmountable difficulties arose due to the deadline and weak havok capabilities. Thus the Institute was reduced from an evil robot empire to a small community of scientists.🙂

    • Like 1
  10. 15 minutes ago, Qrsr said:

    You are a miracle South8028

    Your remark is unnecessary, since you will not be able to use this tunnel in your work. It is not compatible with vanilla models. I want to build this tunnel for my train. I have a model of an American diesel locomotive and in 3ds there is a controller that allows you to run this diesel locomotive along the same spline as the tunnel. If I put together a map with tunnels, stations and a diesel locomotive, then, naturally, I will share the models with you. But I don't know when this will happen because I'm in the process of moving to a new apartment.

  11. On 3/21/2024 at 12:43 AM, 363rdChemicalCompany said:

    Based on console entries it is clear to me that it was "father" who is almost great responsible for the more evil direction the Institute has taken.

    He was clearly promoted well beyond his abilities for some reason and this is wreaking havoc on the Institute. Also a form of revenge if you will albeit inadvertent.

    He acts as if he initially intends to replace all people with synths. He loves synths like his own children. From many of his monologues it becomes clear that he does not believe in humanity at all. Humanity, represented in fo4, has no future. For 200 years, people not only failed to create a primitive community similar to at least the Germanic communities of the 2nd-5th centuries, but did not even bother to bury bones in the areas in which they themselves live. I don't know what the BGS storyline was, but I see an irreversible DNA mutation. Synths based on pre-war DNA with the Father's point of view may be closer to pre-war humanity than mutants with radiation-damaged DNA.Possible theory...🙂

    • Like 1
  12. 2 hours ago, RoNin1971 said:

    Thats all nice, but irrelevant for this specific case. There is 1 piece, at 15degrees, which gets a specific distance/length based on the diameter.

    This 1 piece can be used to create any turn with steps of 15 degrees. Just look at my graph. those 6 'pie pieces' are 6x1 and the same mesh.

     

    Sure, I could create 6 different pieces, each with a different insertion point, to fit on the grid for a 30, 45 or 90 degrees turn, which no longer fits if you deviate from that turn by using a straight piece along the way for example. I could create a single 45 or 90 degrees turn which has its insertion point on grid etc. ... but its going to be a cold day in hell before I'm creating a ton of 1 and the same tunnel piece, each with different insertion points just to fit 1 specific spot within a turn.

     

    Only when using the piece to create a turn like my graph, (so no straight pieces, or bending the other way etc.) could it be done by using the 'circle center' around which they all rotate, as insertion point. This should always be on grid & the same point for all 6 pieces (for a 90 degrees turn).

     

    However, this method does nothing for non-90 degrees, as the end point (where to insert a straight or whatever piece needs to be placed) still is off-grid.

    https://disk.yandex.ru/d/2SKS1aSWzDQ4Mg

    Here, look what I meant. Entrance and exit 90 degrees. You can export a tunnel of any length... It can be as long as the entire map of the Commonwealth. The smoother the arc, the better. The main thing is that the size of each mesh does not exceed 65k polygons. It is best to immediately draw up a map of the tunnel in the form of a spline and run the tunnel along the spline. 

    • Like 1
  13. 15 minutes ago, RoNin1971 said:

    I'm using Blender for my modelling. Works similar. I join everything to 1 object (including collision geometry). Apply a simple deform (Bend, 15, Z) and 'convert' that to a mesh. Separate by material & separate the collision by segments.

     

    Export the nif for the mesh and 1 for collison. Then I convert that one to a Fo4 collison with 3DS 2013.

     

    ...but that's not the point / issue.

     

    These tunnels need an exact starting & corresponding end point.

    You can't 'stretch' a 15degree piece, without making it non-15degrees. You can't move it to center the insertion point, as it needs to be where it is, to put it seamless connecting with any vanilla tunnel, on your grid. Every next part will NOT snap to any grid as the coordinates don't fit on it.

    After a 90 degrees turn it will once again align seamless with any vanilla tunnel piece.

     

    So the diameter needs to be a grid point. The tunnels MUST be 640 points apart & the angle should be 15 degrees.

    There is absolutely no way to place the 2nd-6th part of a 90 degrees turn using "snap to grid", unless the grid is set for 0.5 or something like that.

    With PathDeform you can apply multiple bends to a single object. For example, a tunnel may have a starting and ending angle of 90 degrees, but its middle section will be bent at an angle of 15 degrees. There will be a transition. You can create a long tunnel with the entrance and exit of a straight tunnel and bend it in an S shape in the middle. By controlling the percentages of the modifier, you can set the model input to the coordinates of the spline starting point. By initially setting a straight spline, you can accurately measure the length of the tunnel. Once you have created the curve, you can mirror the tunnel and assemble a model with the specified entry and exit angles. This far exceeds the capabilities of the Bend modifier.

  14. 19 hours ago, RoNin1971 said:

    I admire your persistence, but you keep failing to see the issue. Non of those pieces is supposed to link up seamless with itself to form a perfect 30, 45, 90 etc. turn. Look at my graph and imagine what happens if you move or resize those "pie pieces" ... it won't fit anymore! You CAN NOT get these pieces to snap to your grid.

    Not the usual way. But... I don't know if you still have 3ds or if you switched to blender... 3ds has a PathDeform modifier. It allows you to stretch any object onto a spline. Accordingly, you can see an example... A straight tunnel can be bent at any angle without deforming the meshes. What's interesting about this modifier is that it allows you to create a tunnel shape instantly. Simply by manipulating the spline, bending it and setting any percentages and angles you want, you can create a tunnel of any shape with any starting and ending angle. You only need one direct tunnel. After setting the form, bake it ResetXForm>CollapsTo. If a collision is attached to a model, it is deformed along with the model.

    https://disk.yandex.ru/d/v7KfA2O8S-vMfA

    • Like 1
  15. 41 minutes ago, DieFeM said:

    🐐GOAT!

    Just an off-topic note if you don't mind... it amazes me how some modders get to put together that kind of information, probably just by deducing it on a trial and error. Or is it documented anywhere? I don't think so.

     

    No idea. I learned it here too. I don't remember from whom. Looks like it's from DiodLadder. About a year ago, he or someone else (unfortunately I don’t remember who it was) described that in this way he creates nodes for weapons using helpers. When I import nif into 3ds, all the bs specialized nodes open up as bones. I tried using bones using the same method. It worked.

    • Like 1
  16. 1 hour ago, dldrzz000 said:

    Thank you again for your answer. Your suggestion is indeed useful when dealing with skinned meshes. I always use this node/bone method too, but the weapon shapes still turn out to be with world transforms. However, if I export these shapes separately centred in world space and later combine them in Nifskope manually, I can get the ideal result. I highly doubt whether the official plugin is also castrated in this function.🥲

    Bones as nif nodes are not used for the skin modifier. Bones are pointers for the havok engine to attach points to meshes, effects, sounds, etc. For example, I link a bone to the parent mesh, calling it AddOnNode 777. When exporting, the bone is converted to bsValueNode with index 777. Those are linked to nif addOn from ck with index 777. For example, a light spot from a flashlight. The direction of the bone indicates where the light from the flashlight is directed. All bones with the name of specialized nodes bgs are converted to these specialized nodes when exported. This function does not require any additional bgs tools. Accordingly, the physical coordinates of the bone work in world space, indicating the exact location of the mesh, or effect.

    https://disk.yandex.ru/d/ewBoaz4UzfwDDQ

    • Like 1
    • Thanks 1
  17. I didn't export weapons. But maybe it's a bone called WeaponExtra1. Accordingly, create a child bone (if you need to specify the direction precisely), or a helper (if you don't need the direction)... Call this bone WeaponExtra1. Right-click on the bone\Object Properties\User Defined, enter... sgoKeep = 1. We link the FatManLatch mesh to these bone. All specialized bgs nodes, such as bsValueNode or SoundNode, etc., are bones. I create these nodes in 3ds using the described method and export them to nif. Accordingly, you export your nif as pe weapon. You can import any nif into 3ds using niftools. niftools is in the f4ak package on the nexus.

  18. 11 hours ago, RoNin1971 said:

    I know all about connection points, but as far as I know those don't work inside CK.

    mass fusion is somehow assembled with a bs connect point. Roof panels can be disassembled from Place Everywhere (my entire map is a workshop) and assembled there anything you want. I don't know how bgs used bs connect point's there. But, I think that assembling the entire structure in a 3D editor is still the easiest way... And the most accurate way. In ck it is impossible to assemble everything as neatly as in 3ds.

  19. Make a storyboard of the sky. You can use 4k textures with 64 frames at 512, or 32 frames at 1024. Or 8k textures with 128 frames at 512, or 64 frames at 1024, or 32 frames at 2048. For video storyboarding, it is best to use AVS Video Converter. It saves frames of any video as bmp, jpg or png. You just need to copy these frames into Photoshop and make an assembly. The animation should be seamless... For example, rotating the constellations 360 degrees. If you make a texture, I will make you any model with this uv animation. Any shape, size and any activation in the game.

    https://disk.yandex.ru/d/KgdI-A-j7caT9w

  20. 2 hours ago, RoNin1971 said:

    For the average user of these pieces, it will be easier to create SCOL's with CK. (& save it to a new nif, iif needed/wanted)

    Still, the connection point kind of thing would absolutely be desirable.

    bs connect point is easy to add to nifscope. Click on parent NiNode > Node > Attach Extra Data > BsConnectPoint::Parents. CPA name. The simplest connection type is P-Conduit01. You can immediately transfer power to segments. Place the points according to the coordinates of the vertices of opposite edges. It is enough to add 2 dots on each edge. P-Conduit01 face-to-face docking. Or I don’t know how to formulate... Dad to Dad.

    • Like 1
  21. The easiest way is to assemble the entire design base in 3ds along with collisions in the form of one nif. Then populate the ck with objects and create a navigation mesh. I don’t know either... Is there support for ck bs conect points? With dots in the workshop you can connect any parts at any angles... Any parts and angles... But I don’t know how to do this in sk. If I were assembling interiors for ck, I would completely assemble all the statics in 3ds. It's just that ck is super inconvenient and ck has a bastard renderer.

  22. You can take a circle with a radius that is a multiple of 4. A radian equal to 1/x of the circle will be a tunnel. If you make outer and inner circles, you can run a real train in the game. It will roll around the outer ring (of any size). The inner ring will become stations. It can ride in a loop, stop at stations and npc will be able to use it (there is a navmesh for animated surfaces)... Well, or they won't be able to use it... I don't know how to make npc want to get on the train, even if npc will be navmesh. I've been thinking about a train for a long time, but the amount of work scares me. But I launched an animated submarine in a huge circle (~ 10 times larger than the Commonwealth map).I wanted to make a mobile settlement, with two animations of boats... External, in separate interiors, and for the Commonwealth... But I realized that the “ocean” of the Commonwealth is very shallow and cannot accommodate my real-sized boat.

  23. In the game concept, 3rd generation synths are not machines. These are artificial people with human DNA, with human intelligence. In fact, in the game they have already gone beyond the control of the institute. They constantly show dissatisfaction and run away. If even one synth gains control of the Institute's security system, the Institute will be finished. Considering that the remnants of humanity have been unable to coexist even with each other for 200 years in a row, all remaining people in America will be exterminated. Arthur Maxson is not paranoid. 😁

×
×
  • Create New...