Jump to content
⚠ Known Issue: Media on User Profiles ×

Foxroe

Members
  • Posts

    6
  • Joined

  • Last visited

Everything posted by Foxroe

  1. Also, with respect to "qmake-qt5", on my system (Slackware 15.0), it's just a symlink to "qmake". You can try just typing "qmake" instead, but you may need to find out if your *buntu distro uses a different symlink (if at all).
  2. Apologies to those of you that ran into trouble with the lightingwidget.h edit. I had you looking for and inserting "define" statements; however, those should have been "include" statements. I fixed the tutorial (thanks to @UsernameWithA9 )
  3. I'm not really sure. I think it may have to do with the code being originally (mostly) Windows based and a Linux-native compile won't handle the Windows paths nicely - similar to the texture path bug. I'm sure there's a work-around in the code, but I haven't found it.
  4. In case you're still looking to try this (it's been a few months :P), you could try this software (demo version): https://facegen.com/ I'm fairly certain this was used back in Oblivion's heyday to import celebrity faces into the game. As for the body, you would probably need to hand edit the textures, or, if you have REALLY good photos, you may be able to map the photo to a 3D model in 3D modeling software such as Blender. Be warned: it's a steep learning curve. Also, check out the pinned topic at the top of this forum: https://forums.nexusmods.com/index.php?/topic/237804-miscellaneous-tools-for-3d-modeling-read-1st/
  5. I'm certainly not an expert in this area, but I'm fairly sure that the child mesh is tied to animation/behavior/skeleton files. You my need to add similar animation complexity for your kinder-piano.
  6. Compiling NifSkope 2.0dev7 on Linux ======================================== I've been trying on and off now for some time to compile this essential modding utility natively on Linux. It's my understanding that it compiles just fine on the major distro's like Ubuntu, Fedora, etc., but I don't use these distro's for various reasons. I'm a GNU/Linux masochist, so I run with Slackware (currently 15.0). Well, I finally noodled it out, and I wanted to share the knowledge somewhere (the NifTools forums appear to be dead) in hopes that it will help the one other person in the world who is trying to compile NifSkope on Slackware (or another Linux flavor), and who doesn't want to run the Windows version of NifSkope through Wine. So here goes nothing... ==== Requirements ==== 1.) You'll need to have C++ (g++), QT5, and git installed on your system. Slackware 15.0 comes with these pre-installed, but your distro may not. 2.) Not necessarily a requirement, but a nice thing to have, is a text editor that does syntax highlighting and shows line numbers; it makes looking at code much easier. I use vim, but any other one will do. 3.) You may need to run the compiling commands in step 10 as a user with root privileges, in which case, you'll need to precede the commands with "sudo ". 4.) I've written this guide assuming that you a) are familiar with the Linux command line, and b) you don't have a lot of coding experience. 5.) You'll need to be connected to the internet when running the git command in step 2. ==== Procedure ==== NOTE1: I stand on the shoulders of giants. I did not come up with these fixes myself; I have simply collected these fixes from various commits to get NifSkope to work natively on my system. NOTE2: In the commands I give below you will notice that I add comments to the code with either hashes ("#") or enclosed forward slashes and asterisks ("/*", "*/"). You don't have to add these, I just added them for clarity. 1.) Find yourself a nice clean, safe place to store your project. I created a directory called "src" in my home folder, and I build all my stuff there. 2.) Open a terminal, and go to your safe place (i.e. "src"). Now type the following command and hit enter (this will create a folder called "nifskope" and populate it with all of the necessary source code): git clone --recursive https://github.com/niftools/nifskope 3.) Now, go into the nifskope directory and run the following: git submodule update This may not be strictly necessary (the "--recursive" git option may already do this), but I do it anyway just to be sure. 4.) NifSkope code comes with some empty library directories (licensing issues?), and this is what was kicking my posterior for the most part. It turns out I was cloning the wrong git source tree <forehead smack>. If you use the git command above, you should be good, but let's double-check. From the nifskope directory, descend into the "lib" folder. In there, verify that the "gli", "qhull", and "zlib" folders are NOT empty. If they're devoid of files, something went wrong with your git pull in step 2, so maybe double check the address. You can always use your web browser to go to that address, then click your way through the source tree to the same folders as above. They should appear as links to other source code repositories, so your git command above should be following those links and pulling the code. 5.) You'll have to make some minor tweaks to the code to get this to work. Go back up to the nifskope directory, descend into the "src" directory (not your safe place, but the "src" folder in the nifskope folder), then go into the "ui" folder, and then the "widgets" folder. Open the "lightingwidget.h" file in your favorite editor: vim lightingwidget.h About four lines down, you'll see the following: #include <QWidget> Add the following line after it, so it looks like this: #include <QWidget> #include <QAction> /* new line! */ Then, go down to about line nine. You should see this: class QAction; Change it to look like this (NOTE2 above does not apply here): /* class QAction; */ This tells your compiler to ignore the code, but you've preserved it in case it's needed in the future. Go ahead and save the file now. 6.) While in the same directory, go ahead and edit the following: vim lightingwidget.cpp Now add the following line after "#include "glview.h"" on line four: #include "glview.h" #include <QAction> /* new line! */ All done, go ahead and save the file. 7.) If you plan on doing any Fallout 4 modding, there is another change we can make while in the "widgets" directory. This edit is pretty substantial, so I'm not going to include it here (this step is for a texture display fix and is entirely optional); however, I will include a link to the fix and you can make the edit yourself if you so choose: https://github.com/niftools/nifskope/pull/120/commits/b28c0065e9256b265eed9c30635e9fe3885bc4a0 This is a patch for the "uvedit.cpp" file. Essentially, wherever you see a minus sign ("-") preceding a line, delete that line, and wherever you see a plus sign ("+") preceding a line, add that code to the file. Go ahead and save the file once you are done. 8.) Next, ascend back up to the "ui" directory, and edit the following file: vim nifskope.ui On line thirteen, delete the space after "centeralwidget" and before the forward slash, so it looks like this: <widget class="QWidget" name="centralwidget"/> Then, on line 416 you'll see: background: url(":/img/sizeGrip") no-repeat; Change the text "img" in the line to "wnd": background: url(":/wnd/sizeGrip") no-repeat; Isn't hacking fun? Go ahead and save the file. 9.) One more edit <cracks knuckles>. Head back up to the nifskope directory and edit the following: vim NifSkope_targets.pri Go down to line 122 and make the following changes: if(!isEmpty(dot)) { # new line! exists($$dot) { HAVE_DOT = YES DOT_PATH = $$re_escape($${dot}) } # new line! } Add spaces to the beginning of the lines as necessary to make it look like the above. This has no effect on compilation, but it makes the code easier to look at. Save your changes. 10.) OK, it's crunching time. While still in the nifskope directory, enter the following: qmake-qt5 You should see a message about a created ".qmake.stash" file and you will notice a new file named "Makefile" in the nifskope directory. Note: On Slackware 15.0, "qmake-qt5" is just a symlink to "qmake", so you could try just "qmake" if you're getting "File not found" errors, but you may need to check your distro for the correct command to start qmake. Next, enter the following two commands in succession to build NifSkope: make make docs If the compile was successful, you should now have a new folder in the nifskope directory called "release", which contains the NifSkope executable and everything it needs to run: . .. doc shaders CHANGELOG.txt LICENSE.txt NifSkope README.txt kfm.xml list.txt nif.xml style.qss Enter the following while in the "release" folder to enjoy your shiny new Linux-native NifSkope! ./NifSkope If the compile was not successful, look closely at the errors. It will usually tell you which file the compiler had an issue with and generally what the hiccup was. Chances are you mistyped something above. Before you make any changes though, enter the following commands while in the nifskope directory to start with a clean slate: make clean rm .qmake.stash rm Makefile 11.) Bonus step (because this one goes to eleven!) The nifskope source does not provide a means of installing the executable on your system (there is some code for building an "rpm" package, but that's specific to Red Hat based distros like Fedora). Here's what I did to integrate NifSkope into mine. First, I created a new folder in my home directory called "bin" and added it to my PATH variable in my ".profile" and ".bash_profile" files: PATH=$PATH:$HOME/bin Next, I made a folder in "bin" called "NifSkope" and copied the contents of the nifskope source "release" folder into it. I then linked the NIfSkope executable to "nifskope" in my "bin" directory: ln -s ~/bin/NifSkope/NifSkope ~/bin/nifskope Now, when I type "nifskope" in a terminal or a command launcher, NifSkope will start up in all its glory. If you prefer to use a GUI, you can create a custom launcher that points to this file. The "res" folder in the nifskope source directory contains icon files if you want to get fancy. ==== Known Issues ==== Textures may not display on your meshes in the NifSkope render window. If your rendered mesh is pink or white and is not displaying any textures, try these steps: a.) Go to Options >> Settings >> Resources and make sure you have added the paths to your game's data directory or archive file. For Bethesda games, the path should be to the "Data" folder (not the "textures" folder) and/or the texture BSA files. b.) Windows path structures use the backslash "\" character to separate directories. Linux uses the forward slash "/" instead (the backslash character is used for escape sequences). Click on the mesh itself in the render window. In the block tree to the left, double-click the highlighted block to expand it (e.g. "NiTrShapeData"). Now double-click on the revealed "BSLightingShaderProperty", then click on the revealed "BSShaderTetxureSet" to highlight it. In the lower left window you should see a list of the textures assigned to the mesh. Notice that the texture paths are probably using backslashes (most mod authors use Windows). Double-click the texture name to edit it and change the backslashes ("\") to forward slashes ("/"), then hit enter. Voila! c.) Another thing to keep in mind is that unlike WIndows, Linux is case-sensitive. If you follow along with step b above, you may notice that the texture path and/or name is capitalized. Verify that the actual path/file is also capitalized, otherwise you will need to edit the texture name as above in step b, or change the name of the actual texture to match. BONUS TIP: If you click on the little purple flower next to the texture path, it will bring up a window that will let you navigate to and select your textures (click "yes" in the dialog that pops up before the file selector); however, you may still need to edit the path separators afterwards as in b above. Enjoy!
×
×
  • Create New...