Any convenient way to channel packing in blender?

hi guys, are there any easy way doing channel packing in blender?
basically I want to pack Ambient-occlusion, Roughness, Metallic into one texture.
using photoshop packing texture is kind of annoying to me.

You can do it via compositing nodes, but IMO, it’s more painful than doing it in a 2D app.

You can put 4 grayscale textures in one RGBA image by plugging each one into the combine RGBA node.