🐟 Medium & Small Freshwater Fish Pack — Simple fish meshes #1
Fish species included:
Crucian Carp, Prussian Carp, Wild Carp, Leather Carp, Silver Carp, Bighead Carp, Common Bream, White Bream, Roach, Rudd, Ide, Chub, Dace, Bleak, Asp, Gudgeon, Tench, European Perch, Ruffe, Northern Pike, Brown Bullhead, Black Piranha.
Aquarium fish:
Guppy, Platy, Neon Tetra, White Cloud Mountain Minnow.
Package Contents
- 23 unique meshes
- 26 fish variants (additional textures for Leather Carp, Bighead Carp, and
- Prussian Carp)
- 2K textures
- Cooked/Fried fish texture variants for larger fish species
- 1,350–1,550 polygons per meshAnimations & Blueprints
Every fish includes 3 animations: - Idle (hovering)
- Swimming
- Folded side fins
- Each fish comes with its own Animation Blueprint featuring a simple interface that accepts:
- Swimming speed
- Enable/disable folded fin mode
- The Animation Blueprint automatically blends animations based on movement speed and the selected fin mode, producing natural fish behavior.
- A demonstration actor is included, randomly changing swimming speed to showcase dynamic animation transitions.
Demo Scene
The project includes both an aquarium and a pool where the fish are already swimming or spawns when needed.
You can approach the fish to switch between species, or see aquarium fish simultaneously.
Recommended asset
For realistic fish AI and population management, I highly recommend pairing this pack with Simple Fish Logic.
It provides advanced fish behavior and population control, straightforward integration instructions:
- Copy Simple_Fish_Meshes_1 folder in Simple Fish Logic content folder
- Delete folder Demo in Simple_Fish_Meshes_1, its content not needed for integration
- Open BP_FishMain blueprint and find variable MoodPresets — change it from DT_FishMoods to DT_SFMIntegratedMoods
- (Only for v1.13 or below) In BP_FishMain find and open function SetPresets, exclude switch node from Presets variable, and get from this variable node “enum to string” first, next – string to name, then connect it to Row Name in Get Data Table node replacing SelPresetName variable. It is very important to have all list of presets available without need to add every entry mannualy.
- In BP_FishMain blueprint and find variable Presets — change it type from EN_MoodPreset to EN_SFMIntegratedMoodPresets, try compile and fix some errors with new type of this variable(refresh spawn actor nodes, recconect preset variable to it)
- In BP_FishMain in Set Anim Speed function, add right next Set Speed node of interface another similar Set Speed node from BPI_SFMFish_interface, connect it with speed and execution connections.
- In BP_FishMain in Get Anim BPRef function, add right next setted FishAnimBP variable SetMaxSpeed node from BPI_SFMFish_interface
- In BP_FishMain add interface BPI_SFMFishInterface, find in interfaces vars GetCurMesh — doubleckick and add mesh ref connection to output noode
- Now you can use Simple Fish Logic asset like usual, but with all new fishes available in preset menu on BP_FishMain properties options.

