If you need the users to provide an email address when they self-signup, then do not make the username required. When you do this, the username will *not* be required when a user creates their own account.
This happens by default when the following are true:
1) The site is a B2B site.
2) Allow Self-signup is turned on. (This setting is found in Sites > [site name] > Settings > General Info tab in the Site Basics section.)
3) Require Username for Self-Signup is turned off. (This setting is found in Sites > [site name] > Settings > General Info tab in the Site Basics section.)
Overriding the Site Settings:
There is one other way to make sure the email address is required even when you are requiring that they set a username, and that is by using the Profile Fields option under the User Management area in admin (site > User Management > Profile Fields). In this area, you will see a list of the fields that are showing on the Create Account Form that the self sign-up user will complete. In this area, you can mark the email address as required even though the system does not require it.
PLEASE NOTE! It is important that if you decide to make the email required when it was not previously, that you give your customers a way to enter an email address the first time they log into their site/portal. If you do not do this, they will not be able to check out. Make sure the user has permission to manage their profile. Shared users cannot edit their profiles in the store so any shared accounts without an email address will need to be edited by admin.