Unity 用語の語源を調べてみた

# Unity 用語の語源を調べてみた

どうも、語源を調べるのが趣味のせぎゅと申します！
本業では Unity エンジニアをやっているのですが、Unity 独特の用語がいくつかあります。
今回はそういった用語の語源を調べてみました！

**素人が趣味で調べたものになります。厳密な考証は行っておりません。内容には諸説あります。ご了承の上、お読みください。**

# Unity

<img width="200px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/9a0f7d8f-63c4-66e3-6e5d-ab52ffd6b1ba.png" />

unity は英単語でして、 `単一性` や `団結力` のような意味があります。

たとえば、 `team's unity` と言ったら、 `チームの団結力` といった意味になります。

語源を辿るとこんな感じです！

```mermaid
flowchart TD
    Unity("Unity : Unity社のゲームエンジン")
    unity("unity : 【英語】単一性、団結")
    unite("unite : 【古期フランス語】単一性")
    unitas("unitas : 【ラテン語】単一性")
    unus("unus : 【ラテン語】１")
    oynos("oynos : 【印欧祖語】１")
    itas("itas : 【ラテン語】こと")

    Unity -.- unity -.- unite -.- unitas
    unitas -.- unus -.- oynos
    unitas -.- itas
```

つまり、 `uni` の部分が数字の１を意味するんですね！

同じ `uni` がつく言葉に `union` （ユニオン） があります。
これは `連合` や `組合` といった意味です。

たとえば有名どころだと、 `欧州連合` が英語では `European Union` ですね！

## 印欧祖語とは？

図の中にいきなり `印欧祖語` というものが登場しましたが、知らない人のために解説します！

インドからヨーロッパにかけた地域の言語は、共通の祖先にあたる言語を持っていると考えられていて、それを `印欧祖語` と呼びます！

そこから派生した言語を `印欧語族` と呼びます。

# Inspector

<img width="200px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/24ed79c3-e73d-eb08-5ded-fb48eefdfb4c.png" />

Unity をはじめて触った人が、最初に遭遇する謎単語がこの `inspector` ではないでしょうか？

「Hierarchy ウィンドウの GameObject をクリックすると、Inspector ウィンドウに GameObject の情報が表示されます。」

みたいな解説をよく見かけますが、「そもそも Inspector ってなんやねん！」って叫んだ人も多いことでしょう。

inspector は英単語でして、辞書的には `検察官` という意味になります。

検察官と言われてもピンと来ないですが、単語を分解すると、ニュアンスがわかってきます。

```mermaid
flowchart TD
    Inspector("Inspector : 【Unity用語】GameObjectの情報を閲覧する機能")
    inspector("inspector : 【英語】検察官、調査官")
    inspect("inspect : 【英語】調べる")
    inspectus("inspectus : 【ラテン語】～の中を見た")
    inspicio("inspicio : 【ラテン語】～の中を見る")
    in("in : 【ラテン語】～の中に")
    specio("specio : 【ラテン語】見る")
    spek("spek : 【印欧祖語】見る")
    or1("or : 【中世英語】人")
    or2("or : 【ラテン語】人")

    Inspector -.- inspector
    inspector -.- inspect
    inspector -.- or1 -.- or2
    inspect -.- inspectus
    inspectus -.- inspicio
    inspicio -.- in
    inspicio -.- specio
    specio -.- spek
```

ここから解釈すると、 **中を見る人** という意味になりそうです。

つまり、 **GameObject の中身を見せてくれるのが、Inspector ウィンドウ** ということですね！

# Prefab

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/7087b269-10a3-21ec-f541-81e05c21d576.png)

Unity における Prefab とは、GameObject をアセット化したファイルを指します。

日本語でプレハブというと、 `プレハブ小屋` や `プレハブ住宅` という言葉が思いつきまして、なんとなく建築業界の用語な気がします。

意味を調べてみたところ、なんと **`prefab` は、 `prefabricate` の略** であることがわかりました！
（私は調べるまで知りませんでした）

語源を遡ると、結構深くまで掘れて興味深いです！

```mermaid
flowchart TD
    Prefab("Prefab : 【Unity用語】GameObjectをアセット化したファイル")
    prefab("prefab : 【英語】prefabricateの省略形")
    prefabricate("prefabricate : 【英語】前もって組み立てる")
    pre("pre : 【ラテン語】前に")
    fabricate("fabricate : 【英語】組み立てる")
    fabric("fabric : 【英語】織物、建材、職人の製作物")
    faber("faber : 【ラテン語】職人")
    dhabh("dhabh : 【印欧祖語】作り出す")
    icus("icus : 【ラテン語】〜に属する")
    ate("ate : 【英語】～にする")
    atus("atus : 【ラテン語】～に似た")

Prefab -.- prefab -.- prefabricate
prefabricate -.- pre
prefabricate -.- fabricate
fabricate -.- fabric
fabricate -.- ate -.- atus
fabric -.- faber -.- dhabh
fabric -.- icus
```

つまり、 **プレハブとは、職人が前もって作ったもの** というイメージになります！

# Texture

CG 界隈で `texture` というと、サーフェスに貼る画像データを指すのが一般的です。

texture は、英単語でして、 `質感` や `手触り` のような意味があります。
グルメ番組で、「滑らかなテクスチャーのワイン」みたいな表現を聞くことがありますが、これは `食感` を指しています。

さらに語源を辿ると、こんな感じでした。

```mermaid
flowchart TD
    Texture("Texture : 【CG用語】サーフェスに貼り付ける画像データ")
    texture1("texture : 【英語】質感、手触り")
    texture2("texture : 【中期フランス語】織物の手触り")
    textura("textura : 【ラテン語】織物の織り方")
    texo("texo : 【ラテン語】織る")
    tek("tek : 【印欧祖語】作り出す")
    tura("tura : 【ラテン語】行為")

    Texture -.- texture1 -.- texture2 -.- textura
    textura -.- texo -.- tek
    textura -.- tura
```

**もともとは、織物の作り方を指す言葉が、織物の手触りを指すようになり、いつしか織物以外の質感にも使われるようになった** という歴史がありそうです。

こうやって徐々に言葉の意味が変化していくのを辿るの大好きです。

ちなみに、文章を意味する `text` も、織物由来であることがわかりました。
文字を織物に織り込むことから、文章を意味するようになったようです。

# Material

<img width="100px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/37f36eae-14b2-7d48-87d8-3edb2bd5bf2c.png" />

CG 界隈で `material` というと、サーフェスの見た目を調整するためのパラメーターの集合体のようなイメージがあります。

まず `material` は、 `原料` という意味の英単語です。

たとえば、木の Material と石の Material を組み合わせて、家の GameObject をつくる。みたいなイメージですね！

`material` の形容詞としての意味に、 `物質でできた` があります。これを遡ります。

```mermaid
flowchart TD
    Material("Material : 【CG用語】サーフェスの材質、質感")
    material("material : 【英語】原料、物質でできた")
    materialis("materialis : 【ラテン語】物質でできた")
    materia("materia : 【ラテン語】物質")
    mater("mater : 【ラテン語】源、母")
    mehter("mehter : 【印欧祖語】母")
    alis("alis : 【ラテン語】～の")

    Material -.- material -.- materialis
    materialis -.- materia -.- mater -.- mehter
    materialis -.- alis
```

なんと、material は mother と同じ語源であることがわかりました！

つまり、 **母なる Material から GameObject は生まれているのです！**

# Shader

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/f93c4fd8-169c-b05e-3b14-cc0f2691fd74.png)

Unity では、 **GPU 上で実行されるプログラム** のことを `Shader` と呼びます。

ただ、 `Shader` の語源である `Shade` は、 `陰` という意味であり、 `GPU` とのつながりがよくわかりません。

実は CG 界隈では、 **`陰影処理` のことを `Shading` と呼んでいて、そのプログラムを `Shader` と呼んでいます。**

陰影処理は GPU 上で実行されるのが一般的ですが、そこからいつしか、陰影処理以外のプログラムも Shader と呼ぶようになったようです。

また、CG 用語の `Shading` も、絵画から影響を受けているようです！

```mermaid
flowchart TD
    Shader("Shader : 【Unity用語】GPUで実行されるプログラム")
    shader1("shader : 【GPU用語】GPUで実行されるプログラム")
    shader2("shader : 【CG用語】陰影処理を行うプログラム")
    shading1("shading : 【CG用語】陰影処理")
    shading2("shading : 【絵画用語】陰影画法")
    shade1("shade : 【絵画用語】陰影、色合い")
    shade2("shade : 【英語】陰")
    schade("schade : 【中世英語】陰")
    sċeadu("sċeadu : 【古英語】陰")
    skadu("skadu : 【西ゲルマン語】陰")
    skadwaz("skadwaz : 【ゲルマン祖語】陰")
    er("er : 【英語】人")
    ere("ere : 【中世英語】人")
    arius("arius : 【ラテン語】人")


    Shader -.- shader1 -.- shader2
    shader2 -.- shading1 -.- shading2 -.- shade1 -.- shade2
    shader2 -.- er -.- ere -.- arius
    shade2 -.- schade -.- sċeadu -.- skadu -.- skadwaz
```

`shade` はラテン語ではなくゲルマン祖語の系譜でした！
古代のゲルマン人が `陰` という概念を持っていたということですね。興味深いです！

# Rigidbody

<img width="200px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/8f7f0e1a-f001-351e-25f5-0d9a031282c2.png" />

Unity の `Rigidbody`は、「重力を有効にする機能！」と覚えてる人も多そうです。（というか私がそうです）
もう少し詳しい人だと「物理演算を有効にする機能！」という認識の人もいるかもしれません。

これらは間違っていませんが、Rigidbody という言葉の本質をとらえてはいません！

`rigid body` とは、 `剛体` という意味の英単語です。
剛体というのは、変形しない物体のことですね！

大学の理系の学部だと、1 年生の頃に剛体の力学を学んだりします。

つまり Rigidbody とは、 **剛体の力学をコンピューター上でシミュレーションする機能** なんですね！

ここで、 `rigid` に注目します。 rigid は、 `硬い` という意味の英単語です。

```mermaid
flowchart TD
    Rigidbody("Rigidbody : 【Unity用語】剛体の力学のシミュレーション機能")
    rigidbody("rigid body : 【英語】剛体")
    rigid("rigid : 【英語】硬い")
    rigeo("rigeo : 【ラテン語】硬直している")
    reyg("reyg : 【印欧祖語】ぴんと張った")
    body("body : 【英語】体")
    bodig("bodig : 【古英語】体")
    budaga("budaga : 【ゲルマン祖語】体")
    bhewdh("bhewdh : 【印欧祖語】分かる")

    Rigidbody -.- rigidbody
    rigidbody -.- rigid
    rigidbody -.- body
    rigid -.- rigeo -.- reyg
    body -.- bodig -.- budaga -.- bhewdh
```

つまり、 **rigid body は、硬い体だから変形しないよー** というイメージですね。

# Collider

<img width="200px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/91041d69-cc0a-3a5f-a55e-1f896b9beb64.png" />

Unity における `Collider` は、CG 用語でいう `当たり判定` に相当する概念です。

英語では `衝突装置` という意味があるそうです。

```mermaid
flowchart TD
    Collider("Collider : 【CG 用語】当たり判定")
    collider("collider : 【英語】衝突装置")
    collide("collide : 【英語】衝突する")
    collidere("collidere : 【ラテン語】ぶつかる")
    col("col : 【ラテン語】共に")
    laedo("laedo : 【ラテン語】打つ")
    er("er : 【英語】人")
    ere("ere : 【中世英語】人")
    arius("arius : 【ラテン語】人")

    Collider -.- collider
    collider -.- collide
    collider -.- er -.- ere -.- arius
    collide -.- collidere
    collidere -.- col
    collidere -.- laedo
```

つまり、 **`共に打つ` から `衝突する` んですね！**

# さいごに

他にも気になる単語はいっぱいありますが、今回はここまでにします！

本記事作成にあたり、以下のサイトを活用させていただきました。ありがとうございました！

- [Unity Documentation / Unity Manual](https://docs.unity3d.com/Manual/)
- [Gogengo](http://gogengo.me/)
- [イメージ英単語](https://imageeitango.com/)
- [語源英和辞典](https://gogen-ejd.info/)
- [ウィクショナリー](https://ja.wiktionary.org/wiki/)
- [Wikipedia / インド・ヨーロッパ語族](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%89%E3%83%BB%E3%83%A8%E3%83%BC%E3%83%AD%E3%83%83%E3%83%91%E8%AA%9E%E6%97%8F)