Hello,
I wouldn't say it is impossible, but it's also very difficult and requires cooperation from digitalocean or some other party to send public IP addresses through a router system you provide. It is far from trivial and you can't achieve it from just your end of things unless you want to run your own ISP.
What you can do that is relatively simple is to use Access Server to accept traffic on its public IP on certain ports or port ranges, and forward those internally to a particular connected VPN client. This is the DMZ functionality built into Access Server. See this page for more information:
https://openvpn.net/vpn-server-resources/how-to-setup-dmz-in-openvpn-access-server/
If you need this access to be extended to a device on the network that the VPN client is on, you could use port forwarding on the VPN client. Linux for example can do this with iptables, to take packets coming in on a port on the VPN interface (forwarded there by the DMZ function on Access Server) and pass them on to another network device.
If you really insist on doing public IP addressing on the VPN clients directly then you might want to look at some provider like ExtraIP that can give you a public IP block and encapsulate that through GRE to a target router system that can then use that to assign devices those public IP addresses directly. Note that this will violate the MTU 1500 requirement as the encapsulation takes some bytes. I've set this up in the past, it's not magic.
Good luck,
Johan