Skip to content

Latest commit

 

History

History
198 lines (152 loc) · 4.57 KB

npcs.md

File metadata and controls

198 lines (152 loc) · 4.57 KB

NPCs

tags: devlog m3
  • publish example NPC code from demos
  • very similar structure already
  • focus on naming schemes for interop
  • hyperfy NPCs are glb, wants to do VRM + fbx (mixamo) anim next
  • would be nice to have a gui editor, maybe nodes graph based
  • dialogue trees would be nice, hosted on some server NPCs somewhere could influence NPCs in some other places
  • keep it simple

A

{%youtube jLzRKxZkdyw %}


Webaverse

glb pets don't have AI support in webaverse

{
  "name": "jin_tubby",
  "start_url": "jin_tubby.glb",
  "components": [
    {
      "key": "look",
      "value": {
        "rootBone": "mixamorig_Neck"
      }
    },
    {
      "key": "pet",
      "value": {
        "idleAnimation": "idling",
        "walkAnimation": "walk",
        "runAnimation": ""
      }
    }
  ]
}

Hyperfy

Ash wants to change to VRM NPCs later on

const schema = {
  id: 'Erika',
  origin: 'intro',
  views: {
    intro: {
      text: "Oh... hey...\nI'm kind of a bit sad right now...",
      goto: 'questAsk',
    },
    questAsk: {
      text: 'I seem to have misplaced by teddy bear somewhere. I swear its around here somewhere. Will you help me find it?',
      origin: 'questAsk',
      options: [
        { text: "Sure, I'll find it!", goto: 'questAccept' },
        { text: 'Maybe later', goto: 'questReject' },
      ],
    },
    questReject: {
      text: '*Sniff* *Sniff*\n\nOkay... no worries...',
    },
    questAccept: {
      text: 'Oh gosh really? Thank you so much! Please return soon!',
      origin: 'questActive',
    },
    questActive: {
      text: 'Welcome back. Any luck finding my teddy bear?',
      options: [
        { text: 'Yep, here you go!', require: 'item', goto: 'questComplete' },
        { text: 'Sorry, not yet', goto: 'questNotYet' },
      ],
    },
    questNotYet: {
      text: 'I really hope you can find him for me!',
    },
    questComplete: {
      text: 'Oh for realsies!?!? You found him! Thank you so much sir!',
      origin: 'loved',
      event: 'complete',
    },
    loved: {
      text: "I don't know what I would have done if you didn't find my teddy for me.",
    },
  },
}

Watch on Youtube: https://www.youtube.com/watch?v=Ci1oB-LoMfc

{%youtube Ci1oB-LoMfc %}


hyperfy lasershark

Demo: https://hyperfy.io/lasershark Github: https://github.com/la53rshark/hyperfy-lasershark Dialog: https://github.com/la53rshark/hyperfy-lasershark/blob/development/components/world/dialog/Erika.js


Anarchy Arcade

{%youtube STQRpylK8kI %} Watch on Youtube: https://www.youtube.com/watch?v=STQRpylK8kI

"ezquest"
{
	"id"		"-t_LwvBEuRnblkT1iCSt"
	"_template"		"gossip"
	"title"		"Talk to Jin"
	"objective"		"He's lurking somewhere."
	"success"		"Pssst!
Hey! Buddy! Over here.
You look like somebody who appreciates fine things.
I just happen to have some fine things on me right now for barter.
Perhaps I can interest you in some of my merchandise.
	What have you got?
		What have I got?
		What haven't I got.
		What I have for you here, friend, are some of the finest NFTs you'll find this side of the metaverse.
		Freshly minted - you can still smell the burnning nvidia smell on them.
			Do you take republic credits?
				...
				If you don't have a wallet, then we can't do business.
				I think I saw a JC Penny down the street.
				Maybe you'll find something more your style there.[success]
	No thanks.
		Your loss. These goods will be 10 times as expensive when you finally do come around."
	"spin"		"0"
	"object"		"-tZoq7zb4bbeTfjfAINe"
	"type"		"comic"
	"interact"		"useRepeatable"
	"presence"		"always"
	"Visibility"		"default"
	"initial"		"active"
	"collidable"		"1"
}

VRChat

https://hackmd.io/@XR/mocap-interop#NPCs

{%youtube r8YpXP0RlZc %} https://www.youtube.com/watch?v=r8YpXP0RlZc https://qiita.com/Ruuubick/items/b07028bc935421ca6e2e


JanusXR

Ghost recordings and replays as NPCs Packet capture and replay Timestamps become the options