-
Posts
2,419 -
Joined
-
Last visited
Content Type
Profiles
Forums
Developer Articles
KSP2 Release Notes
Everything posted by lo-fi
-
The tracks are not easy. Or they weren't. I know I was busy knocking out wheels and repulsors early on, but behind the scenes I was researching, dabbling, looking at the open sourced RBI stuff. It's there for the taking for anyone who wants to put the time in. The plugin stuff, again, is time, research and patience. And more research. The only natural talents I have are that I'm pretty bright, and I learn fast. The rest is hard won, same as it would be for anyone else I'll rake out all my research bookmarks - maybe do a live stream making a simple track. Would be nice to pass the knowledge on. Looking forward to that DustFX! Enjoy the ASET wheel, and marvel at the diffs between the original config and mine. Quietly proud of how simple my stuff is to configure
-
I'd advise using Unity 4.2.2. I don't believe there's any advantage in using 5 for constructing KSP parts, and some things, as you've found, will be confusingly different. I can certainly help you out with one of my model rigs, but most are tied up with some advanced stuff in the KF plugin that's totally undocumented and include some... unorthodox rigging techniques. Have you successfully managed to rig up a wheel in the stock fashion? Comfortable with how the hierarchy, constraint and lookat controllers work? I guarantee you'll have a "what the ...... Is this maverick doing?!" moment when you look at a KF wheel You'll also find warthog style suspension impossible without making handed parts, which means no surface attachment with symmetry. The grip settings are set when you rig the part in Unity - read up on wheel colliders to understand what's going on there. I don't mean to put you off - it's great seeing people pick a challenge - but you've certainly got one there!
-
Now that's a question... Took me weeks to get the basics down, and I had some experience beforehand! Basic skills you'll need: The ability to make a manifold, uniform section track mesh with enough polys in the right places to allow flexing. *Not that hard* Be able to texture said mesh so it can continuously loop a texture *Not terribly difficult* Some skill with "skinning". And by that, I mean being able to tie mesh to helper objects as you would a character to a bone rig. *This is HARD* Even more skill to bash the skinning around until it behaves somewhat like a track might *probably just as difficult as the above step* Very good knowledge of how to rig stuff up in Unity. *I'd bet they're probably the most complex parts in KSP* If you've done these kind of things before, I can make a YouTube while I'm rigging something up, but making a "This is how you do it from start to finish" would be a far longer tutorial than I think I can tackle. I can post some links to the research materials I found when I was figuring out how to go about it, but I work in 3D Studio, so they're probably not that relevant if you use Blender as may do. I reckon it's about 9-12 hours solid work for each track design, and that's without texturing.
-
Thanks. Man, I'm rusty with this stuff... FFR: foreach (BaseField k in this.Fields) // foreach (KSPField k in this.Fields) will compile, but will give invalid cast error at runtime. { k.guiActive = false; k.guiActiveEditor = false; } foreach (BaseAction a in this.Actions) { a.active = false; } foreach (BaseEvent e in this.Events) { e.active = false; } disables tweakables - both button and slider - along with any text displays in the RCM.
-
Hi I'm a little rusty after a few months away from any code, so I'm looking at Visual Studio and the KSP API like a 2 year old with a Rubiks cube. Trying to find a way to get a list of the items mentioned in the title to be able to disable their visibility in gui and flight. The disabling I'm fine with doing, but somewhere in the back of my mind there's a thing about BaseFields that I can't quite remember. Any pointers please? Many thanks Lo-Fi
-
[1.7.3] Exploration Rover System by A.S.E.T. v0.3 (04.08.19)
lo-fi replied to alexustas's topic in KSP1 Mod Development
Alex, just out of idle curiosity, I created a version of your wheel configured with the KF plugin instead of JSI and FS. It works quite well; are you interested? The only caveat is it doesn't currently support the retract mode , but this is on my list. Update: I thought I ought to make a demo: http://youtu.be/D9kmvxZfxsw This is just a config bash; nothing is changed in the model. I've used the KF plugin to replace the JSI and FireSpitter modules. As you can see, it neatly removes the need for setting motor direction, steering and handedness up, all of which is done automatically. Hope you approve Oh, and I forgot to implement the tread change for the video. -
Creating new animations for Kerbals (eva)?
lo-fi replied to Deathstick's topic in KSP1 C# Plugin Development Help and Support
There used to be a mod that allowed movement of the rig in realtime, though I can't for the life of me remember what it's called. I suppose you could recreate the kerbal rig, animate, and somehow copy the movements into a script to be played through that plugin. Best I can come up with I'm afraid! -
Is there a way to change friction of structural plates?
lo-fi replied to cy-one's topic in KSP1 Mod Development
They're never going to work that way whatever you do; that's why we have wheel colliders after all. Changing physics materials in ksp appears to be a bit of a challeng anyway, so you're pretty much on to a non starter. Sorry! -
[1.7.3] Exploration Rover System by A.S.E.T. v0.3 (04.08.19)
lo-fi replied to alexustas's topic in KSP1 Mod Development
The dual wheel attachment points will be JSIpartUtilities not working correctly. The left and right handed suspension variants are both modelled into the part, and JSI simply hides one or the other depending on how you set the wheel up. I bet it's broken in 1.0, and may not have been fixed yet in Mihara's absence. The "Audio Described" sounds are just comical! It's like 1980's Batman. With Kerbals... Glad you're dabbling again, Alex -
Procedural textures are possible, of course. Just depends how much time and work you want to put into coding it. You'd have to dive into the Unity API dealing with the Texture2D stuff - I'm afraid I can't help you there. Spawning mesh is not hard. xEvilReeperx posted this little partmodule as a proof of concept a while back, and I'm sure won't mind if I share it again: class GoldenShower : MonoBehaviour { private Rect _windowRect = new Rect(400, 400, 128f, 1f); private GameObject _coinPrefab; private const int ShowerCoinCount = 800; void Start() { _coinPrefab = GameObject.CreatePrimitive(PrimitiveType.Sphere); // note: comes with sphere collider _coinPrefab.transform.localScale = new Vector3(0.04f, 0.01f, 0.04f); // KSP/Diffuse apparently needs a texture, can't just set a color like regular Diffuse shader var goldTexture = new Texture2D(1, 1); goldTexture.SetPixels32(new Color32[] { XKCDColors.GoldenYellow }); goldTexture.Apply(); _coinPrefab.renderer.material = new Material(Shader.Find("KSP/Diffuse")) { mainTexture = goldTexture }; var rb = _coinPrefab.AddComponent<Rigidbody>(); rb.mass = 0.01f; rb.angularDrag = 5f; _coinPrefab.collider.material = new PhysicMaterial { frictionCombine = PhysicMaterialCombine.Maximum, bounceCombine = PhysicMaterialCombine.Minimum, bounciness = 0.45f, dynamicFriction = 0.05f, staticFriction = 0.25f }; _coinPrefab.SetActive(false); } void OnGUI() { _windowRect = KSPUtil.ClampRectToScreen(GUILayout.Window(123, _windowRect, DrawWindow, "Menu")); } private void DrawWindow(int winid) { GUILayout.BeginVertical(); //GUILayout.Label(string.Format("Gravity: {0}")); GUILayout.Label(string.Format("Accel: {0}", Physics.gravity.magnitude)); if (GUILayout.Button("Increase monetary wealth?")) StartCoroutine(CoinShower()); GUILayout.EndVertical(); GUI.DragWindow(); } private float Random360() { return UnityEngine.Random.Range(0f, 360f); } private System.Collections.IEnumerator CoinShower() { print("Let there be wealth!"); var vessel = FlightGlobals.ActiveVessel; float start = Time.realtimeSinceStartup; for (int i = 0; i < ShowerCoinCount; ++i) { var spawn = vessel.GetWorldPos3D() + FlightGlobals.upAxis * 20f; var coin = (GameObject)Instantiate(_coinPrefab, spawn + UnityEngine.Random.insideUnitSphere * 2f, Quaternion.Euler(new Vector3(Random360(), Random360(), Random360()))); coin.rigidbody.velocity = vessel.rigidbody.velocity; // else if in orbit, coins will miss // impart a bit of force to get it spinning coin.rigidbody.AddTorque(new Vector3(Random360() * 0.1f, Random360() * 0.1f, Random360() * 0.1f), ForceMode.Impulse); coin.SetActive(true); // we might need to spawn more than [fps] coins per second if we're to reach ShowerCoinCount in // two seconds // so delay here if we're ahead of schedule, otherwise continue dumping coins while ((Time.realtimeSinceStartup - start) / 2f <= (float)i / ShowerCoinCount) yield return 0; } print("Wealth complete"); } } To spawn mesh from a .mu file, you can use: GameDatabase.Instance.GetModel(KerbalFoundries/Blade/Rock); //ommit the .mu extenstion from the end of the file name You'll have to add colliders, rigidbody etc when you spawn the GO too, and it will NOT be persistent as it is. If you want to see how to spawn parts (which will be persistent without extra work), I'd suggest looking up the source to Extra-Planetary Launchpads. HTH.
-
The part has to have a unique name, or ksp will get confused over which version it's supposed to be loading. To change the steering, alter the steeringCurve values. For each key, the first value is the speed, the second is how many degrees it will steer at that speed. Third and forth values are entry and exit vectors for that key, but that gets a bit technical. Google KSP floatcurves for a detailed explanation.
-
Ive no fundamental objection at all, and the license allows that. But it is still in beta, and things are evolving, so you might be best served just providing alternative configs or MM patches, at least for the moment. However! As you've maybe seen, we're in the middle of tweaking the dynamics, so you'll probably find things a good deal better after that anyway. If at any point you do decide to redistribute, just treat it like FireSpitter please.
-
Very cool, glad you agree I'm on the right lines. It will require careful tweaking of config values to get it workable. Testing with the medium wheel it was quite easy to load the wheel into total immobility. I may be able to add some code to prevent this, as even heavily over loaded they ought to do something.. The status display in the menu could do with a load indicator too, which would be nice. Not sure what you mean about the inertia? The physics engine is responsible for that, and it does take more to stop a heavy vessel. Tech, weight and cost would be fantastic thanks. Anything else you can think of? We can run through torque, brakes and power consumption when we've nailed down the rolling resistance finally. Over to Gaalidas on the FX... You get that dust code into the plugin? Might as well go in there! Also really need better/more sounds. Like what you're doing with the log stuff, by the way.