Motion Generation for Imaginary Creatures
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Assets 🎨 inverse joint Aug 5, 2018
Packages UI Jul 31, 2018
ProjectSettings 🎨 .NET 4 Jul 17, 2018
docs
.gitattributes
.gitignore 🎨 update projectSettings Jul 17, 2018
.gitmodules 🎨 update submodule Aug 5, 2018
LICENSE
README.md

README.md

RLCreature for Unity (日本語)

Project Page

Paper

Install

0. Install Unity

  • We are using 2018
  • Set ScriptingRuntimeVersion to .NET4.X

1. Clone Repository

  • git clone --recursive https://github.com/dwango/RLCreature.git
  • git-lfs is required

2. Install Dependencies

3. Open Demo Scenes

  • Assets/RLCreature/Sample/RandomCreatures
  • Assets/RLCreature/Sample/DesignedCreatures
  • Assets/RLCreature/Sample/VariousHeights
  • Assets/RLCreature/Sample/Driving
  • Assets/RLCreature/Sample/SimpleHunting

Create Original Creatures

see Assets/RLCreature/Sample/DesignedCreatures/DesignedCreaturesEntryPoint.cs

// Instantiate prefab (see Assets/RLCreature/Sample/DesignedCreatures/CreaturePrefabs)
var centralBody = Instantiate(creaturePrefab);

// Add Sensor and Mouth for food
Sensor.CreateComponent(centralBody, typeof(Food), State.BasicKeys.RelativeFoodPosition, range: 100f);
Mouth.CreateComponent(centralBody, typeof(Food));

// Initialize Brain
var actions = LocomotionAction.EightDirections();
var sequenceMaker = new EvolutionarySequenceMaker(epsilon: 0.1f, minimumCandidates: 30);
var decisionMaker = new ReinforcementDecisionMaker();
var souls = new List<ISoul>() {new GluttonySoul()};

var brain = new Brain(decisionMaker, sequenceMaker);
var agent = Agent.CreateComponent(creatureRootGameObject, brain, new Body(centralBody), actions, souls);

Reference

@inproceedings{ogaki2018,
  author = {Keisuke Ogaki and Masayoshi Nakamura},
  title = {Real-Time Motion Generation for Imaginary Creatures Using Hierarchical Reinforcement Learning},
  booktitle = {ACM SIGGRAPH 2018 Studio},
  year = {2018},
  publisher = {ACM}
}