You won't be able to make use of the required setting on fields; you'll need to make them all optional. Then you can create a dynamic true/false variable with a condition to determine if the fields have been filled out per your rules.
As a simple example, consider a scenario where the agent must collect a name, either as first and last or as a single full name. I created three text inputs that store to variables FirstName, LastName, and FullName. I created a dynamic true/false variable with the following logic: (length({{FirstName}}) > 0 and length({{LastName}}) > 0) or (length({{FullName}}) > 0). The variable will be true if the first and last names are set or if the full name is set. You can then use this variable in a conditional action to allow or prevent the agent from saving the data or going to the next page, for example.