ポリゴンスタジオの式

概要

ポリゴンスタジオの式

まず結果だけ書きますと、

[ポリゴン数]=2×[頂点数]-4×[モデル数]+4×[トンネル数]-4×[接着数]

ちょっと書き直すと、

[ポリゴン数]=2×[頂点数]-4×{[モデル数]+[接着数]}+4×[トンネル数]

どんな式?

変数の意味を一つずつ説明。

[ポリゴン数]

説明書でいう『ポリゴン数』。モデラー制作画面で表示されるポリゴン数。3角形の板、1枚を「1」と数える。

[頂点数]

モデラー制作画面でいう『点』。モデラー基本画面で『VERTEX』と表示される数。

[モデル数]

説明書でいう『モデル数』とはちょっと違う。でもモデラー制作画面で表示されるモデル数には変わりない。ポリゴンの集団1つが1モデル。

[トンネル数]

トンネルで開けた穴の数。穴1つを「1」と数える。

[接着数]

『モデル接着』で、モデルどうしを接着した回数。わかりにくいので図示。

接着されたモデル

例えば3つの立方体で1モデルの場合。3つのモデルを接着するには接着行為が2回必要です。ですから接着数は2。簡単に言えば、1つの接着モデルの中にある、ポリゴンの塊の数より1だけ小さい数です。

具体例

例えば立方体。[ポリゴン数]が12、[モデル数]は1、[頂点数]は8、[トンネル数]が4、[接着数]は0です。式は以下のとおり。

立方体:12=(2×8)-(4×1)+(4×0)-(4×0)

この式はあくまで、これら変数の関係性のみを示しています。ポリゴンの形がどうなのかは関係ありません。ですから例えば直方体は、

直方体:12=(2×8)-(4×1)+(4×0)-(4×0)

立方体と全く同じ式です。

もう一つ「サンプル3D作品データ」から。『じてんしゃ』はこうなります。

じてんしゃ:634=(2×357)-(4×13)+(4×2)-(4×9)

ポリゴンスタジオの3D作品は、殆どがこの式に従います。ちょっと特殊な3D作品でも大抵は。

ポリゴンスタジオの式(バグを考慮しない式)

どうやって作ったか

ポリゴンスタジオの式をどうやって作ったか、の説明。単なる経緯の説明で、数学的な証明は全くありません。まぁ今まで矛盾したことが無いから多分大丈夫だろう、と(いいのか?)。

ポリスタでは、[ポリゴン数][モデル数][頂点数]が表示されています。これらはどのような関係にあるのか。一つずつ調べて、等式を作ってみます。

まず頂点数とポリゴン数の関係。

加工前 加工後
画像 加工前 加工後
ポリゴン数 12 10
頂点数 8 7
モデル数 1 1

モデル数を変化させずに頂点数のみ変えてみます。これは単なる立方体。この頂点を1個【消す】。するとポリゴン数が2減りました。

加工前 加工後
画像 加工前 加工後
ポリゴン数 12 16
頂点数 8 10
モデル数 1 1

次に頂点を【角をおとす】。頂点が2個増加し、ポリゴン数は4増加。

加工前 加工後
画像 加工前 加工後
ポリゴン数 12 14
頂点数 8 9
モデル数 1 1

もう一つ、今度は面を【尖らせて引き出す】。頂点数+1、ポリゴン数+2。

これらから、頂点が1個増えると、ポリゴンは2枚増えるのではないか? と考えられます。もう少し一般的に考えると…。

加工前 加工後
画像 加工前 加工後
ポリゴン数 1 3
頂点数 3 4

この3角形が1枚のポリゴンです。頂点を1個増やすと、1枚のポリゴンが3枚に分割すると考えられます。(これは概念図であり、ポリゴンスタジオにこういったモデルは通常存在しません。頂点数3の場合はポリゴン数2になります。)

次にモデル数。頂点数を変えずにモデル数だけ変えてみます。

加工前 加工後
画像 加工前 加工後
ポリゴン数 16 20
頂点数 12 12
モデル数 2 1

2本の3角柱を【つなげる】で、1本の棒にする操作を考えます。紫色の面同士を繋げるのですから、まずこの面が消えます。よって-2ポリゴン。さらに3角面どうしをつなげるには、6ポリゴン必要です。計+4ポリゴン。

加工前 加工後
画像 加工前 加工後
ポリゴン数 24 28
頂点数 16 16
モデル数 2 1

同様に4角柱の場合。紫色の面は消えて-4ポリゴン。4角面を繋げるのに必要なポリゴンは8。計+4ポリゴンです。

ちょっと一般化して、n角面同士を【つなげる】操作を考えます。

n角面のポリゴン数は、

(n-2)

これが2つありますから、【つなげる】で消えるポリゴンは、

(n-2)×2

例えば3角面なら(3-2)×2=2。4角面なら(4-2)×2=4。

次にn角面どうしを繋げるのに必要なポリゴンは、

(n×2)

n角形の辺1つにつき、ポリゴンが2枚必要だからです。3角面なら(3×2)=6。4角面なら(4×2)=8。

これらをまとめると、ポリゴンの増減数は、

(n×2)-(n-2)×2
=2n-2n+4
=4

この式から、【つなげる】でモデルを繋げた場合、面の形に関係なく、ポリゴン数は+4される、と言えるかと。

ともかく、なんでこうなるかイマイチよくわかりませんが、とりあえずモデル数が1増えると、ポリゴン数は4減るとします(論理が飛躍している)。

これらから等式を作ると、

[ポリゴン数]=2×[頂点数]-4×[モデル数]

となります。本当かどうか知りませんが。

この式は、トンネルの無い、通常のポリゴンモデルは問題なく説明できます。例えば立方体を加工して作ったポリゴンモデルとか。

ポリスタの要注意操作 トンネル

トンネルの話。トンネルとは、簡単に言えばモデルに開いた穴のことです。まず頂点数とモデル数を変化させずに、トンネルを作ってみます。

加工前 加工後
画像 トンネル作成前 トンネル作成後
ポリゴン数 20 24
頂点数 12 12
モデル数 1 1
トンネル数 0 1

トンネルを1個作ると、モデル数と頂点数は変わらないのに、ポリゴン数は4増えました。試しにもう一例。

加工前 加工後
画像 トンネル作成前 トンネル作成後
ポリゴン数 28 32
頂点数 16 16
モデル数 1 1
トンネル数 0 1

今度も同じく4ポリゴン増加。これから、まずポリゴンスタジオの式を拡張せねばならないことがわかります。現在のポリゴンスタジオの式は、

[ポリゴン数]=2×[頂点数]-4×[モデル数]

トンネルがある場合に等式が成立しないからです。

新しく導入する変数は「トンネル数」としました。これは私の提案です。説明書に書かれていませんし、ポリスタでは表示されません。このサイトでしか通用しませんのでご注意を。

さて上記2例から、トンネル1個あたり4ポリゴンではないか、と推測できます。これをもうちょっと一般的に考えます。

トンネルは、同じ辺数の面どうしでないと作れません。しかし一度トンネルができてしまえば、頂点を作ったり消したりして、トンネルの形は自由に変えられます。この頂点数の増減の操作は、今までの頂点数の増減と何ら変わりません。ですからどんなトンネルでも頂点を消去してゆけば、

トンネルの基本形

このような板状になります。板の部分は4ポリゴンですから、トンネル1個あたりポリゴンは4と言えるかと。

別の方法で説明。ポリスタではありえませんが、トンネルを異なる辺数の面どうしで作れると仮定します。(トンネルを作った後で頂点を増減すれば同じこと。)

n1角面と、n2角面にトンネルで穴を開ける操作を考えます。

それぞれの面のポリゴン数は、

n1角面のポリゴン数:n1-2
n2角面のポリゴン数:n2-2

トンネルを作ると、まずこれらのポリゴンが消えます。次にトンネルの内側を作るポリゴンは、

n1+n2

最終的なポリゴンの増減数は、

(n1+n2)-{(n1-2)+(n2-2)}
=(n1+n2)-(n1+n2)+2+2
=(+4)

この式からも、どんな形の面でも、トンネルで繋げば4ポリゴン増えるとわかります。

トンネル数を導入したポリゴンスタジオの式は、

[ポリゴン数]=2×[頂点数]-4×[モデル数]+4×[トンネル数]

この式は、殆どの3D作品にあてはまります。例えば立方体を変形して作った作品は、特別な場合を除いて全て説明できるはずです。

複雑なのは嫌だ

新しく[トンネル数]なるものを導入したわけですが、本来は望ましくない。こんなもの無しに、今までの式で説明できないかと考えるのが人情です。

加工前 加工後?
トンネルの基本形 トンネルが消えた?

先程のこのトンネル。一見、トンネルを塞ぐことができるようにも見えます。赤色の線(モデル上下)を消去すれば、うまくいけば右のようになるはず。しかし現実に穴は塞がりません。もしトンネルの穴が塞がると、頂点を2個消去しただけでポリゴンが8枚減ってしまいます。

このことから、トンネルは頂点数やモデル数とは別物だと考えられます。ポリスタの内部で実際に[トンネル数]なんてものがあるのかは私にはわかりません。しかし表面上は、[トンネル数]で上手く説明できます。

ポリゴンスタジオの式(バグを考慮した式)

バグを考慮しない式の限界

前回つくったポリスタの式は、

[ポリゴン数]=2×[頂点数]-4×[モデル数]+4×[トンネル数]

コレは殆どの3D作品を説明できる、って話でした。じゃあその「殆ど」って具体的にどんなのか。

画像 立方体
ポリゴン数 12
頂点数 8
モデル数 1

まず立方体。これはポリスタの式で説明できます。式は以下。

12=2×8-4×1-4×0

次にこの立方体を変形してゆきます。ポリスタの3D作品の変形・加工操作は、例えば…

もしこれらの操作全てがポリスタの式で説明できるのならば、立方体を変形・加工して作られた3D作品は、全てポリスタの式で説明できます。そして立方体以外のポリスタのサンプル作品全てがポリスタの式で説明できるなら、ポリスタの3D作品は全て上記の式で説明できるはずです。実際には違ったのは、既にお話ししたとおり。

さて全部の変形・加工操作を調べねばならんのですが。さすがに全部は書いてられないので少しだけ。まずコレ。

加工前 加工後
画像 加工前 加工後
ポリゴン数 12 10
頂点数 8 7
モデル数 1 1

頂点数の変化をみたときの表。これは[点を消す]操作です。ポリスタの式の視点で言えば、[頂点数を1減らす]。

尖らせて引き出す 線を2分割+線を切る
画像 立方体の一面を尖らせて引き出す 立方体の一面の対角線を2等分に切る
ポリゴン数 14 14
頂点数 9 9
モデル数 1 1

次はこちら。立方体の一面を[尖らせて引き出す]。もう一つは、対角線を[線を2分割]。さらに[線を切って]います。これらをポリスタの式の視点で説明すると、

[尖らせて引き出す]

頂点数を1増やす操作

[線を2分割]

頂点数を1増やす操作

[線を切る]

ポリスタの式の上では何も変わらない操作

とわかります。[尖らせる]のも[線を2分割する]のも、式の上では同じ。「どのように頂点を増やすか」が違うだけです。

こうやって見てゆくと、意外と[頂点を増やす]だけの操作は多くあります。例えば[線を押さえて引き出す]。他には[小さい面を作る]。

モデル数が変わる操作は、[パネルを作る][モデルをコピーする][モデルを消す][モデルをつなげる]。

トンネルについては前回お話ししたとおり。

あとはポリスタ説明書59頁にある、「作れない形になりモデルが消える」現象。これは[モデルを消す]と同じと考えます。(実際にはちょっと違うようです)

ともかく要点は、3D作品の変形・加工操作は、全て上記の式で説明できるということです(ずいぶん説明を飛ばしたなぁ)。ここまでの結論は、

[ポリゴン数]=2×[頂点数]-4×[モデル数]+4×[トンネル数]
上記の式で説明できる3D作品を変形・加工して作られた3D作品は、全て上記の式で説明できる。

さて次に調べねばならないのは、立方体以外のサンプル3D作品がこの式に従うかどうか、です。

モデル接着の概念を導入

[ポリゴン数]=2×[頂点数]-4×[モデルエレメント数]+4×[トンネル数]・・・ (A)

立方体以外のサンプル3D作品がこの式に従うかどうか。これは調べてみないとわからない。調べると…ありますあります。変な物が。

「サンプル3D作品データ」で、緑色にマークしてある作品。これらは上記の基本式では説明できません。原因は接着されたモデル。

ここらへんの話は、「モデル接着」と絡むのでそちらを参照。ではモデル接着をどう数式で表現するか。

接着無し 接着あり
画像 接着なしの立方体が2個 接着された立方体が2個
ポリゴン数 24 24
頂点数 16 16
モデル数 2 1
トンネル数 0 0
接着数 0 1
モデルパーツ数 2 2

最も単純な接着の例。ポリゴン形状はどちらも全く同じです。モデル数が1減ったので、全体のポリゴン数は4減る必要があります。しかし当然、ポリゴン数はそのまま。モデルパーツ同士が見えない線で繋がったと考えると、その線の数は1本。線1本につきポリゴン数が4減るとすれば、つじつまが合います。モデル接着はモデルエレメント数を減らす操作なので、モデルエレメントが減った分だけ接着数で補えばよいわけです。最終的なポリスタの式は、

[ポリゴン数]=2×[頂点数]-4×[モデル数]+4×[トンネル数]-4×[接着数]・・・(B)

これは今までの式を作る経緯からできた式。言い換えると、変数一つ一つに注目した式。さらに式を書き換えると、

[ポリゴン数]=2×[頂点数]-4×{[モデル数]+[接着数]}+4×[トンネル数]・・・(C)

ポリスタの式の完成。この式は殆どのポリスタ3D作品を説明できます。

別解

[接着数]を[モデルパーツ数]で書き換えが可能です。

[モデルパーツ数]=[モデル数]+[接着数]
これを式(C)に代入。
[ポリゴン数]=2×[頂点数]-4×[モデルパーツ数]+4×[トンネル数]・・・(D)

モデル接着を使わないとき、即ち[接着数]=0のとき、[モデル数]=[モデルパーツ数]。