This tutorial is subject to change if new information is given on how to make a Trick Weapon in DS3.
So, first of all, the information inside this document is not my thing, I just organized and put together everything that Appa and Halvard taught about making a trick weapon, so all credits to them.
(written and organized by Anonim01, transcribed to the wiki by geeeeeorge)

Halvard’s tutorial and conversation with PappaAppa

Conversation 1:

“1) Configure the part file xml model indexes (and animation index for bb weapons) so that untransformed is index 0 and transformed is index 1 (200 and 201) if you got more models, just do 2 and 3 (202, 203).
2) In equipweaponparam, copy a dual wield weapon to start as your base. It needs some dual wield flags set to work, but can't recall them on the spot. Just copying a dual wield param entry like sellswords will have them setup right tho so do that.
3) Change its model id to the part file id of your transform weapon.
4) Go to absorpposparamid and create a new entry. Edit the values so that one handed stance equips model 0 to the mainhand, and model 1 to the back (or a special dummy point, more on that later) also edit the two handed stance so that model 0 gets equiped to the back (or the special dummy point) and model 1 gets equiped to the mainhand (mainhand = 20).
I have a guide going into this param that I helped Appa with a while ago, It even literally has a trick weapon example of the filesetup in the parts file.
=> Progress so far: one handed you swing around untransformed, once you two hand you swing around transformed and the untransformed gets moved to your back (or special dummy point)
You basically are done. There are just a few tricks left to make it visually better.
5) Add a special dummy point WAY above or WAY below the player model. And use this instead of equiping unused models to the back. tada they disappear.
6) Find the animation that plays when you switch stance and copy a little event from there (forgot its name but it's small and takes 3 values iirc) that is responsible for changing your stance. Add that to whatever move you have setup as your transform move.
=> Progress so far: fully functional trick weapon. This is probs where most will stop, but you can make it better still

7) Get katalash's decompiled c0000.hks from #tools-and-resources and start messing with which buttons trigger which actions. This will allow you to have stuff like having transform on Y/triangle instead of kick or some other move. This is a lua (coding language) file so make sure you have a least a basic understanding of how code is written. let's be real tho if you know how the if statement work you'll be able to read 95% of this file cuz Fromsoft

Conversation 2:

Ubz9Afg.png
“Made this a while ago.
If you are talking about something similar to sellswords, for example, the first sword is index 200, and the second 201. 202 and 203 are in vanilla used for sheaths, like on onikiri it's 201.
So look at the blue stuff, then look at the light purple, since you are one handing the weapon, and then there are two possible positions: one for if it's equiped in the mainhand, and one for if it's equiped in the offhand, you probs want the mainhand one (right hand), so OneHandDamiPolyId2.”

“When you have a weapon part file, it can hold several flver models inside of it. As far as I'm aware up to 4 or at least that's the most I've seen in vanilla DS3. So, let's take onikiri as example. Model index 200 is the big sword. Model index 201 is the small sword, the flver file also gets _1 at the end but this doesn't really matter. Its the index you set in the yabber file that matters. Model index 202 is the first sheeth, the flver file also gets _2 at the end. Model index 203 is the second sheeth, the flver file gets _3 at the end.

jNB2kJJ.png
This is what the wepabsorpposParam 1029 looks like, which is the one that onikiri uses (it references this row in equipParamWeapon).
If you follow the table I posted above, you'll notice that the big sword is attached to dummy point 20 when it's one handed in the right hand, which makes sense cuz that point is on the right hand. When it's one handed in the left hand it's on 21, which is positioned on the left hand of the player model then it says 20 one low below, which also makes sense cuz my table says that's the position for when it is two handed, in which case it is also attached to the right hand. Below that is 75, this dummy point is located at the hip and my table says that that field is responsible for when it is equiped to the left hand slot, but you are two handing the right hand weapon in which case it needs to sheath it to the hip.

So to come back to your own use case:
"id like my offhand dual weapon to be hidden while one handing"
With offhand dual weapon I assume you mean like the small katana of onikiri
That model should have index 201 so look at the blue rows on my table. We are talking about the player being in the one handed stance, so look at the light purple on my table. That leaves OneHandDamipolyId2 and OneHandDamipolyId3.
If the weapon is equiped to the right hand slot, it will be at the position OneHandDamipolyId2 says it should be.
If the weapon is equiped to the left hand slot it will be at the position OneHandDamipolyId3 says it should be.
Now to make it disappear, add a dummy point to the model that's extremely far below the player model and input that reference id in there. For example I added a dummy point 410 like 100 meters below the player model and teleport models I don't want to be shown there.”

PappaAppa Text Tutorial

1. Pick a weapon model
2. Pick a second model
3. Open up the first weapon you want to be the untransformed one - unpack via yabber.
4. Head into the xml for you weapon and then add another entry for another flver (your second model's flver).
5. Select an id that starts from 200+ so it should look like this:

<?xml version="1.0" encoding="utf-8"?>
<bnd4>
  <filename>wp_a_1609.partsbnd.dcx</filename>
  <compression>DarkSouls3</compression>
  <timestamp>07D7R6</timestamp>
  <format>0x74</format>
  <bigendian>False</bigendian>
  <flag1>False</flag1>
  <flag2>False</flag2>
  <unicode>True</unicode>
  <extended>0x04</extended>
  <files>
    <file>
      <flags>0x40</flags>
      <id>100</id>
      <root>N:\FDP\data\INTERROOT_win64\</root>
      <path>parts\Weapon\WP_A_1609\WP_A_1609.tpf</path>
    </file>
    <file>
      <flags>0x40</flags>
      <id>200</id>
      <root>N:\FDP\data\INTERROOT_win64\</root>
      <path>parts\Weapon\WP_A_1609\WP_A_1609.flver</path>
    </file>
    <file>
      <flags>0x40</flags>     <----- This is the new one i added
      <id>201</id>
      <root>N:\FDP\data\INTERROOT_win64\</root>
      <path>parts\Weapon\WP_A_1609\WP_A_1609_1.flver</path>
    </file>
  </files>
</bnd4>

6. Proceed now into the root folder and you will see one flver file, one tpf file. This is where youll want to add your second model.
7. Once added make sure you also add the TPF textures into the existing tpf folder and edit the .xml for it as well. Your second model requires the textures paths by unpacking the tpf and adding it via the material option in FLVEREditor.
8. Step 7 may be skipped if your doing a BB weapon as they have the same textures as base vs Transformed in that case youll simply set textures paths to the already existing tpf:

<?xml version="1.0" encoding="utf-8"?>
<bnd4>
  <filename>wp_a_1609.partsbnd.dcx</filename>
  <compression>DarkSouls3</compression>
  <timestamp>07D7R6</timestamp>
  <format>0x74</format>
  <bigendian>False</bigendian>
  <flag1>False</flag1>
  <flag2>False</flag2>
  <unicode>True</unicode>
  <extended>0x04</extended>
  <files>
    <file>
      <flags>0x40</flags>
      <id>100</id>
      <root>N:\FDP\data\INTERROOT_win64\</root> <--I added my second models textures to this tpf
      <path>parts\Weapon\WP_A_1609\WP_A_1609.tpf</path>
    </file>
    <file>
      <flags>0x40</flags>
      <id>200</id>
      <root>N:\FDP\data\INTERROOT_win64\</root>
      <path>parts\Weapon\WP_A_1609\WP_A_1609.flver</path>
    </file>
    <file>
      <flags>0x40</flags>     <----- This is the new FLVER I added  CHECK YOUR ID'S!
      <id>201</id>
      <root>N:\FDP\data\INTERROOT_win64\</root>
      <path>parts\Weapon\WP_A_1609\WP_A_1609_1.flver</path>
    </file>

10. Now your weapon is setup correctly (may vary depending on how many FLVR you use Todays example is cleary 2 FLVER and 1 TPF
11. Repack your weapon.
12. Now go get your c0000 chr file.
13. Unpack it via yabber.
14. Open the FLVR (inside root folder again).
15. Locate yourself to the dummy tab
16. The reason we are here is because we need to move a dummy poly id far below the map to hide our "offhand" transform/non weapon
17. I will provide my own modified c0000 in the description as well as ?ServerName?.
18. But you must need tp type in the section of the left hand side and hit check.
19. This will tell you on the right hand side what dummy poly it is.
20. I chose id 260 because it was on the ground already and simply after you have selected your Dummy poly you will then need to apply a large # such ass 100 to the y axis in translation and then hit mod.
21. Your dummy poly is now moved. Go ahead and hit json mod to save it.
22. Repack the folder
23. ONTO YAPPED!
24. Head to weapon absorbparam. Now you need to set your absorption for your primary and secondary models.
26. The 1handed weapon will be the top ids. Set 1h to 21 the next id to 20 and set 2h to 260 if using my c0000 chr, the next section down set 1h id o and 1 both to 260 and set 2h id to 20.
27. Give your weapon this new weapon absorbtionparam and you basically done.