void GruntSounds() { int rand = Random.Range(0, 5); if (rand == 0) { aS.clip = SoundManager.Instance.GetSound("Grunt1"); } if (rand == 1) { aS.clip = SoundManager.Instance.GetSound("Grunt2"); } if (rand == 2) { aS.clip = SoundManager.Instance.GetSound("Grunt3"); } if (rand == 3) { aS.clip = SoundManager.Instance.GetSound("Rage1"); } if (rand == 4) { aS.clip = SoundManager.Instance.GetSound("Rage2"); } if (rand == 5) { aS.clip = SoundManager.Instance.GetSound("Rage3"); } List <float> generatedNum = FeatureGenerator.GenerateNumbersFromString("asdasda"); aS.pitch = FeatureGenerator.remap(generatedNum[8], 0.0f, 1.0f, 0.2f, 0.9f); aS.volume = 0.9f; aS.Play(); }
void Awake() { //kirzde string aux = PlayerPrefs.GetString("PlayerName"); aux = aux == null || aux.Length < 5 ? getRandomString(6) : aux; generatedNum = FeatureGenerator.GenerateNumbersFromString(aux); probability = (int)FeatureGenerator.remap(generatedNum[9], 0.0f, 1.0f, 0.0f, 100.0f); mutateBody(); mutateWeapons(); }
private void mutateBody() { float thickness = FeatureGenerator.remap(generatedNum[6], 0.0f, 1.0f, -0.1f, 0.7f); float mass = FeatureGenerator.remap(generatedNum[6], 0f, 1f, 0.15f, 0.01f); GetComponent <PlayerController>().delayValues[1] = mass; GetComponent <PlayerController>().delayValues[3] = mass; //ARMS arm1.localScale = new Vector3(arm1.localScale.x + thickness, arm1.localScale.y + FeatureGenerator.remap(generatedNum[5], 0.0f, 1.0f, -0.3f, 0.7f), arm1.localScale.z); arm1.GetComponent <HingeJoint>().anchor = Vector3.up; hand1.localScale = new Vector3(hand1.localScale.x + thickness, hand1.localScale.y, hand1.localScale.z); hand1.GetComponent <HingeJoint>().anchor = Vector3.up; arm2.localScale = new Vector3(arm2.localScale.x + thickness, arm2.localScale.y + FeatureGenerator.remap(generatedNum[4], 0.0f, 1.0f, -0.3f, 0.7f), arm2.localScale.z); arm2.GetComponent <HingeJoint>().anchor = Vector3.up; hand2.localScale = new Vector3(hand2.localScale.x + thickness, hand2.localScale.y, hand2.localScale.z); hand2.GetComponent <HingeJoint>().anchor = Vector3.up; //LEGS leg1.localScale = new Vector3(leg1.localScale.x + thickness, leg1.localScale.y + FeatureGenerator.remap(generatedNum[4], 0.0f, 1.0f, -0.3f, 0.7f), leg1.localScale.z); leg1.GetComponent <HingeJoint>().anchor = Vector3.up; foot1.localScale = new Vector3(foot1.localScale.x + thickness, foot1.localScale.y, foot1.localScale.z); foot1.GetComponent <HingeJoint>().anchor = Vector3.up; leg2.localScale = new Vector3(leg2.localScale.x + thickness, leg2.localScale.y + FeatureGenerator.remap(generatedNum[5], 0.0f, 1.0f, -0.3f, 0.7f), leg2.localScale.z); leg2.GetComponent <HingeJoint>().anchor = Vector3.up; foot2.localScale = new Vector3(foot2.localScale.x + thickness, foot2.localScale.y, foot2.localScale.z); foot2.GetComponent <HingeJoint>().anchor = Vector3.up; //HEADS head1.localScale = Vector3.one * FeatureGenerator.remap(generatedNum[4], 0.0f, 1.0f, 0.7f, 1.5f); head2.localScale = Vector3.one * FeatureGenerator.remap(generatedNum[5], 0.0f, 1.0f, 0.7f, 1.5f); }
public void PrepareGame() { string[] names = FeatureGenerator.MixNames( nameSelectorPlayer1.GetString(), nameSelectorPlayer2.GetString()); PlayerPrefs.SetString("PlayerName", names[0]); PlayerPrefs.SetString("EnemyName", names[1]); string name = names [0].Substring(0, 1).ToUpper() + names [0].Substring(1, names [0].Length - 1).ToLower(); PreName.GetComponent <TextMeshProUGUI> ().text = RandomPrename(); FinalName.GetComponent <TextMeshProUGUI> ().text = name; PostName.GetComponent <TextMeshProUGUI> ().text = RandomPostname(); // Fade Titles PressStart.Fade(1f, 0f, 0f, 1f); Player1Title.Fade(1f, 0f, 0f, 1f); Player2Title.Fade(1f, 0f, 0f, 1f); /*Background1.Fade (1f, 0f, 0f, 1f); * Background2.Fade (1f, 0f, 0f, 1f);*/ // Hide Part of the Names nameSelectorPlayer1.HideSecondHalf(); nameSelectorPlayer2.HideFirstHalf(); // Wait and move to Top Up nameSelectorPlayer1.MoveTo(new Vector2(400, -178), 2f, 2f); nameSelectorPlayer2.MoveTo(new Vector2(-25, 271), 2f, 2f); // Flash (peak a bit before clash) Flash.Flash(4f); StartCoroutine(ActivateWithDelay(Guy, 4f, true)); StartCoroutine(ActivateWithDelay(PreName, 4f, true)); StartCoroutine(ActivateWithDelay(FinalName, 4f, true)); StartCoroutine(ActivateWithDelay(PostName, 4f, true)); StartCoroutine(ActivateWithDelay(StartToContinue, 4f, true)); StartCoroutine(ActivateWithDelay(nameSelectorPlayer1.gameObject, 4f, false)); StartCoroutine(ActivateWithDelay(nameSelectorPlayer2.gameObject, 4f, false)); ChangeState(State.PregameScreenAppeared, 5f); }
/// <summary> /// Each time a player plays, collect the data. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Gm_PlayerPlayed(object sender, GameManager.PlayerPlayedEventArgs e) { GameManager.GameManager gm = (GameManager.GameManager)sender; double[] x = FeatureGenerator.CollectFeatures(e.Tank, gm.map, e.Player.Opponent); double[] y = new double[6]; if (e.PlayerAction.PlayerActionType == PlayerActionType.Attack) { y[0] = 1; } else if (e.PlayerAction.PlayerActionType == PlayerActionType.Forward) { y[1] = 1; } else if (e.PlayerAction.PlayerActionType == PlayerActionType.Turn) { y[2 + (int)e.PlayerAction.Direction] = 1; } MultiClassificatioinSample sample = new MultiClassificatioinSample(x, y); samples.Add(sample); }
private void mutateWeapons() { //TODO based on something create weapon :v //Debug.Log(generatedNum[8] + " " + generatedNum[9]); //PLAYER 1 int probWeapon1 = (int)FeatureGenerator.remap(generatedNum[1], 0.0f, 1.0f, 0.0f, 100f); //probWeapon1 = 80; if (probWeapon1 <= 25) { p1Weapon = CreateWhip((int)FeatureGenerator.remap(generatedNum[9], 0.0f, 1.0f, 4.0f, 10.0f), null, GameObject.Instantiate(whipBase, Vector3.up * 10, Quaternion.identity)); } else if (probWeapon1 <= 50) { p1Weapon = CreateSword(FeatureGenerator.remap(generatedNum[8], 0.0f, 1.0f, 0.5f, 1.5f), FeatureGenerator.remap(generatedNum[9], 0.0f, 1.0f, 15.0f, 50.0f)); } else if (probWeapon1 <= 75) { p1Weapon = CreateHammer(FeatureGenerator.remap(generatedNum[8], 0.0f, 1.0f, 4f, 10f), FeatureGenerator.remap(generatedNum[9], 0.0f, 1.0f, 4f, 15.0f)); } else { p1Weapon = CreateRangedWeapon(FeatureGenerator.remap(generatedNum[8], 0.0f, 1.0f, 0.7f, 2f), FeatureGenerator.remap(generatedNum[9], 0.0f, 1.0f, 0.3f, 1.5f)); int auxBulletProb = (int)FeatureGenerator.remap(generatedNum[7], 0.0f, 1.0f, 0f, 100f); auxBulletProb = auxBulletProb <= 50 ? 0 : 1; myBullet1 = bullets[auxBulletProb]; myRangeW1 = p1Weapon.transform.GetChild(0).gameObject; StartCoroutine(startFire1()); } p1Weapon.transform.SetParent(transform); p1Weapon.transform.position = p1HandHand.transform.position; p1Weapon.transform.localRotation = Quaternion.identity; p1Weapon.transform.GetChild(0).gameObject.AddComponent <CopyTransform>().targetGO = p1HandHand.transform; //PLAYER 2 int probWeapon2 = (int)FeatureGenerator.remap(generatedNum[2], 0.0f, 1.0f, 0.0f, 100f); //probWeapon2 = 80; if (probWeapon2 <= 25) { p2Weapon = CreateWhip((int)FeatureGenerator.remap(generatedNum[9], 0.0f, 1.0f, 4.0f, 10.0f), null, GameObject.Instantiate(whipBase, Vector3.up * 10, Quaternion.identity)); } else if (probWeapon2 <= 50) { p2Weapon = CreateSword(FeatureGenerator.remap(generatedNum[8], 0.0f, 1.0f, 0.5f, 1.5f), FeatureGenerator.remap(generatedNum[9], 0.0f, 1.0f, 15.0f, 50.0f)); } else if (probWeapon2 <= 75) { p2Weapon = CreateHammer(FeatureGenerator.remap(generatedNum[8], 0.0f, 1.0f, 4f, 10f), FeatureGenerator.remap(generatedNum[9], 0.0f, 1.0f, 4f, 15.0f)); } else { p2Weapon = CreateRangedWeapon(FeatureGenerator.remap(generatedNum[7], 0.0f, 1.0f, 0.7f, 2f), FeatureGenerator.remap(generatedNum[9], 0.0f, 1.0f, 0.3f, 1.5f)); int auxBulletProb = (int)FeatureGenerator.remap(generatedNum[8], 0.0f, 1.0f, 0f, 100f); auxBulletProb = auxBulletProb <= 50 ? 0 : 1; myBullet2 = bullets[auxBulletProb]; myRangeW2 = p2Weapon.transform.GetChild(0).gameObject; StartCoroutine(startFire2()); } p2Weapon.transform.SetParent(transform); p2Weapon.transform.position = p2HandHand.transform.position; p2Weapon.transform.localRotation = Quaternion.identity; p2Weapon.transform.GetChild(0).gameObject.AddComponent <CopyTransform>().targetGO = p2HandHand.transform; p2Weapon.transform.GetChild(0).gameObject.GetComponent <CopyTransform>().mirrorY = -1; }
/* メソッド ****************************************************************/ /// <summary> /// コンストラクタ生成時に渡された情報に従って特徴ベクトル生成器を構成します /// </summary> /// <param name="reader">音源ファイルを開いた状態のWaveReaderオブジェクト<para>情報取得に利用します。</para></param> private void SetGenerator(WaveReader reader) { IFeatureGenerator generator = null; var startupDir = System.Windows.Forms.Application.StartupPath; var fname = startupDir + @"\" + "filter.txt"; switch (this.id) { case UnitMember.KMCustomUnit1c1d: MinimumCondition condition1 = new MinimumCondition(50); generator = new FeatureGenerator<KMCustomUnit1c1d>(condition1, reader.SamplingRate, reader.SamplingRate / (double)this.ReadAmount, fname); // 特徴ベクトル生成器のインスタンスを作る break; case UnitMember.KMCustomUnit2c1d: MinimumCondition condition2 = new MinimumCondition(50); generator = new FeatureGenerator<KMCustomUnit2c1d>(condition2, reader.SamplingRate, reader.SamplingRate / (double)this.ReadAmount, fname); // 特徴ベクトル生成器のインスタンスを作る break; case UnitMember.KMCustomUnit2c1dver2: MinimumCondition condition3 = new MinimumCondition(50); generator = new FeatureGenerator<KMCustomUnit2c1dver2>(condition3, reader.SamplingRate, reader.SamplingRate / (double)this.ReadAmount, fname); // 特徴ベクトル生成器のインスタンスを作る break; case UnitMember.KMCustomUnit3c1d: MinimumCondition condition4 = new MinimumCondition(5); generator = new FeatureGenerator<KMCustomUnit3c1d>(condition4, reader.SamplingRate, reader.SamplingRate / (double)this.ReadAmount, fname); // 特徴ベクトル生成器のインスタンスを作る break; } this._generator = generator; return; }