As explained in the Macro Arguments section of the documentation, when passing an expression as an argument to a macro you need to wrap that expression within back-quote characters so the expression gets evaluated first before its result gets passed to the macro.
You are using an Absolute (pathed) URL to reference the image being stored on your local drive, likely so that the image will appear within the Test and Play options of the Twine 2.x application.
The issue with doing that is that you’ll later need to edit all such URLs to remove the file:///C:/Projects/An Elemental Existence/
part before you build a “release” using the Publish to File option, because the end-users aren’t likely have such a path on their local drives.
It is generally advised to use the Publish to File option to create a Story HTML file when you want to test/view images, in your case you would save that file within the C:/Projects/An Elemental Existence/
folder on your local drive. Then you can use a Relative (pathed) URL (like to reference that image, which means the end-users will also be able to see the image in your “released” version of the project.
The following two examples show: a fixed version of your original code; as well as one using a Relative URL.
<<character 'Sydney' `'file:///C:/Projects/An Elemental Existence/images/Sydney/' + $sGender + $sMood + '.png'`>>
<<character 'Sydney' `'images/Sydney/' + $sGender + $sMood + '.png'`>>
note: some Authors will use a variable to store the “absolute” part during development, and then edit that variable’s value just before creating a “release” version of their project. One such way to do that is to add code like the following to your project’s StoryInit special passage…
<<set setup.path to "file:///C:/Projects/An Elemental Existence/">>
…then change the URL referencing the external media files to include that variable…
<<character 'Sydney' `setup.path + $sGender + $sMood + '.png'`>>
…making sure that the remember to change the variable’s value in StoryInit to the following before creating a “release” of their project…
<<set setup.path to "">>
The reason I’ve used a variable defined on the special setup object instead of a Story Variable is because that variable’s value doesn’t change during the playthrough of the project, so there is no need to persist that value in either the History or Save systems.