目隠しキューブアート!

本記事はSpeedcubing Advent Calendar 2021 9日目の記事です。8日目の記事はkits_さんの「8つのパーツを持つパズル」でした。10日目の記事は鉄Cuberさんの「OH Rouxを練習してみて」です。

くるくるキャプテンです。アドカレは今年で4回目となります。

2016年 アフリカとキューブ
2017年 NSTの提案
2020年 中年の参入
2021年 目隠しキューブアート!←今年!

今年のアドカレ執筆、二つのモチベーションがあります。一つは「目隠しキューブアート」の紹介、もう一つは英語での発信です。連日のレベルの高いアドカレ、「皆さん凄いなぁ~」と思う一方で、「世界に発信したらもっと良いのに~(日本の限られたコミュニティーの財産ではもったいない!)」という気持ちになります。ということで、以下の英語版はBlindfolded Cube Artに掲載させていただいています。日本のキューバーも世界に飛び出そう! (そういえば2017年のアドカレも英語の対応記事を書いていました。)

キューブアート

世界の各所でパズルアート(パズルアート、モザイクアート、ピクセルアート)が製作されています。私も過去にいくつかのキューブアートを作成してきました(以下、動画へのリンク)。

リモートキューブアートはくるくるオンラインに集まったメンバーみんなで一つのパズルアートを製作するというもので、一体感や連帯感が生まれてとても楽しかったです!これも後日紹介したいと思います。それでは本題の目隠しキューブアートへ!

目隠しキューブアート例

目隠ししてキューブアートをしている、ということは作品を観ても分からないので、動画を見ていただくと幸いです。

  1. BLINDFOLD CUBE ART
  2. QRコード
  3. モナリザ

BLINDFOLD CUBE ARTQRコードは二色キューブアート、モナリザは多色(三色)キューブアートとなります。そもそも「なぜキューブアートを目隠しで実行するか」という根本的な課題については不問としてください(笑)。

デザイン

誤解がないようにお伝えすると、キューブアートのデザインを目隠しをしながら行っているわけではありません。ここでいう「目隠ししてキューブアート」とは事前に開眼でデザインしている下絵データを記憶し、目隠しをした状態でそろえる行為を言っています。

基本的に私は表計算ソフト(エクセル)のセルを塗りつぶして下絵のデータを準備しています。私は知人の誕生日や記念日等にキューブアートを使ってお祝いの意を送っているので、[H][A][P][P][Y][ ][B][I][R][T][H][D][A][Y]等の固定表現のビットデータは既にあり、比較的短時間に下絵のデータを生成することができます。

また画像から下絵のデータを作る場合は輝度(=0.299xR + 0.587xG + 0.114xB)に基づくモノクロ化をした上で閾値処理すると良いかと思います。やってみると分かりますが、自然画を欲張って6段の閾値処理をしてしまうと見苦しい画像になりますので、3~4段(3~4色)の閾値処理が現実的かと思います。この辺については今後検討を深めようと考えています。

二色キューブアート

では早速二色キューブアートから。普通の目隠し競技と同じで記憶段階と実行段階があります。基本的に目隠しキューブアートには競技性がないことから、しっかり時間をかけて記憶するのが良いと思います。

記憶

メモリースポーツでいうバイナリー記憶を使います。縦の一列をまとめて覚えるので、23で8つのパターンがあります。この八つのパターンそれぞれにイメージを作って記憶しても良いのですが、私の場合は新しいコード表を作るのが嫌なのでナンバー記憶のコード表を流用することにしました。2進法と10進法の変換が必要になると思いますが、0~7だけですのですぐに覚えられると思います。

2進法-10進法変換テーブル

上記の変換表を使って以下のパターンを10進法に変換してみる

R2: [000][000][000][300][032][300]
R1: [075][507][170][757][075][500]

あとはこの数列をメモリースポーツのナンバー記憶の手法を使って覚えるだけです。キューブアートは同一色や繰り返しパターンが良く出てくるので、同一色や繰り返しパターンに対して特別なイメージを割り当てることにより記憶量を削減することも可能です。

記憶量は一つのキューブで数字3桁ですので、キューブが30個になっても90桁程度です。メモリースポーツのナンバー記憶は80桁で、トップメモリーアスリートはこれを数十秒で覚えてしまうことを考慮すると、記憶量自体は驚くほど多くないということがわかるかと思います。

実行

各キューブの実行はM列から行い、M列終了後にL列/R列を行います。L列/R列を先にやってしまうとM列が崩れるケースがあるためです。手順は以下のテーブルに示します(U面が描画面、F面が候補色面)。BLD競技をやる人であれば、セットアップ動作と同じですので特に難しさはないと思います。

目隠しBLD手順表(2色)

各キューブの実行はM列から行うことから、この実行順を考慮して記憶順をL列→列M→R列ではなくM列→L列→R列としても良いと思います。

三色キューブアート

記憶

一列づつ覚えるという点では二色アートと同じですが、三色あるので3進法となります。特定の色に数(0, 1, 2)を割り当て、その数列を記憶します。この三進法を数を覚えるにはいくつかのテクニックがあります。

  1. 10進法に変換
  2. アルファベットに変換
  3. 無変換

3進法の数を10進法に変換しても3桁から2桁に一桁しか数が減らないのでお得感はありません。アルファベットを使った記憶を用いている方は27種あるパターンそれぞれにアルファベット(一つ足りませんが)を割り当てることもできるかと思います。3進法表現をそのまま記憶しても良いという人はいると思います。

3進法ー10進法変換テーブル

描画面0をU面(青)、候補色面1をF面(赤)、候補色面2をB面(橙)とし、以下のパターン(モナリザの目の部分)を3進法に変換すると以下のようになります。

R2: [(211)(210)(210)][(221)(222)(221)][(211)(210)(210)][(210)(210)(101)][(111)(001)(000)]
R1:[(122)(122)(122)][(122)(111)(222)][(122)(122)(122)][(122)(122)(122)][(221)(111)(000)]

これを10進法に変換すると以下のようになります。

R2:[(22)(21)(21)][(25)(26)(25)][(22)(21)(21)][(21)(21)(10)][(13)(01)(00)]
R1:[(17)(17)(17)][(17)(26)(13)] [(17)(17)(17)][(17)(17)(17)][(25)(13)(00)]

二色キューブアートの場合は一つのキューブで3桁の数字でしたが、三色キューブアートの場合は一つのキューブで6桁の数となります。この辺は脳内で画像処理を行い、ランレングス圧縮(連長圧縮、RLE)を駆使して、記憶量抑えることは可能だと思います。この辺については後日別記事にて。

実行

さて次は実行です。

二色キューブアートと同じくM列から揃えます。基本的にBLDのセットアップ動作と同じです。一列に三色ある場合(012や120)、センターをまずそろえてからエッジ(UF/UB)をそろえるといったイメージです。

3色キューブアートM列の手順

次にL列/R列です。

3色キューブアートL/R列の手順(エッジ)

まずエッジ(URやUL)をそろえます。基本的にUパーム(z’yやz’y’でセットアップが必要)を使います。以下の表中の「*」はワイルドカードであり、実行前後で色は変わらないはずです。

ただしL列/R列のエッジが互いに干渉しあわない場合、すなわち

  • L列とR列において、実行順が後の場合
  • L列とR列において、実行順が先ではあるが、後の列のエッジは動かさない場合

においては、簡易的な操作でも構いません(上記の表における(easy)手順になります)。

次にL列/R列のコーナーです。

3色キューブアートL/R列の手順コーナー)

表中の「1*2」はRパーム、「2*1」はOLL45ですが、ご自身の好きな手順で回されるのが良いかと思います。

以上が三色キューブアートの実行手順となります。

三色キューブアートの理論さえ理解できれば、以下に示す4色~6色キューブアートも実行が可能なはずです。まずは三色キューブアートをマスターしちゃいましょう!

4色キューブアート

4色キューブアートは3色キューブアート(F面、U面、B面)に加えてD面を利用します。

記憶時にD面の色が入っているのであれば、脳内で:

  1. L2, M2, R2の動作を行う
  2. D面の色をU面の色とみなす
  3. F面とB面の色を入れ替える
  4. 記憶する

ということを行います。10進法で覚えるのであれば、記憶テーブルは以下のような感じになるかと思います。実行は3色キューブアートと同様ですので割愛させていただきます。

3進法ー10進法変換テーブル (4色キューブアート)

5色、6色キューブアート

3色・4色キューブアートの理論さえ分かっていれば、5色・6色キューブアートへの拡張は容易かと思います。L面やR面の色をU面に動かしたい場合はyやy’を使って持ち替えてください。その際の基本は実行順「センター→M列エッジ→L/R列エッジ→L/R列コーナー」です。これさえ間違わなければ特殊なケースを除いて再現できるかと思います(残念ながらいくつかのパターンは個別に対応するしかありません。今回は割愛させていただきます)

また6色となると桁数を削減のための変換は特に必要ないと思います。その代わり、色と数字の対応関係をどうするか、というところが問題になってくるかと思います。学生時代にエンジニアリングをかじった自分としては、抵抗器のカラーコーディングが良いのではないかと考えております。

さいごに

以上が目隠しキューブアートの手順となります。以下目隠しキューブアートに関して徒然に。

  • 「目隠しキューブアート」は、略式表記すると「BLDART」かな
  • あくまでも「アート」なので少々の記憶ミスや実行ミスは「アート」の許容範囲。同じモナリザのデザインに対していろいろな人が目隠しキューブでトライしてそのバリエーション(違い)を楽しむのも面白い。
  • メモリースポーツの一つの難点は、競技の進行状況が分かりづらいこと。その一つの解決手段として、目隠しキューブアートを競技にしてしまうということもアリかと。例えば、QRコード早覚え/早そろえといったものであれば一般受けは良いと思う(認識アルゴリズムの誤り訂正強度別の大会を開催するとか)
  • 自宅に56ミリのキューブが300個以上、30ミリのミニキューブが1000個あるので、時間ができたら巨大キューブアートを目隠しで実行したい、、、

以上となります!

2021年も終わりですね、、、先日、久しぶりに東京くるくる会(SCJ大会含む)を開催することができました。とーーーーっても楽しかったです。状況を見ながら次回の開催も計画しています。引き続きくるくる会をよろしくお願いいたします(オンラインイベントも多数開催していますので、そちらも是非ご参加ください!)

キューバーの皆さん、良いお年を!

コメント

タイトルとURLをコピーしました