flowに関する考察
(author:thzz)前書きmodやmapping論において飽きるほど聞かされている、flow(流れ)についての考察です
いかに基礎的にまとめられるかに重点を置いています。
目次・
Introduction・
Two objects 1:circle + circle
2:slider + circle
3:circle + slider
4:slider + slider
・
Multiple objectsIntroduction念のため解説
流れ(flow)とは、譜面をプレイするにあたって要求されるカーソルの動線のことです。
これが体感的に心地よい(comfortableとか言います)であるほど良いとされますが、まあその議題はこの論の範疇ではないので置いておきましょう。
流れ(flow)を理解するにあたって、最も重要なことは、プレイ時の感覚です……が、あまりに抽象的すぎます。
論理的に考えるのであれば、以下のことに着目しましょう。
・流れの反射性
・流れの吸収性
・オブジェクトの指向性
Two objects<1:circle + circle>最も基礎となる部分を、2つのcircleを用いて解説していきましょう。
まずはこちらの画像。
この画像を見て、あなたは2つ目のcircleをクリックした後、右と左、どちらにカーソルを動かしますか?

左と答える方が大多数だと思われます。右と答えたあなた、そのアイディアを大事にしてください。
(縦とか斜めとか答えたそこの天邪鬼さんはもう少し我慢してくださいね)
さて、次はこちらの画像。

これはいかがでしょう、右?左?
先ほどより迷うことでしょう
そう、オブジェクトの距離によって、流れの
反射性が弱くなります。
強く壁に当たったボールは強く跳ね返ります。同じように、速く動いた流れは、反発しがちです。
弱く壁に当たったボールは弱く跳ね返ります。同じように、遅く動いた流れは、あまり反発しません。


再びボールに例えると、跳ね返ったボールは、初動より弱い力で反発します。摩擦のせいで。
同様に、流れも弱い力で反射します。
この流れの勢いの減少を、
吸収性と呼ぶことにしましょう。
続いて、オブジェクトの指向性について考えます。
ここで言う
指向性とは、どの角度に流れが向かっているか、というものです。
こちらの画像をご覧ください。

先ほどと同じような画像です。ですが、今度は上下斜めにも動かしてみましょう。

さあ、あなたはどれを選びますか?
私は、このように色をつけます。

鋭い角度であるほど激しく(赤色)
緩い角度であるほど穏やかに(青色)
曲調やアクセントを踏まえて考えてあげましょう。
以上、反射性・吸収性・指向性、の3つ。
ポイントとして頭の片隅に置いておいてください。
<2:slider + circle>sliderには(ほぼ)必ず指向性が発生します。
例えばこのslider。

sliderの次に置くのはどのcircleがいいでしょう?
これ実は、どこでも構いません。しかし、それぞれの役割をしっかり把握しておくのが大事です。
①のcircle。
まず、このsliderは右上に対する指向性を持ち合わせています。
その流れに合わせて置いた①のcircleは、反発の無い最も自然な配置となります。

Easy/NormalまたはHardを作る段階において、この流れを損なわない配置は大変重要です。
②のcircle。
右上の指向性があるsliderに対し、左上へのアプローチ。これは右向きへの反発を作ったことになります。
即ち、②のcircleをクリックしたとき、右向きに力が働きます。

低難易度の場合、これは”ビックリ配置”となります。慎重に使いましょう。
③のcircle。
右上の指向性があるsliderに対し、右下へのアプローチ。これは下向きへの反発を作ったことになります。
即ち、③のcircleをクリックしたとき、上向きに力が働きます。

ですが問題はsliderからcircleへの鈍角のアプローチと、反発が同時に発生していること。
不自然な流れと捉えられやすいので要注意。
④のcircle
右上の指向性があるsliderに対し、左下へのアプローチ。これは最大限の反発です。
ここまできたらその次は好きな方向に反発しましょう。ただしあくまで”反発”です。
左下に向けば向くほど滑らかになり、それは不自然な流れとなります。

まあ、このあたりでしょうか? お好きにどうぞ。
<3:circle + slider>sliderには、flowを吸収する役割もあります。
今、画面左側にcircleがあります。

さて、どこに、どのような形のsliderを作ってあげましょうか?
考えなければならないのは以下の3点です。
- 距離(distance)
circle + circleのときに述べたように、距離が遠ければ遠いほど反発力が強くなります。
逆に近ければ近いほど反発力が弱いです。 - 角度(angle)
circleからの指向性に影響します。鈍角は吸収力が強く、鋭角は反射力が強くなります。 - 形(shape)
……お好きなように。
流れは”吸収”または”反射”される必要があります。
何故? 答えは簡単、流れのままにオブジェクトを配置するとこうなるからです。

では、実践。
距離が遠ければ遠いほど、反発力が強くなります。よってそれは”吸収”または”反射”をしましょう。
反射するにあたって、角度は鋭角にしてあげましょう。

これでは味気ないので、曲線にしてみましょう。折角なので反発力を上げます。

吸収するためには、その流れの受け皿となるような角度にしてあげる必要があります。

これでは味気ないので、曲線にしてみましょう。

もっと複雑なsliderにしても構いません、大事なのは指向性です。

今度は距離が近いパターンで考えてみましょう。
距離が近いとはいえ、流れは存在します。吸収してあげるのが自然な形でしょう。

反射させようと思うとこのようになりますが……はてさて、あなたはどう思いますか?
<4:slider + slider>遠い距離において、前者の指向性を後者が反射

遠い距離において、前者の指向性を後者が吸収

近い距離において、前者の指向性を後者が反射

近い距離において、前者の指向性を後者が吸収

あとは好きなように
装飾しましょう。
multiple objects3つ以上のobjectに関して説明するのは正直やりたくないのですが、軽くやっておきましょう。
このリズムでの配置を考えます。

私はこうなりました

まず始めのcircle(1)とslider(2)で吸収により穏やかな流れを作っています。
その滑らかさに若干乗りながらも、遠い距離にcircle(3)を配置。流れの変更と遠い距離により、次は反射か吸収を行わなければなりません。
今回は反射を行い、circle(4)を配置しました(ついでにblancket)
(3)(4)の反射の角度を踏まえslider(5)を配置。距離が遠いので、今回は反射。ですが比較的内側の角度にsliderを形成します。
この後は恐らく、その理想的な角度に合わせて次のオブジェクトが続くことでしょう。

実際は、プレイしたときの感覚や、曲調・曲のアクセントを頼りに、様々なパターンの中から自分の納得いくものを探します。
反射性・吸収性・指向性によって、譜面の安定性を維持し、ときには強調が行えます。それを理解しながらmappingしてみましょう。何か違うものが見えてきませんか?
あとがき以上は私のstyleにおける簡単なロジックであり、完全なものではありません。
事実、曖昧な書き方をしているところは非常に多いです。
よって、このロジックに囚われてmappingしてはいけません。
あくまで”参考”にして、自分なりのstyleを磨いていってください。
誰かの助けになることを祈りつつ。