舉報

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