FFXIV Housing Sim by lmcintyre - 1

Simulators

A housing simulator built in Unity for Final Fantasy FFXIV housing

Unknown VersionGNU General Public License v3.0Updated 288 days agoCreated on June 15th, 2018
Go to source

Note: This project is now deprecated in favor of the in-game housing preview functionality. I’ll be using the knowledge (and some code) from this project to create a Unity-based generic map viewer for the game soon.

FFXIVHousingSim

The current release should be considered pre-alpha and contains exploratory code not really meant for actual use. The goal of this project is to develop a housing simulator for Final Fantasy 14. Its current design uses a WPF-based asset exporter and a Unity-based map viewer.

mist house

In-game there are a variety of customization options for the exterior and interior of the home, as well as yard objects and indoor furniture. In the current retail version of FFXIV, there is no ability to preview these items unless someone obtains them and takes screenshots, or places them in their public home.

Main goals

  • Extraction of FFXIV models for use with the Unity project
  • Extraction of necessary FFXIV data such as model positions and housing fixtures for use with the Unity project
  • Loading of assets such as the two above
  • Ability to select an in-game plot to add a house at similar to retail FFXIV
  • Ability to customize the exterior of the house with different fixtures as well as their color
  • Ability to place any yard object at any plot
  • Ability to customize the interior of the house with different fixtures
  • Ability to place any furnishings in the interior of any house

Current state

The project is being actively developed by myself. It uses ufx’s fork of SaintCoinach with a very minor fix of mine for reading game assets.

Currently, the project has some functionality including (assume all functionality is incomplete):

  • Extraction of FFXIV models for use with the Unity project
  • Extraction of necessary FFXIV data such as model positions and housing fixtures for use with the Unity project
  • Loading of assets such as the two above
  • Rudimentary plot selection and camera movement
  • Early implementation of housing exterior loading

How to use it

  1. Make sure you have the game installed and updated.
  2. Clone the repository, clone the submodule
  3. Open the SaintCoinach solution and restore the NuGet packages, then build SaintCoinach.
  4. Open the FFXIVHSLauncher solution and restore the NuGet packages. Change the string ‘root’ in FFXIVHSLib.FFXIVHSPaths to point to the folder you’d like the programs to use and build the solution. If the reference to UnityEngine.dll is broken, at the top of Visual Studio, click Tools > NuGet Package Manager > Package Manager Console. Once it appears, enter Add-Unity3DReference -AssemblyName UnityEngine -ProjectName FFXIVHSLib and press enter. If this doesn’t work, make sure you restored the NuGet packages. A post-build script copies FFXIVHSLib.dll to the Unity project. If this doesn’t take place, copy it manually.
  5. Select a territory and click all buttons under ‘Extract’, but click ‘Extract Map JSON’ and ‘Ext Housing JSONtwice. This is what extracts models.
  6. Open the Unity project by opening the folder “FFXIVHousingSim” in the root directory of the repository you cloned. Click File > Open > Navigate into Scenes > MainScene.unity.
  7. You may need to install the asset store packages used in the project. Open the asset store from Window > General > Asset Store and search for and import “json.net”. Click Window > Package Manager. In the top left, click the “All” tab. Click Cinemachine in the left list box. Click “Install” in the top right.
  8. Change the ward to your extracted ward in StartupScript.cs and click Play.
  9. After a few seconds you should have a loaded map! If you want to play around with exterior fixtures, modify the ward folder’s Landset.json file by hand and relaunch the ‘game’.

The above documentation may be incorrect at any time and is untested. Visual Studio is used for the Launcher, and JetBrains Rider is used for the Unity code.

Show all projects by lmcintyre