Thanks to all the people who have given me corrections, including
Greg Pugliese, Craig Reynolds, Xiaoyuan Tu and Ian Wright.
Page 2, Line 20
-
Most of techniques in this book therefore apply ...
Should read:
Most of the techniques in this book therefore apply ...
Page 3, Line 23
-
... even the the player's expectations
Should read:
... even the player's expectations
Page 18, Line 24
-
... is they have different types of controller.
Should read:
... is that they have a different type of controller.
Page 20, Line 7
-
inline tgController* getConstroller();
Should read:
inline tgController* getController();
Page 22, Line 33
-
Citation should include:
[Tu00] Xiaoyuan Tu. Artificial Animals for Computer Animation: Biomechanics, Locomotion, Perception and Behavior. Springer-Verlag, New York, NY, 2000.
Page 23, Lines 17-21
-
The code snippet would be clearer if it read (see related correction on Page 55):
// calculate character c's required acceleration from the desired velocity
tgRealVec acceleration(c->getAction().getDesiredVeclocity());
acceleration.subtract(c->getVelocity());
// calculate required force from the acceleration
tgRealVec force = acceleration.scale(c->getMass());
// force can't be greater than the maximum possible force
force.clampMaxLength(c->getMaxForce());
// re-calculate acceleration for new (possibly) clamped force
acceleration = force.scale(1.0/c->getMass());
Page 24, Line 21
-
frame rate is to avoid missing collisions, or numerically solve stiff ...
Should read:
frame rate are to avoid missing collisions, or to numerically solve stiff ...
Page 25, Line 32-35 (also applies to Page 27, Lines 4-7)
Page 41, Lines 16-18
- ... involves calculating its dependents. For example, calcMyDistanceToNearestCharacter depends on calcMyDistanceToCharacter which in turn depends on calcMyDistanceToCharacter. If some of a percept's dependent's have ...
Should read:
... involves calculating its dependents. If some of a percept's dependent's have ...
Page 43, Line 24
-
... hearing radius and so is visible (or at least audible).
Should read:
... hearing radius and so is audible but not visible.
Page 45, Line 21-22
-
... percept is calcPositionTagged Future that predicts ...
Should read:
... percept is calcPositionTaggedFuture that predicts ...
Page 49, Lines 6 and 20
-
tgRealVec tgPerception::calcTaggedPositionFuture() const
Should read:
// Prediction is for one tick into the future
tgRealVec tgPerception::calcPositionTaggedFuture() const
-
calcTaggedPosition Future is particularly ...
Should read:
calcTaggedPositionFuture is particularly ...
Page 50, Line 1
-
Similarily, as mentioned ...
Should read:
Similarly, as mentioned ...
Page 52, Line 31
-
... a label, a set of label, a string, ...
Should read:
... a label, a set of labels, a string, ...
Page 53, Line 22
-
... from the distribtion
Should read:
... from the distribution
Page 55, Lines 9-11 and 24
-
void tgControllerNPC::calcAction(int whoami)
{
perception->setMyIndex(whoami);
Would be more consistent as:
void tgControllerNPC::calcAction(int myIndex)
{
perception->setMyIndex(myIndex);
-
v.subtract(perception->getMyVelocity());
Should be deleted altogether (see related correction on Page 23).
Page 57, Line 22 - 23
-
... percept calcIsCollisionsImmininent
Should read:
... percept calcIsCollisionImminent
Page 58, Line 16
-
... returns a Boolean.
Should read:
... returns an enumerated type.
Page 59, Line 10
-
... reason they are suitable representation is ...
Should read:
... reason they are an appealing representation is ...
Page 62, Line 16
-
... use an enormous amounts of memory
Should read:
... use an enormous amount of memory
Page 67, Line 36
-
The lastTaggedbyList ...
Should read:
The lastTaggedByList ...
Page 68, Lines 8, 18 and 28-29
-
lastTagged ByList had better be ...
Should read:
lastTaggedByList had better be ...
-
// Note: lastTaggedIndex is a class varaible
Should read:
// Note: lastTaggedIndex is a class variable
-
... suppose character i was tagged by character j
who then tagged character k all before the updateLastTagged was called.
Should read:
... suppose character i tagged character j, who then tagged character k, all
before updateLastTagged was called.
Page 70, Lines 4 and 12
-
perception->getTaggedCharacter();
Should read:
perception->getWhoLastTaggedMe();
-
perception->calcMyDistanceToTaggedCharacter();
Should read:
perception->calcMyDistanceToWhoLastTaggedMe();
Page 71, Line 4
-
... the memory percept taggedLastKnownPosition is ...
Should read:
... the memory percept taggedLastKnownPosn is ...
Page 72, Line 35
-
... maintenance abilites ...
Should read:
... maintenance abilities ...
Page 73, Line 8
-
... game-state, humans players ...
Should read:
... game-state, human players
Page 75, Line 8
-
... that there has to a be a separate ...
Should read:
... that there has to be a separate
Page 85, Line 5
-
... branching facto is five ...
Should read:
... branching factor is five ...
Page 89, Lines 12-14
-
However, longer cycles are not removed ...
Might be clearer as:
However, cycles longer than one move are not removed ...
Page 91, Line 7
-
... discrete representation, of the ...
Should read:
... discrete representation of the ...
Page 92, Line 6
-
... path planing ...
Should read:
... path planning ...
Page 93, Lines 6-8
-
For example, the path ...
Should read:
For example, the path b, c, f, i, j, m, n is clearly shorter than the path
b, d, e, k, j, m, n even though it contains the same number of steps.
Page 99, Figure 6.7
-
On the S, W path, the "NP_" dot is missing the "C";
on the W, U path, the "_PC" is missing the "N"
Page 110, Line 32
-
... will come to dominante game ...
Should read:
... will come to dominate game ...
Page 111, Line 12 and 32
-
... have even a chance success ...
Should read:
... have even a chance of success ...
-
... reverts to a being regular ...
Should read:
... reverts to being a regular ...
Page 141, Line 24
-
Ian Wright. Emotional Agents. Master's Thesis, University of Birmingham, 1997.
Should read:
Ian Wright. Emotional Agents. PhD Thesis, University of Birmingham, 1997.
Last edited Sun Jul 22 22:25:56 2007
by John Funge.