Ebook Unity Virtual Reality Development With Vrtk4 A No Coding Approach To Developing Immersive VR Experiences Games Apps 1St Edition Christopher Coutinho Online PDF All Chapter

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 70

Unity® Virtual Reality Development with

VRTK4: A No-Coding Approach to


Developing Immersive VR Experiences,
Games, & Apps 1st Edition Christopher
Coutinho
Visit to download the full and correct content document:
https://ebookmeta.com/product/unity-virtual-reality-development-with-vrtk4-a-no-codin
g-approach-to-developing-immersive-vr-experiences-games-apps-1st-edition-christop
her-coutinho/
More products digital (pdf, epub, mobi) instant
download maybe you interests ...

Virtual Reality with VRTK4: Create Immersive VR


Experiences Leveraging Unity3D and Virtual Reality
Toolkit 1st Edition Rakesh Baruah

https://ebookmeta.com/product/virtual-reality-with-vrtk4-create-
immersive-vr-experiences-leveraging-unity3d-and-virtual-reality-
toolkit-1st-edition-rakesh-baruah/

XR Development with Unity: A beginner’s guide to


creating virtual, augmented, and mixed reality
experiences using Unity 1st Edition Anonymous

https://ebookmeta.com/product/xr-development-with-unity-a-
beginners-guide-to-creating-virtual-augmented-and-mixed-reality-
experiences-using-unity-1st-edition-anonymous/

Complete Virtual Reality and Augmented Reality


Development with Unity Leverage the power of Unity and
become a pro at creating mixed reality applications 1st
Edition Jesse Glover
https://ebookmeta.com/product/complete-virtual-reality-and-
augmented-reality-development-with-unity-leverage-the-power-of-
unity-and-become-a-pro-at-creating-mixed-reality-
applications-1st-edition-jesse-glover/

Unreal for Mobile and Standalone VR: Create


Professional VR Apps Without Coding 1st Edition Cornel
Hillmann

https://ebookmeta.com/product/unreal-for-mobile-and-standalone-
vr-create-professional-vr-apps-without-coding-1st-edition-cornel-
hillmann/
Basics of Virtual Reality From the Discovery of
Perspective to VR Glasses Grasnick

https://ebookmeta.com/product/basics-of-virtual-reality-from-the-
discovery-of-perspective-to-vr-glasses-grasnick/

Immersive Technology in Smart Cities: Augmented and


Virtual Reality in IoT Sagaya Aurelia (Editor)

https://ebookmeta.com/product/immersive-technology-in-smart-
cities-augmented-and-virtual-reality-in-iot-sagaya-aurelia-
editor/

Advanced Unity Game Development: Build Professional


Games with Unity, C#, and Visual Studio Victor G Brusca

https://ebookmeta.com/product/advanced-unity-game-development-
build-professional-games-with-unity-c-and-visual-studio-victor-g-
brusca/

Advanced Unity Game Development: Build Professional


Games with Unity, C#, and Visual Studio 1st Edition
Victor G Brusca

https://ebookmeta.com/product/advanced-unity-game-development-
build-professional-games-with-unity-c-and-visual-studio-1st-
edition-victor-g-brusca-2/

Advanced Unity Game Development: Build Professional


Games with Unity, C#, and Visual Studio 1st Edition
Victor G Brusca

https://ebookmeta.com/product/advanced-unity-game-development-
build-professional-games-with-unity-c-and-visual-studio-1st-
edition-victor-g-brusca/
Unity® Virtual
Reality Development
with VRTK4
A No-Coding Approach to Developing
Immersive VR Experiences, Games, & Apps

Christopher Coutinho
Unity Virtual Reality
®

Development with VRTK4


A No-Coding Approach to
Developing Immersive VR
Experiences, Games, & Apps

Christopher Coutinho
Unity® Virtual Reality Development with VRTK4: A No-Coding Approach to
Developing Immersive VR Experiences, Games, & Apps

Christopher Coutinho
GameWorks, Mumbai, Maharashtra, India

ISBN-13 (pbk): 978-1-4842-7932-8 ISBN-13 (electronic): 978-1-4842-7933-5


https://doi.org/10.1007/978-1-4842-7933-5

Copyright © 2022 by Christopher Coutinho


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image, we use the names, logos, and images only in an
editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The Publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Spandana Chatterjee
Development Editor: Spandana Chatterjee
Coordinating Editor: Divya Modi
Copy Editor: Jana Weinstein
Cover designed by eStudioCalamar
Cover image designed by Pixabay
Distributed to the book trade worldwide by Springer Science+Business Media New York, 1 New York Plaza,
New York, NY 10004. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm.com, or
visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is
Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware
corporation.
For information on translations, please e-mail booktranslations@springernature.com; for reprint,
paperback, or audio rights, please e-mail bookpermissions@springernature.com.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub via the book’s product page, located at https://github.com/Apress/VR-­Development-
with-­Unity-­VRTK. For more detailed information, please visit http://www.apress.com/source-­code.
Printed on acid-free paper
To all VR enthusiasts . . .
wherever you are
Table of Contents
About the Author��������������������������������������������������������������������������������������������������� xiii

About the Technical Reviewer���������������������������������������������������������������������������������xv


Acknowledgments�������������������������������������������������������������������������������������������������xvii

Introduction������������������������������������������������������������������������������������������������������������xix

Chapter 1: Introduction�������������������������������������������������������������������������������������������� 1
A No-Coding Approach to VR Development����������������������������������������������������������������������������������� 1
Two Ways to Approach the Material Covered in This Book����������������������������������������������������������� 2
Advantages of VRTK over Alternative Solutions���������������������������������������������������������������������������� 2
Summary�������������������������������������������������������������������������������������������������������������������������������������� 3

Chapter 2: A New Reality through Virtual Reality����������������������������������������������������� 5


What Is Virtual Reality?����������������������������������������������������������������������������������������������������������������� 5
Become a VR pioneer now, and create the future!������������������������������������������������������������������������ 6
What Can You Do with VR?������������������������������������������������������������������������������������������������������������ 6
Medical and Mental Health������������������������������������������������������������������������������������������������������ 6
Automotive Engineering and Design��������������������������������������������������������������������������������������� 7
Training and Education������������������������������������������������������������������������������������������������������������ 7
Architecture, Construction, and Real Estate���������������������������������������������������������������������������� 7
Entertainment and Journalism������������������������������������������������������������������������������������������������ 7
Advertising and Retail������������������������������������������������������������������������������������������������������������� 8
Gaming in VR��������������������������������������������������������������������������������������������������������������������������� 8
Immersion and Presence in VR����������������������������������������������������������������������������������������������������� 9
Place Illusion��������������������������������������������������������������������������������������������������������������������������� 9
Plausibility Illusion������������������������������������������������������������������������������������������������������������������� 9
Embodiment Illusion���������������������������������������������������������������������������������������������������������������� 9

v
Table of Contents

VR Hardware and Technology����������������������������������������������������������������������������������������������������� 10


Input Controllers�������������������������������������������������������������������������������������������������������������������� 11
3 DOF������������������������������������������������������������������������������������������������������������������������������������� 11
6 DOF������������������������������������������������������������������������������������������������������������������������������������� 11
Summary������������������������������������������������������������������������������������������������������������������������������������ 12

Chapter 3: Setting Up Your Project for VR Development����������������������������������������� 13


VR Hardware Prerequisites��������������������������������������������������������������������������������������������������������� 13
Unity Prerequisites and Oddities������������������������������������������������������������������������������������������������� 14
Setting Up Your VR project���������������������������������������������������������������������������������������������������������� 14
Importing the Unity Package File������������������������������������������������������������������������������������������������ 15
Exploring the XR Plugin Management for Unity�������������������������������������������������������������������������� 19
Importing the Oculus Integration SDK����������������������������������������������������������������������������������������� 20
Choosing Player Settings within Unity���������������������������������������������������������������������������������������� 21
Summary������������������������������������������������������������������������������������������������������������������������������������ 25

Chapter 4: Importing VRTK 4 Tilia Packages���������������������������������������������������������� 27


Importing Version 4 of VRTK�������������������������������������������������������������������������������������������������������� 27
Unity’s Package Manager and VRTK 4 Tilia Packages����������������������������������������������������������������� 33
Exploring the “Packages” Folder������������������������������������������������������������������������������������������������ 35
Summary������������������������������������������������������������������������������������������������������������������������������������ 35

Chapter 5: Setting Up VRTK’s Camera Rigs������������������������������������������������������������� 37


Setting Up Individual Camera Rigs���������������������������������������������������������������������������������������������� 37
Setting Up the Unity XR Camera Rig�������������������������������������������������������������������������������������� 38
Setting Up the Oculus Camera Rig���������������������������������������������������������������������������������������� 39
Setting Up the Spatial Simulator������������������������������������������������������������������������������������������� 40
Setting Up the Tracked Alias�������������������������������������������������������������������������������������������������� 41
Configuring the VRTK’s Tracked Alias������������������������������������������������������������������������������������������ 43
Hooking Camera Rigs to the Tracked Alias���������������������������������������������������������������������������� 43
Test using the Spatial Simulator������������������������������������������������������������������������������������������������� 45
Universal Camera Rig������������������������������������������������������������������������������������������������������������������ 46

vi
Table of Contents

Configuring the Oculus OVR Camera Rig������������������������������������������������������������������������������������� 46


Testing Spatial Movement Using a VR Headset��������������������������������������������������������������������������� 46
Summary������������������������������������������������������������������������������������������������������������������������������������ 47

Chapter 6: Setting Up Interactors and Virtual Hands���������������������������������������������� 49


Interactors versus Interactables������������������������������������������������������������������������������������������������� 49
Setting up Interactors on Controllers������������������������������������������������������������������������������������������ 50
Testing Out Your New Cuboid Avatar Interactors������������������������������������������������������������������� 52
Setting Up Realistic Animated Virtual Hands������������������������������������������������������������������������������ 52
Animated Hands for Camera Rigs Oculus Integration����������������������������������������������������������� 53
Playtesting Your Scene Using Your Oculus Headset�������������������������������������������������������������� 55
Animated Hands for Unity XR and Spatial Simulator Camera Rigs���������������������������������������� 55
Playtesting the Scene Using Your VR Headset����������������������������������������������������������������������� 57
Animating Custom Prototype Hands�������������������������������������������������������������������������������������� 58
Summary������������������������������������������������������������������������������������������������������������������������������������ 81

Chapter 7: Configuring Interactor Functionality and Setting Up


Velocity Trackers����������������������������������������������������������������������������������������������������� 83
Setting Up the Grab Action Property on Interactors to Enable Grabbing������������������������������������� 83
Setting Up an Interactable Object����������������������������������������������������������������������������������������������� 86
Exploring the Example Avatar Cuboid Object������������������������������������������������������������������������������ 89
Testing Your Hand Proto Left and Hand Proto Right Game Objects��������������������������������������������� 89
The Grab Mechanism with Oculus-Provided Hands�������������������������������������������������������������������� 91
Setting Up the Example Avatar Object ��������������������������������������������������������������������������������������� 93
Setting Up Velocity Trackers�������������������������������������������������������������������������������������������������������� 94
Summary������������������������������������������������������������������������������������������������������������������������������������ 97

Chapter 8: Interactable Game Objects�������������������������������������������������������������������� 99


Picking Up Objects���������������������������������������������������������������������������������������������������������������������� 99
The Follow Tracking Property���������������������������������������������������������������������������������������������������� 102
Picking Up an Interactable Object Using Precise Grab Points��������������������������������������������������� 103
Custom Pickup Placements������������������������������������������������������������������������������������������������������ 106

vii
Table of Contents

Adding Secondary Grab Actions to Interactable Objects����������������������������������������������������������� 110


Swapping Objects between Hands with a Secondary Grab Action�������������������������������������� 110
Performing a Two-Handed Grab with a Secondary Grab Action������������������������������������������ 111
Scaling an Interactable Object with a Secondary Grab Action�������������������������������������������� 112
Creating a Unity Layer for Interactable Objects������������������������������������������������������������������������ 113
Summary���������������������������������������������������������������������������������������������������������������������������������� 114

Chapter 9: Moving Around the Virtual World: Teleportation��������������������������������� 117


Teleport Locomotion������������������������������������������������������������������������������������������������������������������ 117
Capturing Inputs to Trigger Teleportation���������������������������������������������������������������������������� 118
Setting Up a Curved Teleport Pointer����������������������������������������������������������������������������������� 121
Setting up a Teleporter for Instant Teleportation����������������������������������������������������������������� 127
Setting Up a Teleporter for Dash Teleportation�������������������������������������������������������������������� 130
Rotating Around Within the Virtual World����������������������������������������������������������������������������� 132
Unity’s NavMesh-Based Teleportation�������������������������������������������������������������������������������������� 143
Teleporting Using Teleport Targets�������������������������������������������������������������������������������������������� 146
Summary���������������������������������������������������������������������������������������������������������������������������������� 154

Chapter 10: Seamless Locomotion����������������������������������������������������������������������� 157


Capturing Horizontal and Vertical Axis Input����������������������������������������������������������������������������� 157
Strafing Movement������������������������������������������������������������������������������������������������������������������� 160
Free Movement Smooth Rotation��������������������������������������������������������������������������������������������� 162
Free Movement Snap Rotation�������������������������������������������������������������������������������������������������� 164
Free Movement Warp Snap Rotation����������������������������������������������������������������������������������������� 167
Summary���������������������������������������������������������������������������������������������������������������������������������� 169

Chapter 11: Arm-Swinging Movement����������������������������������������������������������������� 171


Move in Place Locomotion�������������������������������������������������������������������������������������������������������� 171
Capturing Thumbstick Touch Input�������������������������������������������������������������������������������������� 171
Setting Up the Move in Place Locomotion��������������������������������������������������������������������������� 173
Summary���������������������������������������������������������������������������������������������������������������������������������� 176

viii
Table of Contents

Chapter 12: Setting Up a Pseudo-Body����������������������������������������������������������������� 177


Advantages of Having a Pseudo-Body�������������������������������������������������������������������������������������� 177
Pseudo-Body Setup������������������������������������������������������������������������������������������������������������������� 178
Implementing a Rollback Mechanic������������������������������������������������������������������������������������������ 180
Fading the Headset View to Black on Collision������������������������������������������������������������������������� 185
Summary���������������������������������������������������������������������������������������������������������������������������������� 188

Chapter 13: Climbing in VR����������������������������������������������������������������������������������� 189


Climbing Mechanic Requirements�������������������������������������������������������������������������������������������� 189
Setting Up the Climbing Controller�������������������������������������������������������������������������������������������� 189
Making the Containers Climbable��������������������������������������������������������������������������������������������� 191
Making the Ladder Climbable��������������������������������������������������������������������������������������������������� 197
Deactivating Untouched Events on Climbable Game Objects���������������������������������������������� 201
Summary����������������������������������������������������������������������������������������������������������������������������� 203

Chapter 14: Movement Amplifier�������������������������������������������������������������������������� 205


Movement Amplifier Setup�������������������������������������������������������������������������������������������������������� 205
Testing Amplified Movement����������������������������������������������������������������������������������������������������� 207
Summary���������������������������������������������������������������������������������������������������������������������������������� 208

Chapter 15: Distance Grabbing����������������������������������������������������������������������������� 209


Prerequisites for Distance Grabbing����������������������������������������������������������������������������������������� 210
Setting Up the Distance Grabber����������������������������������������������������������������������������������������������� 211
Setting Up a Telekinesis Grab��������������������������������������������������������������������������������������������������� 212
Setting Up a straight pointer to Grab Interactable Objects������������������������������������������������������� 212
Changing the Straight Pointer’s Grabbing Distance������������������������������������������������������������������ 213
Activating and Deactivating the Distance Grabber�������������������������������������������������������������������� 214
Automatically Deactivating the Distance Grabber��������������������������������������������������������������������� 222
Summary���������������������������������������������������������������������������������������������������������������������������������� 224

ix
Table of Contents

Chapter 16: Snap Zones���������������������������������������������������������������������������������������� 225


Importing the Tool Holder UI Package and Setting Up Two New Work Tools����������������������������� 225
Making the Hammer and Axe Interactable�������������������������������������������������������������������������������� 227
Setting Up a Tool Holder Snap Zone������������������������������������������������������������������������������������������ 230
Setting Up Tooltips for Your Tool Holder Snap Zones����������������������������������������������������������������� 233
Setting Up Rules to Restrict the Entry of Interactable Objects into Snap Zones����������������������� 241
Setting Up Holsters That Move Around with the Player������������������������������������������������������������ 245
Summary���������������������������������������������������������������������������������������������������������������������������������� 252

Chapter 17: Creating Spatial 3D User Interface Game Objects����������������������������� 253


Setting Up a Straight Menu Pointer������������������������������������������������������������������������������������������ 253
Setting Up Clickable Spatial 3D Buttons����������������������������������������������������������������������������������� 258
Setting Up a Spatial Button Group�������������������������������������������������������������������������������������������� 263
Changing the Appearance of Your Spatial Button��������������������������������������������������������������������� 267
Creating a Spatial Toggle Button����������������������������������������������������������������������������������������������� 271
Creating Spatial Option Buttons������������������������������������������������������������������������������������������������ 272
Interacting Directly with VRTK’s Spatial Buttons����������������������������������������������������������������������� 276
Creating a Spatial Slider����������������������������������������������������������������������������������������������������������� 278
Hacking Your Straight Spatial Menu Pointer to Interact with Your Slider���������������������������������� 282
Summary���������������������������������������������������������������������������������������������������������������������������������� 292

Chapter 18: Using Unity’s UI Controls with the VRTK������������������������������������������� 295


Downloading and Importing Unity Package Files���������������������������������������������������������������������� 295
Setting Up the UI Elements 2D Skeletal Menu�������������������������������������������������������������������������� 296
Setting Up a Straight 2D UI Menu Pointer��������������������������������������������������������������������������������� 296
Having the 2D UI Menu Pointer Interact with the 2D UI Menu System�������������������������������������� 297
Summary���������������������������������������������������������������������������������������������������������������������������������� 301

x
Table of Contents

Chapter 19: Angular Drives���������������������������������������������������������������������������������� 303


Setting Up a Steering Wheel����������������������������������������������������������������������������������������������������� 303
Setting Up a Door���������������������������������������������������������������������������������������������������������������������� 307
Setting Up a Lever��������������������������������������������������������������������������������������������������������������������� 316
Angular Joint Drive and Logic Objects�������������������������������������������������������������������������������������� 321
Summary���������������������������������������������������������������������������������������������������������������������������������� 333

Chapter 20: Linear Drives������������������������������������������������������������������������������������� 335


Setting Up a Drawer������������������������������������������������������������������������������������������������������������������ 335
Setting Up a Push Button���������������������������������������������������������������������������������������������������������� 337
Summary���������������������������������������������������������������������������������������������������������������������������������� 342

Chapter 21: Tips, Tricks, and Recipes������������������������������������������������������������������� 343


Adding Realistic Physical Hands����������������������������������������������������������������������������������������������� 343
Obtaining Haptic Feedback������������������������������������������������������������������������������������������������������� 348
Highlighting Interactable Game Objects������������������������������������������������������������������������������������ 351
Summary���������������������������������������������������������������������������������������������������������������������������������� 352

Chapter 22: Minigame������������������������������������������������������������������������������������������ 355


Importing the Base Unity Package�������������������������������������������������������������������������������������������� 356
Setting Up the VRTK Prefabs����������������������������������������������������������������������������������������������������� 363
Enabling Obstacle Objects to Attach to the Ball������������������������������������������������������������������������ 371
Getting the Ball to Roll About Freely����������������������������������������������������������������������������������������� 378
Spatial Tooltip to Display Countdown Timer������������������������������������������������������������������������������ 380
Setting Up the Countdown Timer and Moment Processor�������������������������������������������������������� 384
Enhancing the Minigame���������������������������������������������������������������������������������������������������������� 392
Summary���������������������������������������������������������������������������������������������������������������������������������� 392

Index��������������������������������������������������������������������������������������������������������������������� 395

xi
About the Author
Christopher Coutinho is the founder of GameWorks, a
Mumbai-based game development studio specializing in VR
and virtual product development using Unity and VRTK 4.
GameWorks provides development services to clients in
game creation, Unity tools creation, and VR simulation-
training development. Christopher is highly active on the
VRTK’s Discord channel. He is also known for his highly
acclaimed online virtual reality courses on Udemy using
Unity and VRTK 4.

xiii
About the Technical Reviewer
Dr. Kevin Tan is an associate professor at the Game School,
which is part of Inland Norway University of Applied Science
in Norway. He is also the course leader for the Augmented
and Virtual Reality add-on program at the Game School.
Before Kevin joined the Game School in 2019, he received
a Bachelor of Science degree with Honors in computer
science, with a concentration in software engineering, from
the University of Greenwich; a Master of Science degree in
computer vision, visual, and virtual environments from the
University of Leeds; and a PhD in bimanual interaction in virtual environments from the
University of Salford, all in the United Kingdom.
After receiving his PhD, Kevin served as a postdoctoral research assistant at the
Materials Science Center at the University of Manchester and went on to become a
senior lecturer and course leader in the Computer Games Development course at
Manchester Metropolitan University.
Kevin’s research interests lie in developing Extended Reality (XR) for crossdisciplinary
enterprise applications. In the past, he was involved in neural networks and artificial
intelligence for gaming. He is now researching the emotion and personality of AI and the
use of emotional traits to represent facial expressions in digital learning with VR. Besides
that, Kevin also researches the achievement of realistic interactions with physical objects
in VR environments.
Kevin’s research focuses on the following areas:

• The use of Augmented Reality (AR) and VR technology in using game


engines such as Unity3D and Unreal Engine.

• The research applications of the hybrid versions of augmented and


virtual reality for health care, art, and tourism.

xv
About the Technical Reviewer

• The use of deep-learning algorithms for the prediction of microfacial


expressions in simulation and games.

• Human-oriented cognitive issues that are integrated into neural


network systems in the human-computer interaction environment.

Kevin is also a Unity-certified associate programmer.

xvi
Acknowledgments
I want to thank Apress publishing for allowing me to write this book. The experience of
working with the editors Spandana Chatterjee and Divya Modi has been a true pleasure
from inception to completion.
A big thank you must also go to Kevin Tan, my technical reviewer, whose frank and
precise comments made this a much easier-to-understand book. I also would like to
thank the developer of the VRTK, Harvey Ball, also known as “the stone fox,” whose
insightful explanations have always been helpful and whose perspicacious ability is
commendable. Additionally, I want to thank the VRTK community that I often frequent
to learn from others and answer questions.
Last, I’d like to recognize the people who have made my experience with Unity a
fruitful one. That, of course, starts with those at Unity Technologies, the company that
makes the game engine at Unity.

xvii
Introduction
Who Is This Book Written For?
This book is for game developers interested in developing immersive virtual reality (VR)
experiences, games, apps, and tool kits using Unity and the VRTK. It uses a no-coding
approach, so you don’t need to know C# programming and you won’t be called upon to
launch Visual Studio even once.
The book is aimed at beginner-to-intermediate Unity game developers who want
to know get know their way around the Unity editor for basic scene editing. A basic
knowledge of how Unity prefabs function, of how its events work in general, and of
programming logic would be beneficial. You don’t need to be able to write any event
code to do the exercises in this book. However, if you’re an absolute beginner to Unity,
this is not the book for you.

What Are We Building?


This book is structured for building a complete VR framework over the course of
22 chapters. You’ll learn to set up state-of-the-art VR mechanics as part of the VR
framework you build.
It uses version 4 of the VRTK, which is free to download. This makes understanding
VRTK 4 super easy, and the framework you develop will be one massive, cohesive, lean
and mean machine. By the end of this book, you’ll have an advanced VR framework that
you can even publish yourself.
Using Unity and VRTK 4, we’ll build an advanced VR framework from scratch
that can be used as the foundation for creating any VR game or experience. In the last
chapter, you’ll utilize the VR framework you built to create your very own minigame,
without writing a single line of code.

xix
Introduction

What Is Required for This Book


To do the exercises in this book, you’ll need access to a six-DOF (degrees of freedom)
headset of Steam VR or Oculus. A three-DOF headset won’t work, as you need to be able
to move around within your world.
You could use a Steam VR headset like the HTC Vive, an Oculus headset like the
Oculus Rift, or the Oculus Quest (both 1 and 2 will work fine). These are some of the
more popular six-DOF headsets available, and the ones this book’s content has been
tested with. The content of this book hasn’t been tested with a Windows Mixed Reality
headset, so you’ll need to use one of the headsets just mentioned.
If you intend to use the Oculus Quest, it would be advisable to have a link cable, as
deploying a build to the headset each time you test is not very practical and would be
time consuming. You aren’t required to get the Oculus-approved link cable, as several
cheaper options are available online from Anchor, Belkin, and Amazon.
You need to have a computer running Windows 10 and the 2020 version of Unity
LTS (Long Term Support). Your computer hardware should be compatible with your
VR headset in terms of the graphics card it uses and the amount of RAM it requires. If
you can play VR games while being tethered to your computer without any issues, your
computer should already be compatible for development.
Both Oculus and Steam VR provide system tools that allow you to check whether
your computer meets the minimum requirements to be VR ready. Head over to
www.vive.com/eu/setup/ or www.oculus.com/setup/, and go through the guided
installation and setup process listed on either site. Last, ensure that you have your VR
headset set to Developer Mode.

D
 ownloadable Content
Most chapters in this book include some form of downloadable content that lets you
experiment with and implement the advanced VR mechanics taught here. Most of this
downloadable content has been provided to you as Unity package files and a single
manifest.json file. The book’s chapters explain how these files are to be used.
In addition, you’ve been provided with the complete working VR framework and
minigame as a .rar file download (VR_Playground.rar) so that you can quickly examine
how various individual VR mechanics have been set up as part of this framework. Upon
decompressing the VR_Playground.rar file, you need to ensure that you load this project

xx
Introduction

using version 2020.3.15f2 of Unity LTS only, as this is the version the project was created
in. Unity 2020 is notorious for breaking a project if used with a version different from the
one in which the project was created. If you intend to use the provided VR_Playground
project, it must be launched using version 2020.3.15f2 to be functional. Launching the
project with any other version of Unity will result in colliders missing and many other
issues cropping up.
All downloadable content for this book can be accessed on the following page:
https://github.com/Apress/VR-­Development-­with-­Unity-­VRTK.

xxi
CHAPTER 1

Introduction
In this introductory chapter, you will get acquainted with Unity virtual reality
development, a no-coding approach that you can use to create immersive virtual reality
(VR) experiences. You will find out two ways that you can approach the material covered
in the book. I will also discuss the other alternatives available for VR development and
point out the advantages of using the no-coding approach. Finally, I will list the VR
hardware required to follow along with this book.

A No-Coding Approach to VR Development


The goal of this book is to show you everything you need to know to develop truly
immersive VR experiences using Unity without the need to write a single line of code.
This no-coding approach is made possible by version 4 of the Virtual Reality
Toolkit (VRTK) by Extend Reality Ltd. VRTK is available for free and licensed by MIT
(Massachusetts Institute of Technology).
Every VR developer knows that getting their VR framework right is fundamental to
having a great VR experience. The proper framework involves a mix of the latest and
greatest VR mechanics you see within VR games and experiences today. In this book,
you will learn to build your own VR framework from scratch, using some advanced VR
mechanics. The VR framework you build can be transferred from one VR project to
another, using as few or as many VR mechanics as you require. Using the VR framework
you built, you will be able to create almost any type of VR game or experience you desire.
By the end of this book, you will have not only implemented some exciting game
mechanics but will have also created your very own minigame.

1
© Christopher Coutinho 2022
C. Coutinho, Unity® Virtual Reality Development with VRTK4, https://doi.org/10.1007/978-1-4842-7933-5_1
Chapter 1 Introduction

T wo Ways to Approach the Material Covered


in This Book
Every chapter in this book utilizes a practical, hands-on approach for implementing the
content in your Unity project. Learning by practice is the ideal way to get to know VR
development.
There are two ways to approach the material covered in this book; namely, a top-­
down approach and a bottom-up approach.
Beginners in VR development should use the top-down approach, starting with
Chapter 1 and proceeding sequentially through the chapters in the book, implementing
the concepts taught within their project. Using this approach, you will utilize several
provided Unity packages, which you will download and import, as explained in each
chapter. In my opinion, this is the best way to get the most out of this book, especially if
you are a beginner in VR development or version 4 of the VRTK. I suggest that you first
review each chapter to get an overall idea of the concepts and then review the chapters a
second time to implement the content in your Unity project.
If you’re not a beginner in VR development or version 4 of the VRTK, you’re probably
looking to jump right into working with the VR framework and use it to build your very
own game, app, or experience. In this case, I would suggest the bottom-up approach,
where you directly download the complete VR framework ZIP file and then launch it
using Unity's latest LTS (Long Term Support) version 2020.3.x. With this, you can browse
through chapters that interest you and explore how the various prefabs have been set up.
It would help to quickly learn how to use the framework. You can always go back through
the chapters sequentially when you have the time.

Advantages of VRTK over Alternative Solutions


Version 4 of the VRTK is not the only solution available for getting started with
VR development. Unity, Oculus, and Steam VR also provide their SDKs (Software
Development Kit) for VR development. It is also possible to purchase assets from the
Unity asset store to achieve the VR-specific functionality you desire.
Unity's Extended Reality (XR) Interaction Toolkit is another high-level component-­
based interaction system for creating VR experiences. Oculus and Steam VR, on the
other hand, provide SDKs for their respective platforms.

2
Chapter 1 Introduction

However, the most significant advantage of version 4 of the VRTK is that it provides a
simple yet extensible framework that works across multiple platforms. It is also both free
and open source.
The VRTK is a VR development tool kit that provides a wide range of built-in support
for the core components of VR, such as locomotion, interaction with 3D objects, and
2D and 3D controls. It reduces the amount of code you need to write to get started with
VR development, allowing you to concentrate on developing the parts of your game or
application without having to worry about input management , character controllers,
locomotion methods, climbing and grabbing mechanics, UI interactions, and a lot of
other fundamentals you probably have come to expect from a VR framework.
Building this whole extensive VR framework by yourself from scratch will give
you a much deeper level of understanding of how to put it to use in building different
VR games and experiences. By the end of this book, you will have built an extremely
sophisticated VR framework, way better than you would get with most other free and
paid VR frameworks and tool kits out there.

Summary
In this introductory chapter, you learned about the no-coding approach that you find
with version 4 of the VRTK. You have also been introduced to the two ways you can
approach the material covered in this book. You then explored the other solutions
available for VR development and some of the advantages that version 4 of the VRTK
provides over them. Lastly, the VR hardware that you will need to follow along with the
content matter in this book was discussed.

3
CHAPTER 2

A New Reality through


Virtual Reality
In this chapter, I will explain what virtual reality (VR) is and why it is worth your time
to become a VR pioneer as well as some of the areas within which it is being used. You
will also learn about three essential concepts in VR: the place illusion, the plausibility
illusion, and the embodiment illusion, which are essential for creating genuine
immersion in VR. Additionally, you will find out about the popular headsets currently
on the market that you will need to follow along with this book and be introduced to the
term degrees of freedom.

What Is Virtual Reality?


There is much excitement around the topic of virtual reality, also known as VR. The
definition of virtual reality can be extensive, encompassing everything that happens
in the digital world, like social networking, online marketing, and so forth. However,
more often, the term is used to refer to a medium that immerses users in a computer-­
generated, simulated representation of a natural or fantasy world, allowing them to see,
feel, hear, and interact with the simulated environment and the objects within it. As
users are completely immersed in and engaged with this interactive experience, they
can look around, move about, and interact with objects without ever having to break
the illusion of being in a virtual world. VR is made possible by using a headset, input
controllers, gloves, or even full bodysuits.

5
© Christopher Coutinho 2022
C. Coutinho, Unity® Virtual Reality Development with VRTK4, https://doi.org/10.1007/978-1-4842-7933-5_2
Chapter 2 A New Reality through Virtual Reality

Become a VR pioneer now, and create the future!


Since the VR market is still very young, a lot of room remains for breakthroughs. Creating
something completely new is a unique opportunity that VR provides you.
It took approximately 27 years for PCs to grow from representing 2% to representing
70% of the type of computer most used in the United States, approximately 13 years for
the Internet to reach that level, and approximately eight years for smartphones to get
there. Many analysts have predicted that VR will reach this point within the next five to
seven years. This leaves you two to three years to get trained in VR development and
three to four years to create something that will significantly impact the VR ecosystem.
Creating features for a new product is complex, involving testing, failing, and then
testing again. Given that the whole VR industry is currently in the test-and-fail mode,
rapid prototyping in VR is what will gain you maximum leverage, and that is what this
book is all about.

What Can You Do with VR?


You may believe that VR is only suitable for entertainment or gaming, but the fact is,
other industries have started to take note of its potential and popularity as well. VR is still
in infancy, and we are currently only in the first generation of consumer VR hardware.
Having not even come close to discovering everything we could do with VR, you could
be the one to discover something new and become a VR pioneer.

Medical and Mental Health


The use of 3D visualization is not new to the medical industry. X-rays, CT scans, and
MRIs have helped doctors immensely in diagnosis and treatment for years. Likewise,
VR has the potential to have profound effects in medicine, neuroscience, psychology,
and pain management. VR has already been extremely effective with helping treat fears,
phobias, stress-related disorders, bipolar disorders, cognitive rehabilitation, and other
psychological conditions. It has benefitted health care professionals and patients across
a multitude of disciplines.

6
Chapter 2 A New Reality through Virtual Reality

Automotive Engineering and Design


VR has also been an effective tool for engineering and design applications. VR design
eliminates the need for building physical prototypes. The automotive industry uses
VR to help visualize products within virtual environments before physical prototypes
are made, allowing designers to see how parts fit together. VR is also being used in
this industry to help customers get a sense of how their car would look and feel before
ordering it.

Training and Education


Training and education is another field in which VR has been a potent tool. While many
other types of media communicate verbally via ideas, VR communicates via direct,
hands-on experience. This is possible due to VR’s combination of interaction and true
immersion. Aircraft pilots, firefighters, oil field workers, and others are some professions
where training is done by VR. It is also used in education, helping students to learn new
languages by using VR environments with applications like Linguisticator.

Architecture, Construction, and Real Estate


VR provides an immersive experience that allows a user to explore space on a real-world
scale in a way that is not possible via other mediums. In the world of construction,
traditional designs have made use of flat technical drawings and 3D models. However,
VR has changed what is possible by creating a realistic representation of spaces.
Architects and engineers can now explore every inch of a construction project and
identify any issues before construction begins, potentially avoiding delays and
unnecessary costs. VR has also been tremendously helpful in real estate, wherein
the environment can either be fully modeled in 3D or photographed as a 360-degree
panorama, which provides an immersive sense of the space and its surroundings that
the user would not be able to experience without visiting the actual physical location.

Entertainment and Journalism


The ability of VR to create the simulated experience of being present through immersion
makes it a compelling medium with which to narrate a story with a deep sense of
empathy, something that is harder to achieve on a flat screen. The entertainment

7
Chapter 2 A New Reality through Virtual Reality

industry, gaming in particular, is where VR is making the most waves. However, there
are other areas of entertainment, such as music and cinema, where VR is making an
impact as well. Music concerts put on by famous artists have been released as VR events
that allow viewers to recreate the experience of front-row seating. Oculus and Netflix
have also released their version of a cinematic experience, allowing viewers to watch
films in a different way. Virtual tourism and documentaries are other exciting aspects of
VR cinema.
VR is also being used in what is known as immersive journalism, where news is
produced in a form where people can gain first-person experiences of the events or
situations described in news stories. By having viewers wear a VR headset, they enter
virtual worlds and scenarios where they can experience the news events firsthand.

Advertising and Retail


VR offers a range of ways for customers to experience products. A person wanting to
purchase a car can experience the car in virtual reality, make color choices, select the
car’s interior features, and more, all from within the comforts of their home. It enables
retailers to reach customers who cannot visit their showrooms, increasing the likelihood
of making a sale. It also allows the customer the opportunity to try out the product before
buying it. VR is also used in advertising to build an emotional connection with a brand
by immersing a customer in a virtual experience that creates a deep sense of connection
with the product.

Gaming in VR
It is no secret that VR has changed the overall gaming experience. VR does not just
show you the game as you play it; it immerses you directly in the game, allowing
you to become the protagonist and have experiences and interactions with actors
and objects within the game world as if you were really in it. There are also input
controllers with haptic feedback to simulate tactile sensations that allow for complex
interactions, immersion, and presence, which wouldn’t be possible using traditional
game controllers. The ability provided to the player to interact with actors and objects
all around them, along with the ability to move about in the virtual world, is what makes
gaming in VR truly incredible.

8
Chapter 2 A New Reality through Virtual Reality

Immersion and Presence in VR


Now that we’ve gotten a good idea of what VR is and the many things you can do with it,
it is time to delve further into what makes VR work.
Let us begin by talking about immersion in VR. Immersion is often used to
describe the perceived experience of being physically present in a virtual world . For an
experience to be genuinely immersive, certain illusions need to be created.

Place Illusion
The place illusion creates the feeling of being in a physical place even though you realize
you’re not there. Your brain decides that you are in the virtual world rather than the real
world. Place illusion can occur even if nothing is happening in the virtual world at the
time. Because you are in a virtual world and you can look around, your brain decides
that this is where you are. The place illusion is the first of the three illusions that lead
to true immersion, where your brain believes that events occurring around you are
genuinely taking place.

Plausibility Illusion
The plausibility illusion creates the feeling that the events you are engaged with are really
happening. Your brain decides that these events feel genuine. It is different from the
place illusion, as you can feel like you are in a place but at the same time not believe that
anything is actually happening there. The plausibility illusion is the second of the three
illusions that leads to true immersion.

Embodiment Illusion
The embodiment illusion is unique to virtual reality in that it has to do with your own
body. Where in the real world you can look down and you see your own body, VR can be
programmed to recreate that experience by allowing you to see a virtual body in place
of your own body when you look down. The embodiment illusion gives rise to the third
illusion, which is the illusion of body ownership or embodiment—that is, the belief that
the virtual body is actually your body.

9
Chapter 2 A New Reality through Virtual Reality

True immersion in virtual reality stems from the three illusions occurring at the
same time:

1. Believing that you are in a place even though your physical self
knows you are not actually there (the place illusion)

2. Events occurring in a place and you responding to them even


though your physical self knows they are not actually happening
(the plausibility illusion)

3. Looking down and seeing your virtual body and believing and
acting like it is your own body even though your physical self
knows it is not (the embodiment illusion)

VR Hardware and Technology


The most common way of immersing a user into a virtual world is by using a head-­
mounted display (HMD). Even though there are other ways of creating VR, the method
we will use in this book requires a HMD, also commonly known as a VR headset.
A VR headset can take you to levels of immersion where you believe you are walking on
the moon or trying to survive on a battlefield even though you are just in your living room.
You may be wondering how this all works. The concepts for displaying VR content
across different types of available HMD devices are similar. Two streams of content are
sent to the headset, whether to one display or two. A set of lenses inside the headset
focuses and reshapes the content each eye sees, creating a stereoscopic 3D image. This is
done by adjusting the 2D images to mimic how your eyes view the world in real life.
VR headsets can be either tethered or untethered. A tethered device like the Oculus
Rift, HTC Vive, or Sony’s PSVR requires wires that attach the VR headset to a desktop,
laptop, or console to deliver VR content. A headset such as the Oculus Quest or Vive
Focus, on the other hand, is an untethered headset that does not need to be connected
to a desktop or a laptop.
Some VR headsets only track the user’s direction, while others track changes to
the user’s position. The term degrees of freedom (DoF) is used to distinguish between
headsets that only track direction and those that track both direction and position.

10
Chapter 2 A New Reality through Virtual Reality

Input Controllers
Although the VR headset is the main component of a VR system, most VR headsets also
come with input controllers that allow users to interact within the VR world.
3DOF devices have input controllers that are essentially pointers, allowing users to
take aim but not to reach out and grab something.
6DOF high-end devices have special controllers that function like virtual hands and
are tracked by the same sensors that track the HMDs. These controllers allow you to use
your hands in various ways within VR through a combination of buttons, triggers, and
thumb sticks.

3DOF
A VR device that only tracks rotation but does not track position is referred to as a 3DOF
device, as it only tracks three DOF in terms of rotation: the degree to which the device
is rotating around its upward-pointing y-axis (yaw), or rotating sideways, the degree to
which it is rotating around its forward-pointing z-axis (roll), and the degree to which it is
tilting forward or backward on its horizontal x-axis (pitch).
3DOF devices track rotation only, so users can look around and point but cannot
move from side to side.
The Oculus Go and Samsung Gear headsets are examples of 3DOF devices.

6DOF
A VR device that tracks both position and rotation is referred to as a 6DOF device. This
device tracks all six degrees of freedom: yaw, roll, pitch, up-down movement, side-to-­
side movement, and forward-backward movement.
6DOF devices track both positions and rotation, so that users can look and
move around.
Most first-generation 6DOF devices like the original HTC Vive and the Oculus Rift
required base stations to provide positional tracking on desktop systems. However,
untethered headsets like the Oculus Quest and the Vive Focus use camera arrays to
track the headset’s position within the room, so they do not require base stations. This
technology is referred to as inside-out tracking.
The HTC Vive, Oculus Rift, HTC Vive Focus, and Oculus Quest headsets are 6DOF
devices. You will need to have one of these to follow along with this book.

11
Chapter 2 A New Reality through Virtual Reality

Summary
In this chapter, we went over virtual reality and why now is the best time to get into VR
development. We also looked at the areas where VR is currently being used. You learned
about the importance of immersion in VR and the three illusions of place, plausibility,
and embodiment that create true immersion in VR. You also learned about the
various types of VR headsets available, both tethered and untethered, and the degrees
of freedom they support, as well as the benefits of input controller peripherals that
accompany VR systems.

12
CHAPTER 3

Setting Up Your Project


for VR Development
The goal of this chapter is to set up a Unity3D project for virtual reality development. I
will discuss the VR hardware requirements and the versions of Windows and Unity that
you will be using. I will walk you through setting up the required SDKs, Unity’s XR plugin
management, choosing the various Player settings within Unity, and finally, switching
your platform for Android development. You will also import your first Unity package,
which will serve as the environment in which you will build your VR framework.

VR Hardware Prerequisites


To follow along with the content in this book, you’ll need to have either an Oculus
Rift, Oculus Rift S, Oculus Quest, or an HTC Vive headset, which are all 6DOF. As we
proceed, I’ll assume that you have already set up your headset and ensured it is working,
indicating that your computer is VR ready. If you haven’t, now is a good time to do this.
Both Oculus and Steam VR provide system tools that allow you to check whether your
computer meets the minimum requirements to be VR ready. Head to www.vive.com/eu/
setup/ or www.oculus.com/setup/, and run through the guided installation and setup
process listed there. Lastly, ensure that you have your VR headset set to developer mode
. Be sure to test out your headset and ensure that it is working before setting up your
development environment.
If the VR system you’re using is Oculus Quest, it would be good to connect your
Oculus Quest to your PC or laptop with a link cable and playtest using link mode. Doing
this would be more convenient than having to deploy a complete build to the Oculus
Quest each time you need to do a test run. You do not need to get the Oculus-approved
link cable. There are several cheaper options available online from Anchor, Belkin, and
Amazon. I use a six-foot Anchor USB C to USB 3 cable.

13
© Christopher Coutinho 2022
C. Coutinho, Unity® Virtual Reality Development with VRTK4, https://doi.org/10.1007/978-1-4842-7933-5_3
Chapter 3 Setting Up Your Project for VR Development

Unity Prerequisites and Oddities


The only requirement for following along with the content in this book is that you use
Windows 10 and Unity version 2020.3.15f2. The project we will build throughout this
book uses Unity’s LTS, version 2020.3.15f2, which is the latest LTS version at the time of
this writing. I have experienced with different versions of Unity 2020, and even though
LTS has a lot of oddities, I suggest you stick with LTS version 2020.3.15f2 throughout the
exercises in this book. Other LTS versions do not provide any new features anyway. One
thing you should not do is upgrade midway throughout your project to a newer version
of LTS. Doing so will cause your project to malfunction.
When installing Unity, ensure that you set up the Android Build Support by checking
the boxes for Android SDK, NDK Tools, and OpenJDK . Also, ensure that you check the
box for the module, Windows Build Support (IL2CPP).

Setting Up Your VR project


As part of this book, you have been provided with Unity package files that you will
download and import into your Unity project, as explained in this chapter.
To proceed, you’ll need to download the provided Unity package file, “VRTK_
Playground,” to an easily accessible location, such as your desktop or any other folder on
your computer.
Then, launch the Unity hub, click the New button in the upper right-hand corner,
and ensure that you select the latest version of Unity, LTS 2020.3.x, that you downloaded.
Note that I am using Unity Hub, version 2.4.5.
As shown in the dialog box in Figure 3-1, select VR in the Templates section . Then,
choose an appropriate location in which to save your project. Give your project a proper
name; I have named mine “VR_Playground.” Finally, click the Create button to set up the
project, and Unity’s editor will be open on your desktop. You will be greeted with a VR Project
Template dialog asking you to select an appropriate platform. Click the Close button on this
dialog, allowing the Unity editor to display its default sample scene. On the far-right side of
the editor, you will notice the Tutorial tab. Click the vertical ellipsis button on this tab and
select Close, as you won’t need it. In the “Assets” folder on the Project tab, you will notice
that three folders have already been set up by default. Using the VR template that is listed,
you have avoided the need to manually set up XR Plugin Management, which you would
otherwise need to do, should you have chosen the 3D template.

14
Chapter 3 Setting Up Your Project for VR Development

Figure 3-1. Creating a new Unity3D project

Within the Unity editor console tab, you may see a message stating that a new
Visual Studio Editor package version is available and asking you to update to this latest
version for better visual studio integration. To do so, open the Package Manager in Unity,
select the Visual Studio Editor item from the pane on the left, and click the Update to
2.x.x button.

Importing the Unity Package File


Now that you have downloaded the provided Unity package file, “VRTK_Playground,” it’s
time to import it into your project.
From the main menu, select Assets ➤ Import Package ➤ Custom Package. Navigate
to the folder where you saved the downloaded Unity package file, select it, and click the
Open button within the Import Package window. An Import Unity Package window will
pop up, as shown in Figure 3-2. Click the All button, then the Import button. Unity will
then begin its importing process, importing all the objects in the Unity package into your
project.

15
Chapter 3 Setting Up Your Project for VR Development

Figure 3-2. Importing the Unity package file

Your Unity console will now display three error messages, as shown in Figure 3-3.
You can ignore these messages for now. They indicate that a couple of namespaces are
missing. The messages will disappear once you install version 4 of the VRTK in the next
chapter.

Figure 3-3. Error messages indicating that namespaces are missing

16
Chapter 3 Setting Up Your Project for VR Development

Now that you have imported the provided VRTK_Playground unity package, go to
the “Assets” folder in your Project tab and delete the “Scenes” folder, as it is no longer
required. Note that a new “VRTK_Playground” folder is now available in your “Assets”
folder. Expand the “VRTK_Playground” folder and then expand the “Scenes” folder, and
you will find a Demo scene. Double-click this scene to launch it in the Unity editor. You
will be asked whether you’d like to save the Sample Scene that is currently open. Click
the Don’t Save button, as you do not need the Sample Scene anymore. Select the Scene
tab within the Unity editor to view your VR framework environment. Select the Game
tab within the Unity editor, and you will note that it displays a message stating that there
are no cameras rendering. This is because there is no camera set up within your Demo
scene yet.
Let’s start by exploring the Demo scene and the game objects that comprise it. First,
we’ll select the Scene tab to switch back to the scene view. Figure 3-4 displays your Demo
scene. Within the hierarchy, the parent Environment game object has been expanded
and some of its child objects have been expanded, too. You will begin exploring your
Demo scene by examining the game objects within the Environment object and noting
their Tag and Layer settings within the inspector.

Figure 3-4. Demo scene with objects within the hierarchy expanded

First, expand the Environment game object within the hierarchy, then expand all the
child objects; namely, Table, Containers, Barrel, and Ladder. The Ladder game object
contains two child game objects: Steel Ladder A and Steel Ladder B. Expand these
objects.

17
Chapter 3 Setting Up Your Project for VR Development

Let’s now look at each game object within the hierarchy and note the collider
components they have been set up with and their Layer and Tag settings .
Begin by selecting the Floor game object in the hierarchy . Note that the inspector
has been set up with a mesh collider, its Layer has been set to Water, and it has been left
Untagged.
Now, select the Table game object in the hierarchy, and note that it is made up of
Table Top and Table Leg game objects, both of which have box colliders on them. Also
note that their Layer and Tag properties have been left at their default values.
With the Containers game object expanded in the hierarchy, select any Container
game object within it. All Container child game objects within the Containers parent
game object have similar components. Note that all the Container child game objects
have been fitted with a box collider. Also note that their Layer and Tag properties have
been left at their default values.
With the Barrels game object expanded in the hierarchy, select any Barrel game
object in it. All Barrel child game objects within the Barrels parent game object have
similar components. Note that all the Barrel child game objects have been fitted with
a box collider. Also note that their Layer and Tag properties have been left at their
default values.
With the Ladder game object expanded, as well as both Steel Ladder A and Steel
Ladder B child game objects, you will see that both of the child game objects contain
several numbered Collision game objects. With the Move Tool on Unity’s toolbar toggled
on, select several of the numbered Collision game objects in the hierarchy to see them
highlighted within the scene view. Note that each of these numbered Collision game
objects denotes either a side portion or a rung of the ladder. All the numbered game
objects have been fitted with capsule colliders. As we will see in later chapters, this kind
of collider setup allows you to grab onto either side of the ladder’s rungs and climb up.

Note Should you shut down Unity and then relaunch it for whatever reason, you
may be prompted with a message asking if you would like to enter safe mode,
as shown in Figure 3-5. Click the Ignore button. The compilation errors that this
message refers to are the three errors listed earlier in this chapter, which will
disappear once you have installed version 4 of the VRTK.

18
Chapter 3 Setting Up Your Project for VR Development

Figure 3-5. Dialog box prompting you to enter safe mode

Exploring the XR Plugin Management for Unity


Let’s begin by exploring the XR Plugin Management that Unity set up for you by default
when you used the VR template provided. To do so, navigate to the main menu and
select Edit ➤ Project Settings to open the Project Settings dialog box. From the pane on
the left, select and expand the XR Plugin Management item, and you will notice that it
has two child items—namely, Oculus and Windows Mixed Reality—set up by default.
You won’t be developing for a Windows Mixed Reality device in this book, so select the
Oculus item from beneath XR Plugin Management. On the pane on the right, you will see
the PC, Mac & Linux Standalone settings tab, as well as the Android tab. On both these
tabs, the Stereo Rendering mode has been set up by default. Also, for the Android tab,
target devices have been set to Quest and Quest 2 by default.
Now, select the XR Plugin Management item from the pane on the left, and you will
see the PC, Mac & Linux Standalone settings tab as well as the Android tab visible in the
right pane. Both these tabs provide you with check boxes listing plug-ins from providers
that you can use. However, as shown in Figure 3-6, there is no Steam VR plug-in listed
here. However, this will not be a cause for concern if you’re using an HTC Vive device, as
you will circumvent this by using the VRTK-provided Camera Rigs and Unity XR plugin
management framework prefab.

19
Chapter 3 Setting Up Your Project for VR Development

Figure 3-6. XR Plugin Management, with no Steam VR Plug-in included in the list

The Oculus plug-in has already been installed by default, so you may now close the
Project Settings dialog.
If you’re building for the HTC Vive, even though the XR Plugin Management does
not support a plug-in for Steam VR, you won’t need to download the Steam VR Plugin
from the Unity Asset store to have your framework work with your HTC Vive devices.
However, you will need to have the Steam VR client installed on your PC to build to the
HTC Vive.

Importing the Oculus Integration SDK


You, however, need to download and import the Oculus Integration SDK, as the VRTKs
Camera Rigs, Oculus Integration wrapper will require it. This will become clearer once
you install version 4 of the VRTK in the next chapter.
I’m using the latest version of the Oculus Integration SDK currently available, version
29, and I advise you to do the same. You can download the Oculus Integration SDK from
the Unity asset store or the Oculus Developer site; the latter is a repository for all earlier
versions.
Log in to the Unity asset store and search for Oculus Integration, and download and
import it into your project. The Package Manager dialog should then open. If not, you
can launch it by selecting Window ➤ Package Manager from the main menu. On the left-­
hand pane, ensure that the Item Oculus Integration is selected and then click the Import
button located in the bottom right corner of the right-hand pane. The Import Unity
Package dialog will be displayed. Click the Import button to begin importing the Oculus

20
Chapter 3 Setting Up Your Project for VR Development

Integration SDK into your project. Once you’re done, close the Package Manager. Then,
navigate to the “Assets” folder in the Project tab, where you will notice an Oculus folder,
which is essentially the Oculus Integration SDK.

Note Upon restarting Unity, you may be prompted with an Update Oculus Utilities
Plugin dialog box stating that a new OVR Plugin is available and recommending
that you use it. Click the Yes button to proceed. You will then most likely be
prompted with another dialog asking you to restart Unity. Click the Restart button.
You may also be asked to upgrade spatializer plug-ins. Go ahead and click
Upgrade, then click Restart. Unity will restart with your Demo scene launched.

Choosing Player Settings within Unity


Now, navigate to the main menu and select Edit ➤ Project Settings to open the Project
Settings dialog box. On the left-hand pane, select the Player item. On the right-hand
pane, select the PC, Mac & Linux Standalone settings tab. Expand the Other Settings
section and scroll down to the Configuration section. If you didn’t install Windows Build
Support (IL2CPP) when setting up Unity, set the Scripting Backend property to Mono
. Set the API Compatibility Level property to .NET 4.x. In the Configuration section ,
ensure that the Active Input Handling property has been set to Input Manager (Old), as
shown in Figure 3-7.

Figure 3-7. Other Settings section configuration properties in the PC, Mac & Linux
Standalone settings tab

21
Chapter 3 Setting Up Your Project for VR Development

With the Other Settings section still open, click the Android Settings tab. Scroll down
until you see the Lightmap Encoding property, and set its value to Normal Quality .
Then scroll further down until you see the Identification section. Ensure that the
Minimum API level property has been set to Android 6.0 “Marshmallow” (API level 23).
Scroll further down to the Configuration section and set the API Compatibility Level
to .NET 4.x. Next, locate the Target Architectures section that follows, and ensure that the
box for ARMv7 is unchecked and the box for ARM64 is checked.
Scroll further down to the bottom of the Configuration section and ensure that
the Active Input Handling property has been set to Input Manager (Old), as shown in
Figure 3-8.

Figure 3-8. Android settings tab in the Other Settings section: Lightmap Encoding,
Identification, and Configuration properties

22
Chapter 3 Setting Up Your Project for VR Development

Next, scroll up to the top, where you’ll see the Rendering section. Ensure that the
Color Space property has been set to Linear, as shown in Figure 3-9.

Figure 3-9. Android settings tab in Other Settings: Rendering the Color Space
property

Finally, collapse the Other Settings section and close the Project Settings dialog.
On the main menu, select File ➤ Build Settings to open the Build Settings dialog
box. Then, click the Add Open Scenes button to add your Demo scene to the Scenes in
Build list box. By default, you’ll notice that the Platform has been set to PC, Mac & Linux
Standalone. These default platform settings are sufficient if you’re building for the HTC
Vive or the Oculus Rift. However, if you’re deploying to the Oculus Quest, you’ll need
to select Android as your platform. After this is done, change the Texture Compression
property to ASTC and set the Compression Method property to LZ4. If you have your
Oculus Quest connected to your PC, you can click the Refresh button beside the Run
Device property and select your Oculus device from the drop-down. Finally, click the
Switch Platform button. Unity will begin its importing process, which can take a while,
see Figure 3-10.

23
Chapter 3 Setting Up Your Project for VR Development

Figure 3-10. Build Settings dialog box for deploying a project to a Oculus
Quest headset

24
Chapter 3 Setting Up Your Project for VR Development

Summary
In this chapter, we went over the various VR hardware prerequisites and the hardware
you’ll need to follow along with this book. We explored prerequisites for the Windows
version of Unity. You created a new empty VR project and then downloaded and
imported the Unity package file provided to you in the new VR_Playground project.
The assets you imported via the Unity package file set the environment in which you
will build your VR framework. You explored each game object within the environment
provided. Next, you delved into the XR Plugin Management for Unity and saw the
default plug-ins installed. You then downloaded and imported the Oculus Integration
SDK, which we will use once we have installed version 4 of the VRTK packages in a later
chapter. Lastly, you set up several Player settings within Unity and looked at the Build
Settings dialog box and saw how you could switch your development platform to work
with an Android-based device like the Oculus Quest. In the next chapter, we’ll take a look
at version 4 of the VRTK.

25
CHAPTER 4

Importing VRTK 4 Tilia


Packages
In this chapter, we will go over how to import VRTK 4 Tilia packages into a project using
the manifest.json file. You will learn how to add manifest lines for several Tilia packages
in your project’s manifest.json file. You will then see how these packages are reflected in
the Package Manager and how they can be updated. We’ll also look at the Tilia input axis
definitions that get added to Unity’s Input Manager. Finally, we’ll look at the “Packages”
folder in the project tab to see how the Tilia packages have been structured.

Importing Version 4 of VRTK


Now that you have set up your project for VR development, it’s time to bring version 4
of the VRTK Tilia packages into your project. VRTK 4 comprises a repository of several
Tilia packages that provide valuable features for developing spatial solutions. These Tilia
packages are like the packages you have probably seen available within Unity’s Package
Manager and can be found within the Package Manager once imported.
All Tilia packages can be accessed by visiting the following site: www.vrtk.io/tilia.
html. The beauty of version 4 of the VRTK is that you can install only the packages that
are required for your project.
Note that packages are categorized under several headings on the site—namely,
Camera Rigs, Developer Tools, Indicators, Input, Interactions, Locomotors, Mutators,
Output, SDK, Trackers, Utilities, and Visuals—as shown in Figure 4-1.

27
© Christopher Coutinho 2022
C. Coutinho, Unity® Virtual Reality Development with VRTK4, https://doi.org/10.1007/978-1-4842-7933-5_4
Chapter 4 Importing VRTK 4 Tilia Packages

Figure 4-1. Screen where VRTK 4 Tilia packages are available on the VRTK website

For our purposes, we will install all the packages that will be helpful
for working with projects in this book. You can always add a new
package by adding its manifest line to your project’s manifest.json file.
You are not compelled to install every package listed here, even though you can.
You can look at the packages available in CameraRigs by clicking on the chevron beside
the heading. Note that the package lists its current release version, beneath which is a short
package description and, following that, a manifest line for each type of camera rig available.
You can copy this line using the Copy button to the right of it and paste it into your project’s
manifest.json file for all the packages you may require for your project. Below the manifest
line are links to the package documentation and GitHub, as shown in Figure 4-2.
28
Chapter 4 Importing VRTK 4 Tilia Packages

Figure 4-2. Tilia package manifest line

To bring Tilia packages into your project, you need to modify your projects manifest.
json file, which is available within your project’s “Packages” folder, so that it contains all
the manifest lines of the VRTK Tilia packages you need for your project.
As part of this book, you’ve been provided with a modified manifest.json file to
download, which will overwrite the manifest.json file that currently exists. Note that
you cannot access the manifest.json file directly from the Unity editor; you need to get it
using Windows file explorer.
This modified manifest.json file contains all the manifest lines from the Tilia page
located at www.vrtk.io/tilia.html, as required for this book’s projects.
Start by downloading the modified version of the manifest.json file to an easily
accessible location on your PC. With Unity open, and its Demo scene showing, select
the Project tab and then the “Packages” folder. Once you’ve done that, right-click the
folder on the shortcut menu that shows up, and then select Show in Explorer, as shown
in Figure 4-3.

29
Another random document with
no related content on Scribd:
overthrow of the Angles were, as we have seen, cordial and friendly.
In this work he appears to have been assisted by the family who had
already evangelised the rugged district termed the ‘Rough Bounds,’
as the churches dedicated to them and him are found adjacent to
each other. Among the northern Picts, Adamnan’s principal church
was that of Forglen on the east bank of the river Doveran, in which
the Brecbannoch, or banner of Columba, was preserved; and
separated from it by the same river is Turriff, dedicated to Comgan.
South of the range of the Mounth Adamnan’s most important
foundation was the monastery of Dull in the district of Atholl, which
was dedicated to him, and to which a very extensive territory was
annexed; and closely contiguous to it was the district of Glendochart,
with its monastery dedicated to Fillan, whose name is preserved in
Strathfillan. Fillan again appears in Pittenweem on the south coast of
the peninsula of Fife; and in the Firth of Forth which it bounds is
Inchkeith, ‘on which Saint Adamnan the abbot presided.’[349]
A.D. 704-717. Adamnan, though, as Bede says, a man of
Schism at Iona peace and providentially removed before the
after death of coming Easter, when matters would have been
Adamnan.
brought to a crisis between him and his
recalcitrant monks, seems notwithstanding to have left a legacy of
discord behind him. For the first time since the foundation of the
monastery of Iona, we find in the successor of Adamnan an abbot
who was not a descendant of Conall Gulban. Conmael, son of
Failbhe, was of the tribe of Airgialla in Ireland, who were descended
from Colla Uais; but three years after Adamnan’s death we find
Duncadh, who belonged to the tribe of the patron saint, obtaining the
abbacy. Then three years after we have the death of Conmael as
abbot of Iona. After his death appears Ceode, bishop of Iona, who
dies in 712, and in 713 Dorbeni obtains the chair of Iona, but after
five months’ possession of the primacy dies on Saturday the 28th of
October in the same year. During the whole of this time, however,
Duncadh is likewise abbot.[350] The explanation seems to be that the
community of Iona had become divided on the subject of the Easter
question, and that a party had become favourable to Adamnan’s
views. As he had not succeeded in bringing over any of the
Columban monasteries, they were driven to obtain an abbot
elsewhere, and procured the nomination of Conmael; while the
opposing party having got the upper hand three years after,
Duncadh, the legitimate successor of the line of Conall Gulban,
obtained the abbacy, and there was thus a schism in the community
—one section of them celebrating their Easter after the Roman
system, who had at their head Conmael, Ceode the bishop, and
Dorbeni; and the other and more powerful section maintaining, under
the presidency of Duncadh, the old custom of their church. After
narrating how ‘at that time,’ that is, in 710, ‘Naiton, king of the Picts
who inhabit the northern parts of Britain, taught by frequent study of
the ecclesiastical writings, renounced the error by which he and his
nation had till then been held in relation to the observance of Easter,
and submitted, together with his people, to celebrate the Catholic
time of our Lord’s resurrection,’ Bede closes his notices of the
monastery of Iona by telling us that ‘not long after, those monks also
of the Scottish nation who lived in the isle of Hii, with the other
monasteries that were subject to them, were, by the procurement of
our Lord, brought to the canonical observance of Easter and the right
mode of tonsure. For in the year after the incarnation of our Lord
716, the father and priest Ecgberct, beloved of God and worthy to be
named with all honour, coming to them from Ireland, was very
honourably and joyfully received by them. Being a most agreeable
teacher and most devout in practising those things which he taught,
he was willingly heard by all; and, by his pious and frequent
exhortations he converted them from the inveterate tradition of their
ancestors. He taught them to perform the principal solemnity after
the Catholic and apostolic manner;’ and Bede adds, ‘The monks of
Hii, by the instruction of Ecgberct, adopted the Catholic rites, under
Abbot Dunchad, about eighty years after they had sent Bishop Aidan
to preach to the nation of the Angles.’[351] It is rarely, however, that,
when a change is proposed in matters of faith or practice, a Christian
community is unanimous, and there is always an opposing minority
who refuse their assent to it. So it must have been here, for in the
same passage in which Tighernac notices the adoption of the
Catholic Easter in 716 he adds that Faelchu mac Dorbeni takes the
chair of Columba in the eighty-seventh year of his age, and on
Saturday the 29th of August; while he records the death of Abbot
Duncadh in the following year.[352] We have here again a schism in
the community; and no sooner does Abbot Duncadh with his
adherents go over to the Roman party, than the opposing section
adopt a new abbot.
A.D. 717 The greater part, if not the whole, of the
Expulsion of the dependent monasteries among the Picts seem to
Columban monks have resisted the change, and to have refused
from the kingdom
obedience to the decree which Bede tells us King
of the Picts.
Naiton had issued, when ‘the cycles of nineteen
years were forthwith by public command sent throughout all the
provinces of the Picts to be transcribed, learned and observed;’ for
we are told by Tighernac that in 717, when Abbot Duncadh had died
and Faelchu remained alone in possession of the abbacy, the family
of Iona were driven across Drumalban by King Naiton. In other
words, the whole of the Columban monks were expelled from his
kingdom;[353] and there is reason to think that Faelchu had been at
the head of one of these dependent monasteries in the territories of
the northern Picts.[354] It is possible that the monks of the
monasteries recently established among the southern Picts by
Adamnan may have conformed; but those of the older foundations,
such as Abernethy and Cillrigmonadh, or St. Andrews, were
probably driven out; and thus with the expulsion of the family of Iona
terminated the primacy of its monastery over the monasteries and
churches in the extensive districts of the east and north of Scotland
which formed at that time the kingdom of the Picts.

252. Exceptis duobus populis, hoc est, Pictorum plebs et


Scotorum Britanniæ, inter quos utrosque Dorsi montes Britannici
disterminant.... Cujus (Columbæ) monasteria intra utrorumque
populorum terminos fundata ab utrisque ad præsens tempus valde
sunt honorificata.—B. ii. c. 47·
253. For an account of the remains on this island, see p. 97.
254. See Dr. Reeves’s Adamnan, ed. 1874, App. I. p. 306.
255. Adamnan, B. ii. 23, 25.
256. Ib., B. i. cc. 24, 41; B. ii. c. 15; B. iii. c. 8. See ed. 1874,
Appendix I., for an account of the monasteries in Tiree.
257. Ib., B. i. c. 29.
258. Ib., B. i. c. 35.
259. Adamnan, B. i. c. 15.
260. Ib., B. i. c. 24.
261. See Reeves’s Adamnan, ed. 1874, App. No. I., for an
account of the remains on this island.
262. Vit. S. Kannechi, cc. 19, 27, 28.
263. Adamnan, B. ii. c. 17; i. 25; ii. 32.
264. See the edition of 1874, p. 274, for a description of these
ruins in Skye.
265. 592 Obitus Lugdach Lissmoir .i. Moluoc.—Chron. Picts and
Scots, p. 67.
266. Colgan, Tr. Th., p. 481. Obits of Christ Church, Dublin, p. 65.
267. Colgan, A.SS., p. 233.
268. Reeves’s Adamnan, ed. 1874, p. 293.
269. Cetrar for coicait lotar hi martrai la Donnan Ega.
270. Book of Deer, published by the Spalding Club in 1869, p. 91.
271. 584 Mors Bruidhe mac Maelchon Rig Cruithneach.—Chron.
Picts and Scots, p. 67.
272. Adamnan, B. ii. c. 34.
273. Chron. Picts and Scots, p. 201. Constantin reigned from 790
to 820 and Gartnaidh from 584 to 599, which places the foundation
of Abernethy during the ten years from 584 to 596.
274. Amra Columcille, by O’Beirne Crowe, pp. 29, 63.
275. Introduction to Obits of Christ Church, by Dr. Todd, p. lxxvii.
276. Vit. S. Cainneci in Archbishop Marsh’s Library, Dublin, cap.
19. The Breviary of Aberdeen gives his festival as ‘Sancti Caynici
abbatis qui in Kennoquy in diocesi Sancti Andree pro patrono
habetur.’—Pars Æstiv. for cxxv.
277. Blaan is mentioned in the Martyrology of Angus the Culdee,
at 10th August as ‘Blann the wild of Cinngaradh;’ and the gloss adds,
‘i.e. bishop of Cinngaradh, i.e. Dumblaan is his chief city, and he is
also of Cinngaradh in the Gall-Gaedelu, or Western Isles.’—Int. to
Obits of Christ Church, p. lxviii.
278. Adamnan, B. i. c. 3. Alither became fourth abbot of
Clonmacnois on 12th June 585, and died in 599.—Reeves’s
Adamnan, orig. ed., p. 24, note.
279. Adamnan, B. iii. c. 23.
280. This little hill is twice mentioned by Adamnan. In B. i. c. 24,
he describes the saint as ‘in cacumine sedens montis qui nostro huic
monasterio eminus supereminet;’ and on this occasion he has
‘monticellum monasterio supereminentum ascendens in vertice ejus
paululum stetit.’ If the monastery and Columba’s cell have been
rightly placed, it must have been the rocky knoll behind Clachanach
called Cnoc an bristeclach.
281. Vit. Columbæ, autore Cummenio, apud Pinkerton, Vitæ
Sanctorum, cc. 17, 18, 19, 20, 21, 22. Adamnan, B. iii. c. 24.
Cummene’s account is enlarged by Adamnan, and he has added the
visit to the barn and the incident of the white horse; but, as
Cummene wrote so much earlier, it has been thought desirable to
discriminate between the two accounts.
282. Adamnan’s word is ‘Ratabusta,’ an unknown word either in
classical or mediæval Latin; and it appears to have puzzled the
transcribers, as other MSS. read ‘Rata busta’ ‘Intra busta,’ ‘In rata
tabeta.’ The Bollandists propose ‘Catabusta.’ Bustum is used for a
sepulchre; and Ducange has Busticeta, which he defines ‘sepulchra
antiqua,’ ‘sepulchra in agro.’ Dr. Reeves thinks it is used here for a
coffin.
283. This frequently happens when the wind blows strongly from
the south-west.
284. St. Columba’s day was the 9th of June, and the year on
which he died is determined by the consideration of whether he must
be held to have died on Saturday evening or on Sunday morning. If
on Sunday, then the 9th of June fell on a Sunday in the year 597. If
on Saturday, then the 9th of June fell on a Saturday in 596. The
former is most consistent with Adamnan’s narrative, who places his
death after midnight, and states the duration of his life in Iona at 34
years, which, added to 563, gives us the year 597. Bede’s
statement, though made on different data, brings us to the same
year. He brings him over in 565, but gives 32 years as the duration of
his life after, which also brings us to 597. Tighernac seems to have
adopted the other view, for he says that he died on the eve of
Whitsunday, ‘in nocte Dominica Pentecosten,’ and Whitsunday fell
on the 10th of June 596; but this is inconsistent with his other
statement, that he came over to Britain in 563, and died in the thirty-
fifth year of his pilgrimage, which brings us to 597.
285. Montalembert’s Monks of the West, vol. iii. p. 269.
Montalembert accepts the whole of O’Donnel’s biography of St.
Columba as true.
286. Adamnan, Pref. 2. His expression ‘insulanus miles’ has been
entirely misunderstood by Montalembert.
287. Amra Choluimchille, by O’Beirne Crowe, pp. 27, 39, 49, 51,
53, 65.
288. Ib., p. 39.
289. Adamnan, B. i. c. 29.
290. Amra Choluimchille, pp. 43, 45.
291. Adamnan, B. ii. c. 14.
292. Bede, Η. E., B. iii. c. 3.
293. Bede seems to refer to this when he says, ‘in quibus omnibus
idem monasterium insulanum, in quo ipse requiescit corpore,
principatum teneret.’—B. iii. c. 4.
294. The expression, ‘whatever kind of person he was himself,’—
verum qualiscumque fuerit ipse,—has been held to imply that Bede
had no great opinion of St. Columba’s sanctity, or, at all events,
referred to traits in his character which were unfavourable, and Dr.
Reeves suggests that he may refer to current stories of the saint’s
imperious and vindictive temper; but the expression appears to the
author to refer to the immediately preceding sentence—‘de cujus vita
et verbis nonnulla a discipulis ejus feruntur scripta haberi’—which
surely refers to the Lives by Cummene and Adamnan. As Bede was
acquainted with Adamnan’s work on the Holy Places, he could
hardly have been ignorant of his Life of St. Columba; and probably
all Bede meant to express was that he had some hesitation in
accepting as true all that Adamnan said of him.
295. Adamnan, B. i. c. 2. It is unnecessary to follow Finten’s
proceedings further. He is the Finten, surnamed Munnu, who
founded Tach Munnu, now Taghmon, in Ireland, and to whom the
churches of St. Mund in Lochleven and Kilmund in Cowal were
dedicated.
296. 598 Quies Baethin abbatis Ea anno lxvi etatis sue.—Tigh.
Tighernac antedates the deaths of Columba and Baithene one year.
The Martyrology of Donegal records two anecdotes of him. ‘When he
used to eat food, he was wont to say Deus in adjutorium meum
intende between every two morsels. When he used to be gathering
corn along with the monks, he held one hand up beseeching God,
and another hand gathering corn.’—Mart. Don. p. 165.
297. Bede, Η. E., B. ii. c. 4.
298. 605 Obitus Laisreni abbatis Iae.—Tigh.
299. Adamnan, B. iii. c. 20.
300. 611 Neman Abbas Lesmoir.—Tigh. 617 Combustio Donnain
Ega hi xv kalendas Mai cum clericis martiribus.—Tigh. Chron. Picts
and Scots, pp. 68, 69.
301. Dr. Reeves’s Adamnan, 1874, p. 294.
302. Chron. Picts and Scots, p. 168. Bishop Forbes’s Calendars,
p. 449.
303. Bede, Hist. Ec., B. iii. c. 1.
304. 623 Bass Fergna abbas Iae.—Tigh.
305. Bede, Η. E., B. ii. c. 14.
306. Bede, Hist. Ec., B. ii. c. 17.
307. Ib., B. iii. c. 3.
308. Bede, Hist. Ec., B. iii. c. 5.
309. ‘Hanc mihi Adamnano narrationem meus decessor, noster
abbas Failbeus, indubitanter enarravit, qui se ab ore ipsius Ossualdi
regis Segineo abbati eamdem enuntiantis visionem audisse
protestatus est.’—Adamnan, B. i. c. 1.
310. 632 Inis Metgoit fundata est.—Tigh. Tighernac antedates at
this period transactions in Northumbria by about three years.
311. Bede in Vit. S. Cudbercti, c. xvi.
312. Bede, Hist. Ec., B. iii. c. 3.
313. The title of the letter is—‘In nomine Divino Dei summi confido.
Dominis sanctis et in Christo venerandis Segieno abbati, Columbæ
Sancti et cæterorum sanctorum successori, Beccanoque solitario,
charo carne et spiritu fratri, cum suis sapientibus, Cummianus
supplex peccator, magnis minimus, apologeticam in Christo
salutem.’
314. The letter is printed at length in Usher’s Veterum Epistolarum
Hibernicarum Sylloge, p. 24, and in Migne’s Patrologia, vol. xxxviii.
315. According to the Irish method Easter in 631 fell on 21st April,
according to the Roman on the 24th of March.
316. Bede, Hist. Ec., B. ii. c. 19.
317. Ib., B. iii. c. 3.
318. Keating’s History of Ireland, cap. ii. § 7.
319. 635 Seigine abbas Ie ecclesiam Recharnn fundavit. Eocha
abbas Lismoir quievit.—Tigh.
320. Bede, Hist. Ec., B. ii. c. 19.
321. Bede, Hist. Ec., B. iii. c. 17. 651 Quies Aidain episcopi Saxan.
—Tigh.
322. 652 Obitus Seghine abbas Iea .i. filii Fiachna.—Tigh.
657 Quies Suibne mic Cuirthre abbatis Iea.—Tigh.
323. Bede, Hist. Ec., B. iii. c. 25.
324. 660 Obitus Finain mac Rimeda episcopi et Daniel episcopi
Cindgaradh.
661 Cuimine abbas ad Hiberniam venit.—Tigh.
325. Bede, H. E., B. iii. c. 25.
326. Bede, Hist. Ec., B. iii. c. 25.
327. Ib., c. 26.
328. Bede, Hist. Ec., B. iii. c. 26.
329. Ib., B. iv. c. 4.
A.D. 668 Navigatio Colmani episcop cum reliquiis sanctorum ad
insulam vacce albe in qua fundavit ecclesiam.—Tigh.
330. Adamnan, B. iii. c. 6.
331. A.D. 669 Obitus Cumaine Ailbe abbatis Iea. Itharnan et
Corindu apud Pictores defuncti sunt.—Tigh.
332. Bede, Hist. Ec., B. iv. c. 3.
333. Eddii Vit. S. Wilf., c. xxi.
334. A.D. 671 Maelruba in Britanniam navigat.
A.D. 673 Maelruba fundavit ecclesiam Aporcrosan.—Tigh.
335. A.D. 673 Navigatio Failbe abbatis Iea in Hiberniam. A.D. 676
Failbe de Hibernia revertitur.—Tigh.
336. Bishop Forbes, Scottish Calendars, pp. 310-341.
337. Dr. Reeves’s Adamnan, ed. 1874, p. 296.
338. A.D. 674 Quies Failbe abbatis Iea. Dormitatio Nechtain.—Tigh.
He appears in the Felire of Angus on 8th January as Nechtain Nair
de albae, which is glossed Anair de Albain—from the east, from
Alban.
339. A.D. 687 Adamnanus captivos reduxit ad Hiberniam lx.—Tigh.
Reeves’s Adamnan, ed. 1874, p. cli. Adamnan alludes to this
mission, B. ii. c. 1.
340. Adamnan, B. ii. c. 46. Boece states that the monastery was
rebuilt by Maelduin, king of Dalriada, whose death is recorded by
Tighernac in 690. He therefore reigned at the very time when
Adamnan was abbot, and this fixes the date of these repairs as
between 687 and 690.
341. Bede, Hist. Ec., B. v. c. 15. Reeves’s Adamnan, ed. 1874, p.
clxi.
342. Bede, Hist. Ec., B. v. c. 15.
343. Ib. c. 21. He calls him ‘Abbas et sacerdos Columbiensium
egregius.’
344. A.D. 689 Iolan episcopus Cindgaradh obiit. 692 Adamnanus
xiiii annis post pausam Failbe Ea ad Hiberniam pergit.—Tigh. See
Chron. Picts and Scots, p. 408.
345. Dr. Reeves’s Adamnan, ed. 1874, p. clvi. A.D. 697 Adamnan
tuc recht lecsa in Erind an bliadhna seo (brought a law with him this
year to Ireland).—Tigh.
346. Bede, Hist. Ec., B. v. c. 15.
347. A.D. 704 Adamnanus lxxvii anno ætatis suæ, in nonas
kalendis Octobris, abbas Ie, pausat.—Tigh.
348. See Adamnan, Pref. i. and B. i. c. 3. Dr. Reeves considers
that it was written between the years 692 and 697, but it was more
probably compiled immediately after his return from England in 688,
and before his visit to Ireland in 692.
349. ‘Inchekethe, in qua præfuit Sanctus Adamnanus abbas.’—
Scotichronicon, B. i. c. 6.
350. A.D. 707 Dunchadh principatum Iae tenuit.—Tigh.
710 Conmael mac abbatis Cilledara Iae pausat.—Tigh.
712 Ceode episcopus Iea pausat.—Tigh.
713 Dorbeni cathedram Iae obtinuit, et v. mensibus peractis in
primatu v kalendis Novembris die Sabbati obiit.—Tigh. The 28th day
of October fell on a Saturday in the year 713. The passage recording
the death of Conmael is corrupt.
351. Bede, Hist. Ec., B. v. c. 22.
352. A.D. 716 Pasca in Eo civitate commotatur. Faelchu mac
Doirbeni cathedram Columbæ lxxxvii ætatis anno, in iiii kal.
Septembris die Sabbati suscepit.—Chron. Picts and Scots, p. 73.
The 29th day of August fell on a Saturday in the year 716.
A.D. 717 Dunchadh mac Cindfaeladh abbas Ie obiit.—Ib. p. 74.
353. A.D. 717 Expulsio familiæ Ie trans dorsum Britanniæ a
Nectono rege.—Chron. Picts and Scots, p. 74.
354. In the Breviary of Aberdeen is the legend of S. Volocus,
patron saint of Dunmeth and Logy in Mar, both in Aberdeenshire.
Volocus is the Latin form of Faelchu, as Vigeanus is of Fechin,
Vynanus of Finan, and Virgilius of Fergal.
MAP
illustrating History of
MONASTIC CHURCH
prior to 8th. Century

J. Bartholomew, Edin.
CHAPTER V.

THE CHURCHES OF CUMBRIA AND LOTHIAN.

A.D.573. Ten years after the landing of St. Columba in


Battle of Ardderyd. Iona the great battle of Ardderyd, or Arthuret, was
Rydderch Hael fought between the pagan and the Christian
becomes king of
parties in Cumbria; and the same year which saw
Strathclyde.
Aidan, who had taken part in it, inaugurated by
St. Columba as independent king of Dalriada, likewise witnessed the
establishment of another of the chiefs who fought in that battle,
Rydderch Hael, or the Liberal, as Christian king of Strathclyde, and
the restoration of a Christian Church to its Cumbrian population. As
Columba was the founder of the Christian Church among the
northern Picts, so Kentigern was the great agent in the revolution
which again christianised Cumbria. We are not, however, so
fortunate in the biographers of Kentigern as we are in those of
Columba. While those of the latter lived when the memory of his
words and acts was still fresh in the minds of his followers, Kentigern
found no one to record the events of his life till upwards of five
centuries had elapsed after his death. A fragment of the life which
had been used by John of Fordun and a complete biography by
Jocelyn of Furness are all we possess, but neither of them was
compiled before the twelfth century.[355]
Oldest account of The older life, of which a fragment only
birth of Kentigern. remains, states that ‘a certain king Leudonus, a
man half pagan, from whom the province over which he ruled in
northern Britannia obtained the name of Leudonia, had a daughter
under a stepmother, and the daughter’s name was Thaney.’ This girl,
having become Christian, ‘meditated upon the virginal honour and
maternal blessedness of the most holy Virgin Mary,’ and desired, like
her, to bring forth one who would be for the honour and salvation of
her nation in these northern parts. She ‘had a suitor, Ewen, the son
of Erwegende, sprung from a most noble stock of the Britons,’ but
she refused to marry him; upon which the king her father gave her
the alternative of either marrying him or being handed over to the
care of a swineherd, and she chose the latter. The swineherd was
secretly a Christian, having been converted by Servanus, a disciple
of Palladius, and respected her wishes. Her suitor Ewen, however,
succeeded by a stratagem in violating her in a wood, and she
became with child, upon which her father ordered her to be stoned
according to the laws of the country; but as none of the officers
presumed to cast stones at one of the royal family, she was taken to
the top of a hill called Kepduf and precipitated from it; having made
the sign of the cross, however, she came down to the foot of the
mountain unhurt. The king then ordered her to be given over to the
sea, saying, ‘If she be worthy of life, her God will free her from the
peril of death, if He so will.’ They brought her, therefore, to the firth,
which is about three miles from Kepduf, to the mouth of a river called
Aberlessic, where she was put into a curach, that is, a boat made of
hides, and carried out into deep water beyond the Isle of May. She
remained all night alone in the midst of the sea, and when morning
dawned she was in safety cast on the sand at Culenros, which,
according to sailors’ computation, is thirty miles distant from the Isle
of May. Here she suffered the pains of labour; and, as she lay on the
ground, suddenly a heap of ashes which the day before had been
gathered together close to the shore by some shepherds, was struck
by a gust of the north wind, which scattered around her the sparks
which lay hid within it. When, therefore, she had found the fire, the
pregnant young woman dragged herself at once, as best she could,
to the place indicated by God, and in her extreme necessity, with
anxious groans, she made a little heap with the wood which had
been collected the day before by the foresaid shepherds to prepare
the fire. Having lighted the fire, she brought forth a son, the chamber
of whose maturity was as rude as that of his conception. Some herds
found her there with the child, and while some gave her food, others
went straight to the blessed Servanus, who at that time was teaching
the Christian law to his clerics, with one accord saying, ‘Sir, thus and
thus have we found;’ to whom the saint said, A Dia cur fir sin, which
in Latin means ‘O utinam si sic esset,’[356] and the youths replied,
‘Yea, father, it is a true tale and no fable which we tell; therefore we
pray you, sir, come and see, that thy desire may without delay be
satisfied;’ and he also, when he had learnt the order of the events,
rejoiced with great joy, and said, ‘Thanks be to God, for he shall be
my dear one.’ For as the child was being born, when he was in his
oratory after morning lauds, he had heard on high the Gloria in
excelsis being solemnly sung. And after an address to his clerics, in
which he vindicates the manner in which the conception of the
blessed Kentigern had taken place, and ‘praises Him who alone
governeth the world, and hath, among others, blessed our country
Britain with such a patron,’ this fragment unfortunately terminates.[357]
Jocelyn’s account Jocelyn, whose narrative, as the Bishop of
of his birth. Brechin well observes, is here directed at
undoing the weird legend of the earlier life, which gives the
unedifying account of the conception of Kentigern, does not name
either father or daughter. He calls Kentigern’s mother simply ‘the
daughter of a certain king, most pagan in his creed, who ruled in the
northern parts of Britannia.’ Neither does he name the suitor who
betrayed her, but declares that she had no consciousness by whom,
when, or in what manner she conceived, and had possibly been
drugged. He states that, according to the law of the country, any girl
in her situation was to be cast down from the summit of a high
mountain, and her betrayer beheaded; that she was taken to the top
of a high hill called Dunpelder, and was cast down, but came to the
bottom uninjured; that she was then taken out to sea by the king’s
servants, and placed in a little boat of hides made after the fashion of
the Scots, without any oar, and, ‘the little vessel in which the
pregnant girl was detained ploughed the watery breakers and eddies
of the waves towards the opposite shore more quickly than if
propelled by a wind that filled the sail, or by the effort of many
oarsmen;’ that the girl landed on the sands at a place called
Culenros, in which place at that time Servanus dwelt, and taught
sacred literature to many boys who went to be trained to the divine
service. The birth then takes place as in the other narrative, and they
are brought and presented to Servanus, who ‘in the language of his
country exclaimed, Mochohe, Mochohe, which in Latin means “Care
mi, Care mi,” adding, Blessed art thou that hast come in the name of
the Lord. He therefore took them to himself, and nourished and
educated them as if they were his own pledges. After certain days
had passed, he dipped them in the laver of regeneration and
restoration, and anointed them with the sacred chrism, calling the
mother Taneu and the child Kyentyern, which by interpretation is
Capitalis Dominus.’ He then educates him, and the gifts of grace
manifested by the boy were so great that ‘he was accustomed to call
him, in the language of his country, Munghu, which in Latin means
Karrissimus Amicus.’[358] Kentigern is brought up by Servanus, and
the usual boyish miracles are recorded as evidences of his sanctity,
till, having excited the jealousy and hatred of his fellow-students, he
resolves, under Divine guidance of course, to leave the place. He
accordingly retreated secretly, and ‘journeying arrived at the Frisican
shore, where the river, by name Mallena, overpassing its banks
when the tide flows in, took away all hope of crossing;’ but the river
is miraculously divided to enable him to pass, the tide flowing back
so that the waters of the sea and of the river stood as walls on his
right hand and on his left. He then crosses a little arm of the sea
near a bridge, which by the inhabitants is called Servanus’s bridge;
and on looking back, he saw that the waters had not only flowed
back and filled the channel of the Mallena, but were overflowing the
bridge and denying a passage to any one. Servanus, who had
followed in pursuit of the fugitive, stood above on the bank and
endeavoured to persuade him to return, but without success; and
‘having mutually blessed each other, they were divided one from the
other, and never looked in each other’s face again in this world. And
the place by which Kentigern crossed became after that entirely
impassable; for that bridge, always after that covered by the waves
of the sea, afforded to no one any longer means of transit. Even the
Mallena altered the force of its current from the proper place, and
from that day to this turned back its channel into the river Ledone; so
that forthwith the rivers which till then had been separate from each
other now became mingled and united.’ Kentigern passes the night
at a town called Kernach, where he finds an old man, Fregus, on his
death-bed, who dies in the night; and ‘next morning Kentigern,
having yoked two untamed bulls to a new wain, in which he placed
the body whence the spirit had departed, and having prayed in the
name of the Lord, enjoined upon the brute beasts to carry the burden
placed upon them to the place which the Lord had provided for it.
And in truth the bulls, in no way resisting or disobeying the voice of
Kentigern, came by a straight road, along which there was no path,
as far as Cathures, which is now called Glasgu’, and halted near a
certain cemetery which had long before been consecrated by Saint
Ninian. Here Kentigern lives for some time; and then ‘the king and
clergy of the Cumbrian region, with other Christians, albeit they were
few in number, came together and, after taking into consideration
what was to be done to restore the good estate of the church, which
was well-nigh destroyed, they with one consent approached
Kentigern, and elected him, in spite of his many remonstrances and
strong resistance, to be the shepherd and bishop of their souls;’ and
‘having called one bishop from Ireland, after the manner of the
Britons and Scots of that period, they caused Kentigern to be
consecrated bishop.’[359]
Anachronism in Such is the substance of these narratives; and
connecting St. here we are met, at the very outset, by a great
Servanus with St. anachronism. Along with the lives of Kentigern
Kentigern.
there is found a life of Servanus, in which he is
made the founder of the church of Culenros; but there is not one
syllable about his having been the master of Kentigern, or in any way
connected with him, but the whole events of his life, as there given,
indisputably place him, as we shall afterwards see, nearly two
centuries later.[360] In spite, therefore, of the statements of his
biographers and of the belief of popular tradition, the only conclusion
we can come to is that Servanus and St. Kentigern were divided by a
more impassable barrier than the river Mallena—the stream of time,
and that they had never looked in each other’s face at all. The
scenery, however, of the narrative can be easily identified. The hill
called in the one narrative Kepduf, and in the other Dunpelder, is
Traprain Law, formerly called Dumpender Law, in the county of
Haddington. It is an isolated hill and, along with North Berwick Law,
forms a conspicuous object in the landscape. It is about 700 feet
above the level of the sea, and on the south side it is nearly
perpendicular. It is distant about seven or eight miles from Aberlady
Bay, the Aberlessic of the older narrative. Culenros is Culross, on the
north shore of the Firth of Forth, here called the Frisican shore, as
the Forth itself is called by Nennius the Frisican Sea. The names of
the two rivers Mallena and Ledone are simply the Latin terms for the
flood and ebb tide, but the course of the two rivers, the Teith and the
Forth, seems to have suggested the legend. They run nearly parallel
to each other till they approach within three miles of Stirling, when
the southern of the two rivers, the Forth, takes a sudden bend to the
north, as if it would flow backwards, and discharges its waters into
the Teith, the two forming one river, but adopting the name of the
former. Kernach is Carnock, in the parish of Saint Ninian’s in
Stirlingshire.
Earlier notices of If, however, that part of the legend which
St. Kentigern. introduces Servanus must be rejected, the
remainder derives some support from the old Welsh documents. In
the Triads of Arthur and his Warriors, which are undoubtedly old, the
first is termed ‘Three tribe thrones of the island of Prydain;’ and the
third of the tribe thrones is ‘Arthur, the chief lord at Penrionyd in the
north, and Cyndeyrn Garthwys, the chief bishop, and Garthmwl
Guledic, the chief elder.’[361] The chronology of the life of Kentigern is
not inconsistent with that which here connects him with the historic
Arthur, and the epithet Guledic, which was applied to the chief
among the Cymric kings of the north, gives us Garthmwl as the
name of the king of the district in which Glasgow was situated. In the
Bonedd y Seint ynys Prydain, or Pedigrees of the Saints of Britain,
we find the following pedigree: ‘Kyndeyrn Garthwys, son of Ywein,
son of Urien Reged, son of Cynfarch, son of Meirchiawngul, son of
Grwst Ledlwm, son of Cenau, son of Coel; and Dwynwen, daughter
of Ladden Lueddog of the city of Edwin (Ddinas Edwin, or
Edinburgh), in the north, was his mother.’[362] We have seen that prior
to this period Monenna had founded a church on the summit of
Dunpelder, in which she established nuns;[363] and it is possible that
Dwynwen or Taneu may have been one of these nuns, who, by the
violation of her religious vow, had incurred the sentence of being
exposed in a curach in the adjacent firth. There is nothing impossible
in a small boat being driven before an east wind as far as Culross;
and certain it is that on the shore where she is said to have landed
there was a small chapel dedicated to Kentigern.[364] We learn from
the narrative that there had been an earlier church at Glasgow
founded by Ninian, which Kentigern may have restored, and he
makes his appearance in the martyrologies in the ninth century as
‘Saint Kentigern, Bishop of Glasgow and Confessor.’[365]
Kentigern driven Jocelyn, after describing Kentigern’s mode of
to Wales. life and how he spread the faith of Christ in his
diocese, tells us that, ‘a considerable time having elapsed, a certain
tyrant, by name Morken, had ascended the throne of the Cumbrian
kingdom,’ who ‘scorned and despised the life and doctrine of the
man of God in much slandering, in public resisting him from time to
time, putting down his miraculous power to magical illusion, and
esteeming as nothing all that he did.’ But after a time Morken dies
and is buried in the royal town, which from him was called Thorp
Morken. ‘After this,’ says Jocelyn, ‘for many days he enjoyed great
peace and quiet, living in his own city of Glasgow, and going through
his diocese;’ but, ‘when some time had passed, certain sons of
Belial, a generation of vipers of the kin of the aforenamed King
Morken, excited by the sting of intense hatred and infected with the
poison of the devil, took counsel together how they might lay hold of
Kentigern by craft and put him to death.’ In consequence of this
Kentigern resolved to leave the north and proceed to Menevia in
South Wales, now Saint David’s, where St. David then ruled as
bishop. The Morken here mentioned is probably one of the kings
termed Morcant by Nennius; and it is quite in accordance with the
history of the period that the increasing power of the pagan party in
the northern districts of Cumbria should have driven Kentigern from
Glasgow and forced him to take refuge in Wales. Jocelyn describes
him as proceeding by Carlisle, and says that, ‘having heard that
many among the mountains were given to idolatry or ignorant of the
divine law, he turned aside, and, God helping him and confirming the
word by signs following, converted to the Christian religion many
from a strange belief, and others who were erroneous in the faith.’
‘He remained some time in a certain thickly-planted place, to confirm
and comfort in the faith the men that dwelt there, where he erected a
cross as the sign of the faith, whence it took the name of, in English,
Crossfeld, that is, Crucis Novale, in which very locality a basilica,
recently erected, is dedicated to the name of the blessed Kentigern.’
Jocelyn then tells us that, ‘turning aside from thence, the saint
directed his steps by the sea-shore, and through all his journey
scattering the seed of the Divine Word, gathered in a plentiful and
fertile harvest unto the Lord. At length safe and sound he reached
Saint Dewi.’
Kentigern founds St. David was, as we have already seen, one
the monastery of of the great founders of the monastic church; and
Llanelwy in Wales. Kentigern had not been long with him when he
applied to the king for land to build a monastery, where he might
unite together a people acceptable to God and devoted to good
works; and the king, whom Jocelyn calls Cathwallain, allowed him to
choose his own place. Kentigern, ‘with a great crowd of his disciples
along with him, went round the land and walked throughout it
exploring the situations of the localities, the quality of the air, the
richness of the soil, the sufficiency of the meadows, pastures and
woods, and the other things that look to the convenience of a
monastery to be erected;’ and is finally conducted by a white boar ‘to
the bank of a river called Elgu, from which to this day, as it is said,
the town takes its name.’ Here he commenced to construct his
monastery; ‘some cleared and levelled the situation, others began to
lay the foundation of the ground thus levelled; some cutting down
trees, others carrying them and others fitting them together,
commenced, as the father had measured and marked out for them to
build a church and its offices of polished wood, after the fashion of
the Britons, seeing that they could not yet build of stone, nor were so
wont to do.’[366] Here we are treading on somewhat firmer ground.
The monastery described is that of Llanelwy, afterwards called St.
Asaph’s. It is in the vale of Clwyd, at the junction of the river Elwy
with the Clwyd, a name possibly given to it by Kentigern from some
fancied resemblance to the river and valley in the north where he
had his original seat; and the Red Book of St. Asaph’s records
several grants made to Kentigern by Maelgwyn Gwyned, the king of
North Wales at this time.[367]
The description given by Jocelyn of the construction of the
monastery is probably not an inapt account of how these early Irish
monasteries were erected; and indeed it may be considered a type
of the larger monasteries, for Jocelyn tells us, ‘There flocked to the
monastery old and young, rich and poor, to take upon themselves
the easy yoke and light burden of the Lord. Nobles and men of the
middle class brought to the saint their children to be trained unto the
Lord. The tale of those who renounced the world increased day by
day both in number and importance, so that the total number of
those enlisted in God’s army amounted to 965, professing in act and
habit the life of monastic rule, according to the institution of the holy
man. He divided this troop, that had been collected together and
devoted to the divine service, into a threefold division of religious
observance. For he appointed three hundred, who were unlettered,
to the duty of agriculture, the care of the cattle, and the other
necessary duties outside the monastery. He assigned another three
hundred to duties within the enclosure of the monastery, such as
doing the ordinary work and preparing food and building workshops.
The remaining three hundred and sixty-five, who were lettered, he
appointed to the celebration of divine service in church by day and
by night; and he seldom allowed any of these to go forth out of the
sanctuary, but they were ever to abide within, as if in the holy place
of the Lord. But those who were more advanced in wisdom and
holiness and who were fitted to teach others, he was accustomed to
take along with him when, at the urgent demand either of necessity
or reason, he thought fit to go forth to perform his episcopal
office.’[368] Allowing for some exaggeration in the numbers of those in
the second and third divisions, this is probably a very correct picture
of the monasteries in the early monastic church of Ireland and
Scotland when the head of the monastery was also a bishop.
A.D. 573. After some account of Kentigern’s life at his
Rydderch Hael monastery in North Wales, Jocelyn returns to the
becomes king of north in order to ‘show what his adversaries
Cumbria and
suffered, how he returned to the Cumbrian
recalls Kentigern.
region, and what he did there.’ He tells us, after
an imaginative account of the fate of those who had driven out
Kentigern, that, ‘when the time of having mercy had arrived, that the
Lord might remove the rod of his fierce anger and that they should
turn unto Him and He should heal them, He raised up over the
Cumbrian kingdom a king, Rederech by name, who, having been
baptized in Ireland in the most Christian manner by the disciples of
Saint Patrick, sought the Lord with all his heart and strove to restore
Christianity.’ ‘Wherefore,’ continues Jocelyn, ‘King Rederech, seeing

You might also like