Depends on the kit you have loaded.
If you’re using one of the agent kits with the fancy macro screen (I.E. Acoustic Agent Studio Kit), most of those have it coded in like so (From the GA 5 OM):
The open state of the closed hihat on A#1 and the shank hihat on A#0 can be controlled with MIDI controller #1 (modulation wheel) or with MIDI controller #4 (foot controller). Use these buttons to filter out any incoming MIDI data for controllers #1 or #4.
For example, activate MW to avoid that any incoming MIDI controller #1 is received from your MIDI keyboard.
If you’re working with a user built kit (or something from the Beat Agent Collection) that doesn’t have those fancy macro screens…in so far as I can tell, things get a bit more complicated. Sadly there is not a clear and simple method such as (In the MAIN pad editor: Select layer by CC value. It only has options for 'velocity, layer, round robin, random, and random exclusive. Odd that they left out an option to swap samples according to a CC value!).
My guess is that those Acoustic Agent kits use lua scripts to isolate those continuous controllers and convert them to key velocity in real time? Unfortunately users don’t have a way to add such scripts in GA5. Hopefully we’ll get some scripting and user macro building abilities in GA6?
So, if your kit has a wide variety of open hihat samples, the simplest thing to do is give each one its own dedicated pad and trigger note.
One possibility to host multiple hihat positions on the same pad is to simply go by key velocity. Play harder or softer to change hihat positions, but this approach is likely to be frustrating and limited with your drum sticks.
It is ‘possible’ to ‘learn’ the volume control of several pad layers and manipulate those via CC to ‘crossfade’ a stack of samples set to the ‘layer’ mode; however, I don’t think that would be very effective for the hihat situation you’ve described.
Another ‘work around’ is to host the high hat in his own dedicated instance of GA. There is a global Controller Selector option to shift key velocity to a CC event of choice, but it seems to be ‘global’. No way to ‘limit’ it to a specific pad, or even to a single ‘kit’ in one of the 4 kit slots.
Enabling this would allow you to stack your various open high hat samples on a single pad so they change by ‘velocity’ while building them, but clicking that option causes GA to ignore key velocity, and instead choose samples based on a CC value of your choice.
Have a seperate instance of GA dedicated to hosting any pads that you’d like to swap layers using a CC rather than by ‘velocity’.
Set it to use the same MIDI input/channel that your sticks transmit over.
Mute, remove, or remap anything in other GA instances triggered by that same note.
Yet another option…and perhaps even the best…
If you happen to use Cubase, there are also options to use MIDI transformers in the channel insert to monitor a given CC and adjust the key velocity or the note value itself in real time before sending it on to GA. Other DAWs might also have similar features.
I.E. Spread all your hihat positions across several dedicated pads in GA, each with their own unique trigger note. You could even have several velocity layers for each pad. Use a MIDI track transformer in Cubase to monitor a CC, and swap to the appropriate trigger note depending on the value/range of a given CC value.
Finally…there are a number of third party utilities and apps that can be amazing at transforming/manipulating real time MIDI and audio events. One that I have in mind is Bidule…where you could mix and mesh any number of plugins into a single consolidated instrument. It has all sorts of tools to manipulate, echo, and reroute incoming MIDI events on the fly. Such a utility is great at bolting ‘never had it and never will’ features and abilities onto any plugin, in any DAW.