3色30枚組の話

ずいぶん前のコンベンションで宮島さんに聞かれてた問題。実は少し後に答え自体は出ていたのだけれど、放っておいて今に至る。

http://origamigasakebuyoru.seesaa.net/article/388906614.html

パターンの分析

正20面体の辺の色分けと考えるのが、個人的にはやりやすいと思う。

まず思いついたのが、それぞれの色各10枚の位置関係は対称にはならない事。正多面体の対称性を考えると、いくつかの種類に別れるはず。10の対称”面”ならあるけれど、今回はあまり使えなさそう。

次に色分け図を見て気がついたのが、5本の辺がそれぞれ繋がっている事と、それが6本絡み合っている事。これはよく考えると当たり前の話で、各頂点には5本の辺が集まっているので、3色での色分けでは必ず1:2:2となる。この1が6本の色線の端になる。で、頂点は12なので色線は6本となる。

整理されてきた。 まず、6本3色であれば対称性が分かりやすい。正四面体の各辺だ。 さらに色分け図を詳しく見ると、5本の辺はS字に曲がっている事に気がつく。たしかにこれ以外では無理っぽい。正20面体=変形正四面体であると考えれば、納得の対称性と位置関係。という事で、構造的には右巻きと左巻きの2種類がある。

※印の辺が5本繋がっている中心の辺

 

具体的な組み方

1. まず20面体の頂点5枚を組む。色はa(青)×1:b(赤)×2:c(緑)×2になる。

2. その周りを組んで三角形の面5つをつくる。これは自動的に決まる。使うのはa(青)×3:b(赤)×1:c(緑)×1。

 

3. 手順1でa(青)を使っている頂点(白印)に注目、a(青)ともう1つ(b(赤)またはc(緑))を合わせて頂点をつくる。

印の頂点を手前にする。

a(青)ともう1つ(図ではc(緑))で頂点をつくる。

4. 3つ組み合わせて三角形の面3つをつくる。

5. 2カ所あるユニットが4つ集まっている頂点のうち、片方は両側の色が違うため確定している。3つ組み合わせて面を2つつくる。

4つのユニットが集まっている印の頂点を手前に。

色はc(緑)に確定している。両側も組み合わせる。

6. あとは確定している頂点・面を順番に埋めていけば完成。

印の頂点はつなぐパーツの色が確定済。それぞれ組んで進めていけば全体が組み上がる。

 

ポイントとなるのは3の手順で、ここで正しい色のパーツを組む事で巻き方向を確定、残りの色も全て決まります。逆にここで間違えて緑と赤を組んでしまうと、少し先で行き詰まります。線対称になっているので、2つ先くらいの手順で同じ色が隣り合うはず。

これはダメなパターン。青のパーツが赤と緑で取り囲まれている。


1/3の折り出し、成功と失敗について

三等分の方法と、三等分にならない方法を同時に見つけた話。

まずは以下の図をご覧下さい。1/3の折り出し方です。

ここで問題:どこが3等分になっているのでしょうか?

 

 

まずは正解から。斜めの方の点が正解で、図のように3等分しています。なお、実用性はあまり無いです。使い易くはないし、この方法を使わなければいけない必然性も思いつかない。当然、これが実際に使われている図などを私は知りません。

で、こっちはハズレ。折ってみた時はもしかしたらと思ったけれど、確認したら違った。ただ、これが妙に惜しくてちょっと面白い。

長さはピタゴラスの定理で簡単に確認できます。紙の1辺を12とすると、幅は9、高さは7.93725…..となります。15cmの紙の場合、1/3とは1mm程度の誤差です。

ちなみに、正確に3等分できる場合の三角形の面積は幅9×9+高さ8×8=145。このケースの面積は斜辺12×12=144なので、残念ながら1ずれています。

以上、多分実用性はないけれど、方法を見つけた本人が面白かっただけの話です。


「架空の折り紙作品」

 

折紙探偵団マガジン152号に掲載されたヒツジの創作記事について、実はスペースの都合で削った項目があります。記事の内容は、先に完成の形を決めて、それを目指して創作する方法というようなものなのですが、最後に以下のような内容を用意していました。

 


気がついた方もいるかもしれませんが、この創作手順は「架空の作品をにらみ折りする」と言い換える事が出来ます。さらに考えてみると、架空の作品の形を考える作業とそれを実際に折る作業は、実は同じ人間が行う必然性はありません。理屈の上では分業体制での創作もできそうです。実際に、折り紙をモチーフとしたロゴや、漫画などに登場する架空の作品を、にらみ折りして再現したというケースもあります。創作体制として分業や、「架空の折り紙作品」は作品として認められるのかなど、いろいろ考えてみると面白いかもしれません。


 

まあ実際にどういった形になるかはいろいろな可能性がありますが、例えば人間が形を決めて、それをプログラムで再現するというのは不可能ではなさそうです。これも一種の分業ではあります。折り紙の創作は「形」と「構造」、そして「手順」が不可分なのか、それとも完全に切り分けることが可能なのか。誰か試してみませんか?

※画像は折紙探偵団マガジン152号より。試作の際の脳内完成イメージ。これは構造まで考えて描いたものなので再現性は異常に高い。



線を短くするスクリプト

選択されたポイントがパスの起点か終点の場合のみ、2pt分短くするスクリプト。紙のフチから折り筋線を少し離す時に使えます。こういう作業を一括処理できるのが、スクリプトの良いところ。

以下仕様と注意点など。

  • 処理としては、オブジェクトの起点と終点のポイントを選択されているか判定して、それぞれ2番目のポイントの方向へ移動させています。
  • 最初は選択されたポイントを判定していけば出来るのでは?と考えたのだけれど、判定方法に悩んだ結果、結局上記の順番になっています。
  • 実際のコードについては、素人目で見てもかなり酷い。とりあえずポイント移動の座標計算で起点・終点で同じ事をしているので、切り離して関数化した方がよさそう。
  • ベジェ曲線には未対応。ハンドルが消えるので注意。
  • 短すぎる際の処理についても未対応なので、多分反対側に飛び出す。

cutline.zip


inkscapeでの変換しやすいデータの作り方、もしくは折り図を投稿する際のガイドライン。

という事で、変換の際にエラーの少ない/変換しやすい折り図の書き方tips集。

折り図集などに投稿するための折り図を用意する際や、AIを買ったあとinkscapeで描いた折り図を変換したい場合などに便利かと思います。

  • マスクではなく切り抜きを使おう
  • 切り抜きはグループ化をしてから
  • 半透明グラデは避ける
  • やり取りは結局PDFがベター。PDFと相性の良いデータを目指そう

とりあえず思いついた、上記の項目について書きます。本文中の略称はAI=Adobe Illustrator、FH=FreeHandです。

・切り抜き奨励、マスクは非奨励。

拡大図などで、枠内のみを表示させるような時に使われます。この二つの機能、画面上の結果はあまり変わらないのですが、書き出しや変換の際に大きな差が出ます。

切り抜きの場合:内部のデータが枠の形に「切り抜き」されます。データの状態として、FH的には枠の中に貼付けるような形になります。PDFでもAIの切り抜き状態で書き出されるようです。

マスクの場合:枠外を見えない(マスク)状態にします。イメージとしては、枠外を覆い隠しているような形です。で、これがPDFに書き出した際にどうなるかというと、マスクごとに画面全体を覆うようなオブジェクトが作成され、そこに空いている穴の部分のみがレンダリングされているというようなデータになります。さらに言えば、このマスク用のオブジェクトはラスターデータです。画面全体を覆っているため何より編集しづらい。

という事で結論。マスクである必然性がなければ、切り抜きを使おう。

※マスクの必然性。当然ラスタ画像データや、半透グラデでマスクしたい場合とかはマスクでなければいけないはず。

・切り抜きはグループ化した後に。

切り抜きをする場合は、まとめてグループ化してから切り抜きを行いましょう。

inkscapeの仕様だと思うのですが、まとめてグループ化をしておかないと「オブジェクトごと」に切り抜きされます。グループ化されていないたくさんのオブジェクトにまとめて切り抜きを行った場合、オブジェクトの数だけ切り抜き枠が作成され、そのまま何十もの切り抜きが重なった状態になります。レンダリングが無駄に重くなり、データとしても修正や編集もしづらいので、メリットは全くありません。本当に百害あって一利無し。

※この仕様の有効な使い方……各図をそれぞれグループ化、同じ位置に重ねて、一気に切り抜き処理ができる。その後動かしてレイアウトしていく。あ、これは便利かもしれない。試してないけど。

・半透明グラデーションは非奨励。

これは単純に、書き出しなどの際の互換性が低いのです。グラデーション以外でも、半透明オブジェクトのコンバートは、上手くいかないケースが多いので、可能であれば使わない方が無難です。

とりあえず半透明グラデに関しては、PDF書き出しの段階でグラデ属性が消える、またそのPDFをそのまま読み込むとオブジェクトが消えてしまう事を確認しています。

PDFへの書き出しと互換性が原因なので、バージョンアップで解決される可能性は十分ありますが、現段階ではなるべく使わない方がよさそうです。

・SVGはPDF書き出しして読み込む。

AIを導入し、これまでinkscapeで描いたデータを読み込んでみたら酷い状態だったという経験はないでしょうか?

これはAI側の問題かもしれませんが、矢印が消えたり、線の太さが酷い状態になります。後者はおそらくはtransform属性が上手く読み込めていないのではないかと思いますが。(ちなみに手持ちの環境のAI-CS5でそのまま読み込んだ場合です。)

回避方法としては、inkscapeからまずはPDF形式で書き出し、それをAIで読み込むのが比較的安全です。データの作り方次第ですが、inkscapeのバージョンアップに伴って読み込んだデータも使いやすくなっているようです。

グループ化などは死にますが、必要経費と思って諦めましょう。

※ちなみに、読み込めないPDFについては、「MacOSのプレビューで開きPDFで保存し直す→AIで開く」でどうにかなる場合もあります。ただしデータは酷い状態になりますが……


つなぎ鶴星人

People Crane from outer space」

原作・笹出晋司さん。つなぎ案・神谷。

小さいツル星人は、頭の向きを合わせて2重に重ねて折る。

実際に試していないけれど多分いけると思う。普通の鶴でも多分出来る。誰か折って。


アルドゥインの構造と領域の追加

アルドゥインは、「 シンプルな形を折り出し、複雑な仕上げを行う」という方針で創られています。これは外見だけではなく、構造でも同様の方針を取っています。創作手順を簡単に追って見ていきます。

とりあえず頭部は正方形のカドから折り出すことにします。また、ツノや顎などはカドの外側にスペースを追加して折り出す方法がよさそうです。簡単な構造で必要なカドを揃える事が出来ました。

頭部とその周りの全体の構造については、頭部と翼に同じ大きさのカドを割り当てられそうです。つまり鶴の基本形でOK。中心のカドも、胴のトゲ等に利用できそうです。

全体の構造はいくつか候補が考えられますが、とりあえず最もシンプルなものを採用します。

……あまりにも普通の構造で、これでいいのかと思うかもしれませんが、カドの出る位置は悪くないし、わざわざ必要以上に複雑にする意味はありません。昔『をる』誌上で前川さんも言っていましたが、構造がシンプルなのは歓迎すべき事で、わざわざ複雑にしなければいけないのではと気にするのはおかしい。

※領域の追加を前提とした場合、基礎の構造を選ぶ時には、カドの大きさより出ている位置を優先します。カドの大きさは領域の追加でいくらでも調整可能です。

これを基礎として、必要に応じて領域を追加していきます。ここはいろいろな要素が絡むので結果から。

一気に説明します。基礎構造(白)に、まずは頭部の折り出し用の領域を追加(赤)。 足の指と尾の装飾用に反対側にも追加(黄)。そして翼が少し小さいので、中心をぶった切ってさらに領域を追加します(青)。なおこの部分は、脚の装飾や翼の爪の折り出しにも利用しています。

※気がついた方もいるかもしれませんが、この3回の領域の追加は、すべて同じ幅になっています。このおかげて翼の爪部分をきれいに折り出す事が出来ます。また、比率も分かりやすくなります。

これで十分なカドは出そろいました。あとは仕上げればできあがりです。

 

 


数字を加算するスクリプト

選択されたテキストを数値として取得し、1を加算・減算して返すだけのスクリプト。

要するに図番号用で、図が一つ増えたり減ったりした時、その後の数字をずらすのに使えます。

例によってエラー処理などなにもしていません。parseIntのみで強引に整数化しているので、例えば「15a」の「a」は消えてしまいます。また、数値以外で始まるテキストが含まれていると、NaNを返します。

ORZnumber


第2回菊池寛実賞 工芸の現在

折り紙とはあまり関係ない話。

うちの妹、神谷麻穂は陶芸作家をしていまして、丁度この週末より、菊池寛実記念智美術館にて展示が行われています。折り紙とはあまり関係はありませんが、興味のある方は、是非ご覧ください。

第2回菊池寛実賞 工芸の現在

12月17日(土)~ 2017年3月20日(月・祝)
菊池寛実記念 智美術館

http://www.musee-tomo.or.jp/exhibition.html

※余談ですが、昨年、北陸先端科学技術大学院大学で行われたイベントが北陸中日新聞popressで紹介された際に、偶然にも妹の作品が表紙になっていました。お持ちの方は見直して見て下さいね。