void GenerateUMA() { // Create a new game object and add UMA components to it GameObject GO = new GameObject("MyUMA"); umaDynamicAvatar = GO.AddComponent<UMADynamicAvatar>(); // Initialise Avatar and grab a reference to it's data component umaDynamicAvatar.Initialize(); umaData = umaDynamicAvatar.umaData; // Attach our generator umaDynamicAvatar.umaGenerator = generator; umaData.umaGenerator = generator; // Set up slot Array umaData.umaRecipe.slotDataList = new SlotData[numberOfSlots]; // Set up our Morph reference umaDna = new UMADnaHumanoid(); umaTutorialDNA = new UMADnaTutorial(); umaData.umaRecipe.AddDna(umaDna); umaData.umaRecipe.AddDna(umaTutorialDNA); // Grab a reference to our recipe // var umaRecipe = umaDynamicAvatar.umaData.umaRecipe; //moved to subroutine MakeMale // >>> This is whee the fun will happen according to Secret Anorak <<<< CreateMale(); // Generate Our UMA umaDynamicAvatar.UpdateNewRace(); }
void GenerateUMA() { GameObject myUMA = new GameObject("MyUMA"); avatar = myUMA.AddComponent<UMADynamicAvatar>(); avatar.Initialize(); umaData = avatar.umaData; avatar.umaGenerator = generator; umaData.umaGenerator = generator; umaData.umaRecipe = new UMAData.UMARecipe(); umaData.umaRecipe.slotDataList = new SlotData[NUM_SLOTS]; umaDna = new UMADnaHumanoid(); umaTutorialDna = new UMADnaTutorial(); umaData.umaRecipe.AddDna(umaDna); umaData.umaRecipe.AddDna(umaTutorialDna); CreateMale(); avatar.animationController = animController; avatar.UpdateNewRace(); myUMA.transform.parent = this.gameObject.transform; myUMA.transform.localPosition = Vector3.zero; myUMA.transform.localRotation = Quaternion.identity; }
public void Initialize(UMADiAvatar.Factory avatarGOFactory, UMADnaHumanoid dna, UMADnaTutorial tutorial) { this.avatarGOFactory = avatarGOFactory; this.umaDna = dna; this.umaTutorialDna = tutorial; GenerateUMA(); }
void myColliderUpdateMethod(UMA.UMAData umaData) { CapsuleCollider tempCollider = umaData.umaRoot.gameObject.GetComponent("CapsuleCollider") as CapsuleCollider; if (tempCollider) { UMA.UMADnaHumanoid umaDna = umaData.umaRecipe.GetDna <UMA.UMADnaHumanoid>(); tempCollider.height = (umaDna.height + 0.5f) * 2 + 0.1f; tempCollider.center = new Vector3(0, tempCollider.height * 0.5f - 0.04f, 0); } }
public void AvatarSetup() { umaDynamicAvatar = umaData.gameObject.GetComponent<UMADynamicAvatar>(); if(cameraTrack) { cameraTrack.target = umaData.umaRoot.transform; } umaDna = umaData.umaRecipe.umaDna[typeof(UMADnaHumanoid)] as UMADnaHumanoid; ReceiveValues(); }
void GenerateUMA() { // Create a new game object and add UMA components to it GameObject GO = new GameObject("MyUMA"); umaDynamicAvatar = GO.AddComponent<UMADynamicAvatar>(); // Initialise Avatar and grab a reference to it's data component umaDynamicAvatar.Initialize(); umaData = umaDynamicAvatar.umaData; //practical guide to uma part 15 uma events https://youtu.be/_k-SZRCvgIk?t=8m20s umaData.OnCharacterCreated += CharacterCreatedCallback; // Attach our generator umaDynamicAvatar.umaGenerator = generator; umaData.umaGenerator = generator; // Set up slot Array umaData.umaRecipe.slotDataList = new SlotData[numberOfSlots]; // Set up our Morph reference umaDna = new UMADnaHumanoid(); umaTutorialDNA = new UMADnaTutorial(); umaData.umaRecipe.AddDna(umaDna); umaData.umaRecipe.AddDna(umaTutorialDNA); // Grab a reference to our recipe // var umaRecipe = umaDynamicAvatar.umaData.umaRecipe; //moved to subroutine MakeMale // >>> This is where the fun will happen according to Secret Anorak <<<< CreateFemale(); // dynamic animation controller umaDynamicAvatar.animationController = animController; // Generate Our UMA umaDynamicAvatar.UpdateNewRace(); }
public void GenerateUMA() { if(this.slotLibrary==null) { findUMAStuff(); } GameObject GO = new GameObject("MyUMA"); umaDynamicAvatar = GO.AddComponent<UMADynamicAvatar>(); this.umaDynamicAvatar.Initialize(); umaData = this.umaDynamicAvatar.umaData; umaDynamicAvatar.umaGenerator = generator; umaData.umaGenerator = generator; umaData.umaRecipe.slotDataList = new SlotData[numberOfSlots]; umaDna = new UMADnaHumanoid(); umaData.umaRecipe.AddDna(umaDna); CreateMale(); umaDynamicAvatar.animationController = this.animController; umaDynamicAvatar.UpdateNewRace(); GO.transform.parent = this.gameObject.transform; GO.transform.localPosition = Vector3.zero; GO.transform.localRotation = Quaternion.identity; }
public void Update() { if (umaData == null) { umaData = this.GetComponent<UMADynamicAvatar> ().umaData; umaDNA = umaData.GetDna<UMADnaHumanoid> (); } }
void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if(Input.GetMouseButtonDown(1)){ if (Physics.Raycast(ray, out hit, 100)){ UMAData tempUMA = hit.collider.GetComponent("UMAData") as UMAData; umaDynamicAvatar = tempUMA.gameObject.GetComponent("UMADynamicAvatar") as UMADynamicAvatar; if(tempUMA){ //Clear saved data of old UMA if(umaDynamicAvatar){ umaDynamicAvatar.streamedUMA = null; } umaData = tempUMA; if(cameraTrack){ cameraTrack.target = umaData.transform; } umaDna = umaData.umaRecipe.umaDna[typeof(UMADnaHumanoid)] as UMADnaHumanoid; ReceiveValues(); //Save functionality umaDynamicAvatar.SaveToMemoryStream(); } } } if(umaData){ TransferValues(); for(int i = 0; i < sliderControlList.Length; i++){ if(sliderControlList[i].pressed == true){ UpdateUMAShape(); } } } //Load functionality if( Input.GetKeyDown(KeyCode.Z) ){ if(umaData && umaDynamicAvatar){ //SPOT umaDynamicAvatar.LoadFromMemoryStream(); umaData.isShapeDirty = true; umaData.Dirty(); umaDna = umaData.umaRecipe.umaDna[typeof(UMADnaHumanoid)] as UMADnaHumanoid; ReceiveValues(); //SPOT umaDynamicAvatar.SaveToMemoryStream(); } } }
// Set the camera target and viewport private void SetCamera(bool show) { // Camera cam = cameraTrack.GetComponent<Camera>(); if(show) { Camera.main.rect = ViewPortReduced; DnaPanel.SetActive(true); DnaHide.gameObject.SetActive(true); #if UNITY_5 && !UNITY_5_1 && !UNITY_5_0 // really Unity? Yes we change the value and set it back to trigger a ui recalculation... // because setting the damn game object active doesn't do that! var rt = DnaPanel.GetComponent<RectTransform>(); var pos = rt.offsetMin; rt.offsetMin = new Vector2(pos.x + 1, pos.y); rt.offsetMin = pos; #endif } else { cameraTrack.target = baseTarget; Camera.main.rect = ViewPortFull; DnaPanel.SetActive(false); DnaHide.gameObject.SetActive(false); umaData = null; umaDna = null; umaTutorialDna = null; } }
// An avatar has been selected, setup the camera, sliders, retarget the camera, and adjust the viewport // to account for the DNA slider scroll panel public void AvatarSetup() { umaDynamicAvatar = umaData.gameObject.GetComponent<UMADynamicAvatar>(); if(cameraTrack){ cameraTrack.target = umaData.umaRoot.transform; } umaDna = umaData.GetDna<UMADnaHumanoid>(); umaTutorialDna = umaData.GetDna<UMADnaTutorial>(); SetSliders(); SetCamera(true); }
void GenerateUMA() { //Create a new game object and add UMA components to it GameObject GO = new GameObject ("MyUMA"); umaDynamicAvatar = GO.AddComponent<UMADynamicAvatar>(); //Initialise Avatar and grab a refrence to its data component umaDynamicAvatar.Initialize(); umaData = umaDynamicAvatar.umaData; //Attach our generator umaDynamicAvatar.umaGenerator = generator; umaData.umaGenerator = generator; //Setup slot array umaData.umaRecipe.slotDataList = new SlotData[numberOfSlots]; //Set up our morph refrence umaDNA = new UMADnaHumanoid(); umaTutorialDNA = new UMADnaTutorial(); umaData.umaRecipe.AddDna (umaDNA); umaData.umaRecipe.AddDna (umaTutorialDNA); //----------UMA Generation Section----------------- CreateMale(); umaDynamicAvatar.animationController = animController; //Generate our UMA umaDynamicAvatar.UpdateNewRace(); GO.transform.parent = this.gameObject.transform; GO.transform.localPosition = Vector3.zero; GO.transform.localRotation = Quaternion.identity; }
void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if(Input.GetMouseButtonDown(1)){ if (Physics.Raycast(ray, out hit, 100)){ UMAData tempUMA = hit.collider.transform.parent.parent.GetComponent<UMAData>(); umaDynamicAvatar = tempUMA.gameObject.GetComponent<UMADynamicAvatar>(); if(tempUMA){ umaData = tempUMA; if(cameraTrack){ cameraTrack.target = umaData.umaRoot.transform; } umaDna = umaData.umaRecipe.umaDna[typeof(UMADnaHumanoid)] as UMADnaHumanoid; ReceiveValues(); } } } if(umaData){ TransferValues(); for(int i = 0; i < sliderControlList.Length; i++){ if(sliderControlList[i].pressed == true){ UpdateUMAShape(); } } } }
void GenerateUMA() { //UMA naming // Check a list of UMA objects. int umaCount = GameObject.FindGameObjectsWithTag("UMA").Length; UMAName = "UMA_" + umaCount.ToString(); // Create a new game object and add UMA components to it GameObject GO = new GameObject("myUMA"); GO.tag = "UMA"; umaDynamicAvatar = GO.AddComponent<UMADynamicAvatar>(); // Initialise Avatar and grab a reference to it's data component umaDynamicAvatar.Initialize(); umaData = umaDynamicAvatar.umaData; //practical guide to uma part 15 uma events https://youtu.be/_k-SZRCvgIk?t=8m20s umaData.OnCharacterCreated += CharacterCreatedCallback; // Attach our generator umaDynamicAvatar.umaGenerator = generator; umaData.umaGenerator = generator; // Set up slot Array umaData.umaRecipe.slotDataList = new SlotData[numberOfSlots]; // Set up our Morph reference umaDna = new UMADnaHumanoid(); umaTutorialDNA = new UMADnaTutorial(); umaData.umaRecipe.AddDna(umaDna); umaData.umaRecipe.AddDna(umaTutorialDNA); // Grab a reference to our recipe // var umaRecipe = umaDynamicAvatar.umaData.umaRecipe; //moved to subroutine MakeMale // >>> This is whee the fun will happen according to Secret Anorak <<<< CreateMale(); // dynamic animation controller umaDynamicAvatar.animationController = animController; // Generate Our UMA umaDynamicAvatar.UpdateNewRace(); // parent the new uma into the host game object GO.transform.parent = this.gameObject.transform; GO.transform.localPosition = Vector3.zero; GO.transform.localRotation = Quaternion.identity; }
// Set the camera target and viewport private void SetCamera(bool show) { // Camera cam = cameraTrack.GetComponent<Camera>(); if(show) { Camera.main.rect = ViewPortReduced; DnaPanel.SetActive(true); DnaHide.gameObject.SetActive(true); } else { cameraTrack.target = baseTarget; Camera.main.rect = ViewPortFull; DnaPanel.SetActive(false); DnaHide.gameObject.SetActive(false); umaData = null; umaDna = null; umaTutorialDna = null; } }
private void GetUMAData(GameObject myUma) { UMAData tempUMA = myUma.GetComponent<UMAData>(); if(tempUMA) { umaData = tempUMA; umaDna = umaData.umaRecipe.GetDna<UMADnaHumanoid>(); ReceiveValues(); } }
GameObject GenerateUMA(string name) { // Create a new game object and add UMA components to it GameObject GO = new GameObject(name); GO.transform.position = this.transform.position; //parentAtPosition(GO); umaDynamicAvatar = GO.AddComponent<UMADynamicAvatar>(); umaDynamicAvatar.animationController = animationController; GO.AddComponent<RagdollCreatorTest>(); if (name.Contains ("Zombie")) { ZombieBehavior zbh = GO.AddComponent<ZombieBehavior> (); zbh.speedMultiplier = Random.Range (0.5f, 2.5f); GO.tag = "Zombie"; GameObject[] zombies = GameObject.FindGameObjectsWithTag("Zombie"); GO.name = "Zombie" + zombies.Length; } else { HumanBehavior hb = GO.AddComponent<HumanBehavior> (); hb.zombieAnimationController = secondaryAnimationController; GO.tag = "Human"; // GameObject[] humans = GameObject.FindGameObjectsWithTag("Human"); //GO.name = "Human" + humans.Length; } GO.AddComponent<NavMeshAgent> (); GO.AddComponent<HealthComponent> (); // Initialize Avatar and grab a reference to its data component umaDynamicAvatar.Initialize(); umaData = umaDynamicAvatar.umaData; // Attach our generator umaDynamicAvatar.umaGenerator = generator; umaData.umaGenerator = generator; // Set up slot Array umaData.umaRecipe.slotDataList = new SlotData[numberOfSlots]; // Set up our Morph references umaDna = new UMADnaHumanoid(); umaTutorialDNA = new UMADnaTutorial(); umaData.umaRecipe.AddDna(umaDna); umaData.umaRecipe.AddDna(umaTutorialDNA); if (name.Contains ("Female")) { CreateFemale (); } else { CreateMale (); } // Generate our UMA setupDna (umaDna); umaDynamicAvatar.UpdateNewRace(); if (name.Contains("Human")) { if (name.Contains("Female")) { GO.name = createName("Female"); } else { GO.name = createName("Male"); } } return GO; }
private void Update() { if (!_IsInitialized) { if (!UMACharacterCreator.IsGeneratingCharacter()) { _CharacterDna = UMACharacterCreator.GetCharacterDna(); _SkinToneValue = UMACharacterCreator.GetCharacterSkinTone(); _IsInitialized = true; } } else { if (!_IsValueAssigned && !UMACharacterCreator.IsGeneratingCharacter()) { _CharacterDna = UMACharacterCreator.GetCharacterDna(); _SkinToneValue = UMACharacterCreator.GetCharacterSkinTone(); _IsValueAssigned = true; } } }
// Update is called once per frame private void Update() { if (!_IsInitialized) { if (!UMACharacterCreator.IsGeneratingCharacter()) { _CharacterDna = UMACharacterCreator.GetCharacterDna(); _IsInitialized = true; } } }
private void GenerateUMAShapes() { UMADnaHumanoid umaDna = new UMADnaHumanoid(); _CharacterData.umaRecipe.umaDna.Add(umaDna.GetType(),umaDna); if(_RandomDna) { umaDna.height = Random.Range(0.3f,0.5f); umaDna.headSize = Random.Range(0.485f,0.515f); umaDna.headWidth = Random.Range(0.4f,0.6f); umaDna.neckThickness = Random.Range(0.495f,0.51f); if (_CharacterData.umaRecipe.raceData.raceName == "HumanMale") { umaDna.handsSize = Random.Range(0.485f,0.515f); umaDna.feetSize = Random.Range(0.485f,0.515f); umaDna.legSeparation = Random.Range(0.4f,0.6f); umaDna.waist = 0.5f; } else { umaDna.handsSize = Random.Range(0.485f,0.515f); umaDna.feetSize = Random.Range(0.485f,0.515f); umaDna.legSeparation = Random.Range(0.485f,0.515f); umaDna.waist = Random.Range(0.3f,0.8f); } umaDna.armLength = Random.Range(0.485f,0.515f); umaDna.forearmLength = Random.Range(0.485f,0.515f); umaDna.armWidth = Random.Range(0.3f,0.8f); umaDna.forearmWidth = Random.Range(0.3f,0.8f); umaDna.upperMuscle = Random.Range(0.0f,1.0f); umaDna.upperWeight = Random.Range(-0.2f,0.2f) + umaDna.upperMuscle; if(umaDna.upperWeight > 1.0){ umaDna.upperWeight = 1.0f;} if(umaDna.upperWeight < 0.0){ umaDna.upperWeight = 0.0f;} umaDna.lowerMuscle = Random.Range(-0.2f,0.2f) + umaDna.upperMuscle; if(umaDna.lowerMuscle > 1.0){ umaDna.lowerMuscle = 1.0f;} if(umaDna.lowerMuscle < 0.0){ umaDna.lowerMuscle = 0.0f;} umaDna.lowerWeight = Random.Range(-0.1f,0.1f) + umaDna.upperWeight; if(umaDna.lowerWeight > 1.0){ umaDna.lowerWeight = 1.0f;} if(umaDna.lowerWeight < 0.0){ umaDna.lowerWeight = 0.0f;} umaDna.belly = umaDna.upperWeight; umaDna.legsSize = Random.Range(0.4f,0.6f); umaDna.gluteusSize = Random.Range(0.4f,0.6f); umaDna.earsSize = Random.Range(0.3f,0.8f); umaDna.earsPosition = Random.Range(0.3f,0.8f); umaDna.earsRotation = Random.Range(0.3f,0.8f); umaDna.noseSize = Random.Range(0.3f,0.8f); umaDna.noseCurve = Random.Range(0.3f,0.8f); umaDna.noseWidth = Random.Range(0.3f,0.8f); umaDna.noseInclination = Random.Range(0.3f,0.8f); umaDna.nosePosition = Random.Range(0.3f,0.8f); umaDna.nosePronounced = Random.Range(0.3f,0.8f); umaDna.noseFlatten = Random.Range(0.3f,0.8f); umaDna.chinSize = Random.Range(0.3f,0.8f); umaDna.chinPronounced = Random.Range(0.3f,0.8f); umaDna.chinPosition = Random.Range(0.3f,0.8f); umaDna.mandibleSize = Random.Range(0.45f,0.52f); umaDna.jawsSize = Random.Range(0.3f,0.8f); umaDna.jawsPosition = Random.Range(0.3f,0.8f); umaDna.cheekSize = Random.Range(0.3f,0.8f); umaDna.cheekPosition = Random.Range(0.3f,0.8f); umaDna.lowCheekPronounced = Random.Range(0.3f,0.8f); umaDna.lowCheekPosition = Random.Range(0.3f,0.8f); umaDna.foreheadSize = Random.Range(0.3f,0.8f); umaDna.foreheadPosition = Random.Range(0.15f,0.65f); umaDna.lipsSize = Random.Range(0.3f,0.8f); umaDna.mouthSize = Random.Range(0.3f,0.8f); umaDna.eyeRotation = Random.Range(0.3f,0.8f); umaDna.eyeSize = Random.Range(0.3f,0.8f); umaDna.breastSize = Random.Range(0.3f,0.8f); } }
void GenerateUMA() { // Create a new game object and add UMA components to it GameObject GO = new GameObject("MyUMA"); // parent the new uma into the host game object GO.transform.parent = this.gameObject.transform; GO.transform.localPosition = Vector3.zero; GO.transform.localRotation = Quaternion.identity; GO.AddComponent(typeof(NavMeshAgent)); GO.AddComponent(typeof(CapsuleCollider)); var goCol = GO.GetComponent<CapsuleCollider>(); goCol.center = new Vector3(0f, 0.78f, 0f); goCol.height = 1.7f; goCol.radius = 0.33f; umaDynamicAvatar = GO.AddComponent<UMADynamicAvatar>(); // Initialise Avatar and grab a reference to it's data component umaDynamicAvatar.Initialize(); umaData = umaDynamicAvatar.umaData; //practical guide to uma part 15 uma events https://youtu.be/_k-SZRCvgIk?t=8m20s umaData.OnCharacterCreated += CharacterCreatedCallback; // Attach our generator umaDynamicAvatar.umaGenerator = generator; umaData.umaGenerator = generator; // Set up slot Array umaData.umaRecipe.slotDataList = new SlotData[numberOfSlots]; // Set up our Morph reference umaDna = new UMADnaHumanoid(); umaTutorialDNA = new UMADnaTutorial(); umaData.umaRecipe.AddDna(umaDna); umaData.umaRecipe.AddDna(umaTutorialDNA); // Grab a reference to our recipe // var umaRecipe = umaDynamicAvatar.umaData.umaRecipe; //moved to subroutine MakeMale // >>> This is whee the fun will happen according to Secret Anorak <<<< CreateMale(); // dynamic animation controller umaDynamicAvatar.animationController = animController; // Generate Our UMA umaDynamicAvatar.UpdateNewRace(); }