Hands-On Artificial Intelligence with Unreal Engine
Francesco Sapio更新时间:2021-06-24 15:24:29
最新章节:Leave a review - let other readers know what you thinkcoverpage
Title Page
Copyright and Credits
Hands-On Artificial Intelligence with Unreal Engine
Dedication
About Packt
Why subscribe?
Packt.com
Contributors
About the author
About the reviewers
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
Section 1: The Unreal Framework
Making the First Steps in the World of AI
Before starting...
Prerequisites
Installing and preparing the software
Unreal Engine
Visual Studio
Becoming an AI Game Developer
What it means to be an AI Game Developer
AI in the game development process
A bit of history
What is AI?
A glance into the past
AI in games
AI in games – Industry and Academia
Planning our journey
Technical terminology
The bottom-up approach
The agent schema
Unreal Engine AI Framework
A sketch of our journey
Decision-making with Behavior Trees (chapters 2 6 8 9 and 10)
Navigation (chapters 3 and 7)
Environment Query System (chapters 4 and 12)
Agent Awareness (chapters 5 and 12)
Crowds (chapter 7)
Designing Behavior Trees (chapters 8 9 and 10)
Debugging methods for Game AI (chapters 11 12 and 13)
Going beyond (chapter 14)
Enabling AI for C++ users
Summary
Behavior Trees and Blackboards
How Behavior Trees work
The structure of a Mathematical Tree
Behavior Tree components
Root
Tasks
Composite
Decorators
Service
Blackboards and their integration with Behavior Trees
Creating our AI project
Starting Behavior Trees from AI Controllers
Creating the Behavior Tree and the Blackboard
Creating the Blackboard
Creating the Behavior Tree
The AI Controller to run a Behavior Tree
AI Controller in Blueprint
AI Controller in C++
Summary
Navigation
What to expect from a Navigation System
Unreal Navigation System
Generating the Navigation Mesh
Setting parameters for the Nav Mesh
Display settings
Generation settings
Project Settings
Settings on the Character Movement Component
Modifying the Navigation Mesh
Nav Modifier Volume
Nav Mesh Areas
Creating a NavArea class in Blueprint
Creating a NavArea class in C++
Nav Link Proxy
Creating a Nav Link Proxy
Simple Links and Smart Links
Both Simple and Smart Links
Simple Links
Smart Links
Other settings of the Nav Link Proxy
Extending the Nav Link Proxy
Navigation Avoidance
Navigation Filtering
Creating a Navigation Filter in Blueprint
Creating a Navigation Filter in C++
Overriding the Navigation System
Summary
Environment Querying System
Enabling the Environment Querying System
Understanding the Environment Querying System
The general mechanism of EQS
The components of an Environment Query
Environment Queries
Contexts
Generators
Tests
Visual representation of the components
Running an Environmental Query within a Behavior Tree
Not only Locations but also Actors!
Exploring the built-in nodes
Built-in Contexts
Built-in Generators
Actors Of Class
Current Location
Composite
Points: Circle
Points: Cone
Points: Donut
Points: Grid
Points: Pathing Grid
Built-in Tests
Visualizing Environment Queries
Creating components for the Environment Querying System
Creating Contexts
Creating the Player Context in Blueprint
Creating the Player Context in C++
Creating Generators
Creating Tests
Summary
Agent Awareness
Perception of AI in video games
Sound
Footsteps
Knocking over objects
Position
Zone of proximity
Interacting with other enemies
It isn't all about the "enemy"
Perceptive AI isn't just humanoid or animalistic
Impact of Players
Overview of the Sensing System
The AIPerceptionComponent
AIPerceptionComponent in Blueprint
Sense – Sight
Sense – Hearing
AIPerceptionComponent and Senses in C++
Different Teams
The AIStimuliSourceComponent
All Pawns are automatically detected
AIStimuliSourceComponent in Blueprint
AIStimuliSourceComponent in C++
Hands-on with the perception system – Sight AI Controller
A Blueprint perception system
A C++ perception system
Testing it all
Summary
Extending Behavior Trees
A quick recap on Behavior Trees
Creating a Task
Creating a Blueprint Task
Creating a Task in C++
Creating a Decorator
Creating a Decorator in Blueprint
Creating a Decorator in C++
Creating a Service
Creating a Service in Blueprint
Creating a Service in C++
Creating a Composite Node
Creating new type of nodes or new types of Trees
Summary
Crowds
Crowds in games
Building believable crowds
Animals
Crowd movement
Crowd dynamics and creating realistic behavior
Flow-based
Entity-based
Agent-based
Crowds in Unreal
Reciprocal Velocity Obstacles (RVO)
RVO in Unreal
Advanced RVO settings
RVO in Blueprint
RVO in C++
RVO observations
RVO resources
Detour Crowd
How the Detour Crowd system works
Using the Detour Crowd system
Detour Crowd settings
Debugging the Detour Crowd Manager
More crowd resources
Summary
Section 2: Designing and Implementing Behavior Trees
Designing Behavior Trees - Part I
The Expected Behavior
Building the Nodes
Nodes that already exist
Decorator – check variable
Check Variable Blueprint implementation
Check Variable C++ implementation
Task – Find Random Location
Find Random Location Blueprint implementation
Find Random Location C++ implementation
AI Controller
Implementing the AI Controller in Blueprint
Implementing the AI Controller in C++
Using the AI Controller
Summary
Designing Behavior Trees - Part II
Setting up the environment for testing the Behavior Tree
Creating the Player
Creating the Chasing Agent
Preparing the Level
Service – Update Chasing Behavior
Update Chasing Behavior Blueprint implementation
Update Chasing Behavior C++ implementation
Summary
Designing Behavior Trees - Part III
Building the Behavior Tree
Setting up the Blackboard
Building the Tree
Running the Behavior Tree
Running the Behavior Tree using the Blueprint controller
Running the Behavior Tree using the C++ controller
Bug Correction
Improving further (C++ only)
Node Name
A better description for the Decorator
Filtering Blackboard Keys
Summary
Section 3: Debugging Methods
Debugging Methods for AI - Logging
Basic Logging
Console Logging and on-screen messages in Blueprint
On-screen messages in C++
Console Logging in C++
Creating a Custom Logging Category (C++)
Summary
Debugging Methods for AI - Navigation EQS and Profiling
Debugging behavior trees
Profiling and visualizing environmental queries
Visualizing environmental queries with the EQS testing pawn
Creating the EQS testing pawn
Creating a test environmental query
Settings of the EQS testing pawn to visualize environmental queries
Profiling environmental queries
Setting up the test assets for EQS profiling
The environmental query profiler
Saving and loading EQS stats
Testing and visualizing the navigation mesh
Visualizing the navigation mesh
Navigation test actor
Profiling AI
Profiling with the console
Creating a custom stat group
Session frontend
Summary
Debugging Methods for AI - The Gameplay Debugger
The anatomy of the Gameplay Debugger
Gameplay Debugger Extensions
Gameplay Debugger categories
Category 0 – Navmesh
Category 1 – AI
Category 2 – Behavior Tree
Category 3 – EQS
Category 4 – Perception
The Nav Grid Category
Multiple Categories on-screen
More Categories
Gameplay Debugger settings
Extending the Gameplay Debugger
Creating a module with the use of a new plugin
Setting up the module to work with the Gameplay Debugger
Creating a new Gameplay Debugger Category
Registering the Gameplay Debugger Category
Visualizing the custom Gameplay Debugger Category
Creating an Extension for the Gameplay Debugger
The structure of the Extension
Creating the Extension class
Registering the Extension
Summary
Going Beyond
Why is psychology an important consideration for AI?
Psychology and AI in games
Building better AI through psychology
Machine learning
Uses of AI and machine learning in games
Uses for AI in games
Uses for machine learning in games
Adaptive behavior
What we haven't covered in this book
Motion and navigation (low level)
Racing games
Agent awareness
Environment Query System
Decision-making and planning
Discrete games/board games
Learning techniques
Procedural Content Generation (PCG)
Search and optimization
Multi-Agent Systems
AI and psychology
Going beyond classical AI
Much much much more!
Some useful resources
AI and philosophy
Goodbye
Other Books You May Enjoy
Leave a review - let other readers know what you think
更新时间:2021-06-24 15:24:29