Page 1 of 1

Creating a resource in Unity that can load gamebryo .kf animations

Posted: Wed Jun 05, 2019 5:06 am
by Fargoth
So off the bat I'd like to mention that I am not a savvy coder, developer or anything of the sort. I'm simply trying to find some answers or possibly assistance for a project that someone I met on reddit has been tinkering with in the form of a possible Unity run Oculus Quest version of Morrowind.

https://www.reddit.com/r/OculusQuest/co ... confidence

His github and how to test it are there also the youtube clip showing functionality. Currently the engine can only load the world, enter/exit buildings and static objects are placed. Also some text is loaded for signs and item names.

My understanding (from tinkering with mods) of how the animations work in the original data files are that .nif character models are associated with .ks animation scripts and also connected to .egm files. This link:
https://www.nexusmods.com/morrowind/mod ... ?tab=files
Is a nice collection of tools including an old versions of blender+python, a script to teach blender to play nice with .nif .kf and .egm files and some pdf guides along with other resources.

Do any of the lovely and intelligent Unity using folks in this forum know if any of the following are possible without being extreme pains in the ass? Some of these questions are quite possibly going to be dumb, I'm sorry for that.

Can a script be written to read and understand the connection between the original files and load in the enemies with their original animations? Would that basically be like rewriting part of the original .exe?

Is it possible to copy or translate code from somewhere like perhaps the python script which allows blender to understand these files and put that functionality into Unity? I am aware that Python doesn't work directly in Unity but I have seen people suggest that resources which can read python can be written in C# and allow Unity to access the functionality from some Python scripts.

If my prior questions are impossible/dumb then the simplest way forward would be to import all the animation files into blender and export them as something which plays well with Unity. I've been trying to do this but I'm a tad stumped about telling blender the right files to import. Blender asks me for a texture searchpath, a keyframe file and the egm "facegen file"

I know for sure that the .ks is the keyframe. I'm not 100% sure if the texture source is simply the textures folder like one would assume, or maybe it's the first .nif file. Then lastly I am confused about the .egm file I can't find them at all in the unpacked .bsa files. There is a second .nif with x before the name, could that be the .egm? Most guides tell me how to make my own animations and export them as files Morrowind can recognize but I can't find any answers about how to load the files in the first place to export as something else..
I've tried many combinations of which file goes where but as the fool I am I clearly don't know what I'm doing :P

It'd be really nice to have a utility within Unity that can read and load the native data files from original Morrowind because then it could recognize and possibly work with mods. But I'm totally willing to one by one convert the old files into something that modern engines can recognize if I could just figure out how.

Thanks for checking out my ramblings, also I'd like to say that DFUnity is really awesome and everyone involved should be really proud of how well it works.
My first Elder Scrolls game was Battlespire when I was a young child. I got really into Morrowind sometime during middle school after which I sought out Arena and Daggerfall. The shear scope of those original games was amazing even by the time I had played them through DosBox 10-15 or so years later.
I clearly still enjoy later Elder Scrolls games but with each newer title I'm disappointed that the scale shrinks, amount of magic gets cut out, lack of variety of choices in quests and streamlined nature of the story and lore, etc.
The restoration and preservation of Daggerfall which has resulted from this site and project is amazing.