I have made a basic belt to use on others models, but how can I wrap my belt around a non-cylinder form (arm), so it will fit around an arm? What I want to achieve is like the shrinkwrap modifier, but with a preservation of volume. Can you shrinkwrap the inner faces of a belt and let the rest of the object follow with the object volume intact?
Usually this kind of work - modeling accessories - is not done in this way. Instead, you select parts of original mesh (character) in adjacent places where you'd like your belt / coat / whatever to be, duplicate them into another mesh (with P > By Selection) and start moving vertices around in that new mesh in order to make it look like belt / etc.
If you already have premodeled mesh it is possible to wrap it around your character but it may be far more complicated and far less convenient.
There is basic mesh representing an arm and basic mesh representing a necklace / belt in the example below.
I splitted its vertices into several vertex groups (total 3) like so:
Option 1 - shrinkwrapping accessory
There are added 3 Shrinkwrap modifiers to belt object - one per vertex group. One of them wraps inside verts, another one - middle part and 3-rd one - outside part of mesh. All of them use different Offset value in order to make parts of belt not intersecting.
Though this is possible, it won't provide you with flexibility - if necklace shown in gifs would have some kind of jewelry or clasp or something else detailed, it would be an awful task to wrap parts of them accordingly. Also even in this very simple case mesh representing belt is slightly deformed after wrapping which is not desired of course.
It is possible though to add parts of mesh which shouldn't be deformed when wrapping into another vertex group which won't be used by any modifier. Thus it will be possible to wrap accessory by using several ways at a time.
This way it's possible to avoid distortions of the mesh - lattice works kind of proprtional editing from this point of view, but it allows more flexibility because base mesh isn't changed (unless modificator is applied). Again, you can split mesh in several vertex groups and even assign them to different lattices (but this may be overkill).
Although these ways work, they should be used only if some complex accessory is needed to be wrapped around exhisting character. In general, if accessory isn't modeled yet it's better to duplicate base mesh for it from the original character and edit duplicated parts as needed.