A small example.
Let's get UT2004. All packages with skeletal meshes and animations are placed into "Animations" directory, all textures and materials are inside "Textures". Ok. Unpack umodel distribution into "Animations". Open any package:
umodel.exe 2K4_NvidiaIntro.ukx
---
Found 49 game files (5 skipped)
Loading package: 2K4_NvidiaIntro.ukx Ver: 127/29 Names: 179 Exports: 25 Imports: 38
Loading AnimNotify_Effect AnimNotify_Effect0 from package 2K4_NvidiaIntro.ukx
WARNING: package XEffects was not found
...
WARNING: package WeaponSkins was not found
WARNING: package PlayerSkins was not found
...
Umodel will show untextured mesh - you may notice "WARNING" messages about missing packages, also you may notice that umodel has found only 49 game files!
Let's try a different way.
umodel.exe -path=.. 2K4_NvidiaIntro.ukx
---
Found 848 game files (780 skipped)
Loading package: Animations/2K4_NvidiaIntro.ukx Ver: 127/29 Names: 179 Exports: 25 Imports: 38
Loading AnimNotify_Effect AnimNotify_Effect0 from package Animations/2K4_NvidiaIntro.ukx
Loading package: System/XEffects.u Ver: 127/29 Names: 1159 Exports: 917 Imports: 318
...
Loading package: Textures/WeaponSkins.utx Ver: 127/29 Names: 124 Exports: 64 Imports: 13
Loading package: Textures/PlayerSkins.utx Ver: 120/28 Names: 190 Exports: 154 Imports: 7
...
Umodel will show textured mesh. You may see that umodel has found 848 game files and successfully loaded all packages which were missed before.
Another sample.
Let's place umodel in a game directory (so "Animations" and "Textures" will be inside this directory). Start umodel with
umodel.exe 2K4_NvidiaIntro.ukx
All packages will be found, meshes will be textured.
Why?
Umodel scans game directory on startup. If you have not specified "-path" switch, it will use either directory extracted from full package filename (when you have started umodel with package name like "C:\GAMES\Unreal Anthology\UT2004\Animations\2K4_NvidiaIntro.ukx") or it will use current directory as a game root (like in examples above). Texure packages are placed outside of root in a 1st sample, but in 2nd sample we have moved root 1 level above, and all game packages becomes "under root".