コード例 #1
0
 public static IEnumerable <ProbabilityGenerationResult> MoveToStartFromLastNote(ProbabilityGenerationContext context)
 {
     if (context.TargetNoteNode == null || context.TargetNoteNode.Next != null)
     {
         yield break;
     }
     yield return(ProbabilityGenerationResult.CreateToStartState(context.RemainingProbability, false));
 }
コード例 #2
0
 /// <summary>
 /// 歌唱をやめてスタートに戻る確率
 /// </summary>
 public static IEnumerable <ProbabilityGenerationResult> StopSinging(ProbabilityGenerationContext context)
 {
     if (context.TargetNoteNode?.Next == null)
     {
         yield break;                                       // 最後のノートからスタートへの移動は後で
     }
     yield return(ProbabilityGenerationResult.CreateToStartState(0.05, false));
 }
コード例 #3
0
 /// <summary>
 /// 自己ループの確率(音程変化の判定が過剰に反応してしまった場合)
 /// </summary>
 public static IEnumerable <ProbabilityGenerationResult> SelfLoop(ProbabilityGenerationContext context)
 {
     if (context.TargetNoteNode == null)
     {
         // スタート状態
         yield return(ProbabilityGenerationResult.CreateToStartState(0.8, false));
     }
     else
     {
         yield return(new ProbabilityGenerationResult(context.TargetNoteNode.Value.Index, 0.33, false));
     }
 }