Unityの単語メモ

概要

Unityの学習中なんだけど用語が多く、初めて触る業界なので用語が覚えられなかった。そのため、メモして覚えることにした。

レンダリング(Rendering)

データをもとに3Dオブジェクトを画面に描き出すこと。描き出すソフトウェアをレンダリングエンジンまたはレンダラーと呼んだりする。

プロジェクト(Project)

ゲームそのものに相当するもの。1つのゲームは1つのプロジェクトで管理される。プロジェクトは、1つ以上のシーンによって成り立っている。

シーン(Scene)

ゲームの画面に相当するもの。ゲーム画面1つにつき1つのシーンを用意する必要がある。シーンは1つ以上のオブジェクトによって成り立っている。

オブジェクト(GameObject)

ゲーム内の「モノ」とか「要素」に相当するもの。1つのオブジェクトで1つの物体を表現することもあるし、複数のオブジェクトで1つの物体を
表現することもある。コンポーネントを設定することによって、特徴づけ(どんな物質とか、当たり判定があるかなど)ができる。

コンポーネント(Component)

オブジェクトに特徴づけ(どんな物質とか、当たり判定があるかなど)を行う設定。

アセット(Asset)

ゲームを構成する要素の最小単位を指す。キャラクター、テクスチャ、オーディオ素材などがそれにあたる。アセットはすべて「Assets」ディレクトリに格納する。

リジッドボディ(RigidBody)

オブジェクトに「物理挙動」を持たせるためのコンポーネント。書籍では、オブジェクトに重力の影響を与えるために設定していた。

アタッチ(Attach)

オブジェクトにコンポーネントを追加すること。

コライダー(Collider)

オブジェクトの当たり判定を行うコンポーネント。一般的にはオブジェクトを置いてからコライダーをアタッチする必要があるが、Unityにデフォルトで用意されているCubeオブジェクトやSphereオブジェクトは、予め物体の形状に合わせたコライダーが設定されている。

スプライト(Sprite)

2Dゲームを構成する画像をまとめた素材データのこと。1枚または複数枚の画像をまとめている。Unityのスプライトエディター(Sprite Editor)で画像素材を切り分けて、ゲーム内に配置していく。

プレハブ(Prefab)

オブジェクトをスタンプのように複製して量産できるようにするUnityの機能。

インスタンス(Instance)

プレハブから生成されたオブジェクトのこと。

キャンバス(Canvas)

UIオブジェクトを追加すると作成されるオブジェクト。キャンバスの子オブジェクトとしてテキストなどのUIオブジェクトが追加される。

タグ(Tag)

オブジェクトを識別するために設定する情報。設定しておくことで、スクリプトからそのオブジェクトがどのタグに属するかを識別することができるようになる。例えば、Player(プレイヤーのキャラ)のタグなど、ゲームを作る上で使用頻度が高いタグは最初から用意されている。

アセットバンドル(Asset Bundle)

アセットをひとつにまとめたもの。Unity5.3からLZ4形式で圧縮されるようになり、各ファイルごとに解凍して使用できるようになった。それ以前は、バンドル内のアセットを使用する場合バンドル全てを解凍するしかない。主にアセットを動的にダウンロードするようにし、アプリ自体のサイズを削減するために利用される。プラットフォームごとにアセットバンドルを作成する必要がある。

インステンシエイト(Instantiate)

original のオブジェクトをクローンする処理。あらかじめオブジェクトを読み込んでおいて、この処理でクローンする実装にすれば、同じオブジェクトを複数登場させる処理を実装するときに軽く実装することができる。シューティングゲームの弾の生成処理の実装に使われるらしい。あんまりやりすぎると重くなる。

シェーダー(shader)

アドレッサブルアセットシステム(Addressable Assets System)

ゲーミングPCの使用パーツのメモ

概要

昔自作したゲーム用PCのパーツ構成のメモがあった。長く残しておいたほうがいいと思ったので、Markdownの勉強がてら記事にしてみた。

GamePCの構成パーツ

パーツ種類 名称 値段 使用電源容量 使用電圧 備考
マザーボード(M/B)) ASUS B85M-G \7,480 (34W) 5V -
CPU Core i5 4440 BOX \19,480 (84W) 12V -
メモリ UMAX Cetus DCDDR3-8GB-1600OC \0 (6W) 3.3V -
グラフィックボード(GPU) N660GTX Twin Frozr 4S OC \20,079 (130W 最小必要450W) 12V -
補助記憶装置(HDD/SSD) 一旦故PCから流用 \0 (18W/1HDD) 12V -
DVDドライブ(ODD) 故PCから流用 \0 (17W) 12V -
電源(PSU) HX650 CP-9020030-JP \13,439 - - (出力650W)
ケース DS Cube Window \11,880 - - -
その他 グリス \1,140 - - -
合計 \73,618

備考

  • 流用HDDが使えなければ、HDDとSSDを新調する可能性あり
    • SSD (54W/1SSD) 12V

Linuxにウィルス対策ソフト(Sophos Antivirus for Linux)のインストール

概要

巷ではデスクトップLinuxは堅牢とか、シェアが少ないからウィルス対策ソフトは必要ないっていう話を聞くけれど、僕はウィルス対策ソフトがないとなんだか不安で仕方ない性分なのでインストールした。

色々調べていると、「ClamAV」というウィルス対策ソフトがメジャーらしいが、こちらのソフトはちょっと設定が大変そうだったり、ウィルススキャンがcronに登録して定期実行するのでリアルタイムに監視できなさそうって思った。

なんかリアルタイムでスキャンできて簡単に構築できるものがないか調べたところ、「Sophos Antivirus for Linux」というものがあるということを知ったので試してみた。

Sophos Antivirus for Linuxのダウンロード

以下のページからSophos Antivirus for Linuxをダウンロードする。ダウンロードするには、ユーザー登録、利用規約承諾などがあるため、画面に従い情報を入力する。最後まですすめるとtgzファイルがダウンロードできる。

Sophos Antivirus for Linuxダウンロードページ

ダウンロードページ

Sophos Antivirus for Linuxのインストール

まずはtgzファイルを解凍する

1
tar zxvf sav-linux-free-9.tgz

その後、解凍ディレクトリ内に存在するinstall.shを実行する。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
cd /path/to/dir/sophos-av
./install.sh

Sophos Anti-Virus
=================
Copyright 1989-2018 Sophos Limited. All rights reserved.

Sophos Anti-Virus インストーラへようこそ。Sophos Anti-Virus には、オンアクセススキャナ、オンデマンドコマンドラインスキャナ、Sophos Anti-Virus デーモンがあります。

オンアクセススキャナ ファイルがアクセスされると検索し、未感染の場合のみアクセスを許可
オンデマンドスキャナ コンピュータの全体または一部を直ちに検索
Sophos Anti-Virus デーモン Sophos Anti-Virus にコントロール、ログ、メール警告機能を提供するバックグラウンドプロセス

(中略)

エンドユーザー使用許諾契約および個人情報保護方針に同意します。 はい(Y)/いいえ(N) [N]
>Y

Sophos Anti-Virus のインストール先を指定してください。 [/opt/sophos-av]
>

オンアクセス検索を有効にしますか? はい(Y)/いいえ(N) [Y]
> Y

ソフォスは、Sophos Anti-Virus での自動アップデートの設定をお勧めします。

ソフォスから直接アップデートしたり(要アカウント情報)、自社サーバー(ディレクトリや Web サイト(アカウント情報が必要な場合もあります))からアップデートすることができます。

オートアップデートの種類を選択してください: ソフォス(s)/自社サーバー(o)/なし(n) [s]
> s

ソフォスから直接アップデートしています。
SAV for Linux の無償バージョン (f) と サポート対応付きバージョン (s) のどちらをインストールしますか? [s]
> f

Sophos Anti-Virus for Linux の無償バージョンに対して、サポート対応は提供されていません。
無償ツールのフォーラムは次のサイトを参照してください。http://openforum.sophos.com/
ソフォスからアップデートを行うためにプロキシが必要ですか? はい(Y)/いいえ(N) [N]
> N

無償のアップデート用アカウント情報を取得しています。
Sophos Anti-Virus をインストールしています....
適切なカーネルサポートを選択しています...
Sophos Anti-Virus が起動すると、カーネルサポートを見つけるためアップデートします。 これによって大幅な遅れが発生することがあります。
Sophos Anti-Virus は、インストール終了後、開始されました。

インストールが完了しました。
ご使用のコンピュータは Sophos Anti-Virus で保護されるようになりました。

ウィルス定義の手動アップデート

以下のコマンドを入力することでウィルス定義の手動アップデートが実行できる

1
sudo /opt/sophos-av/bin/savupdate

【備考】アンインストール

以下のコマンドを入力することでアンインストールができる。

1
/opt/sophos-av/uninstall.sh

あとがき

設定で色々いじれたり、自動アップデートがいつ走るとか、リアルタイムスキャンでウィルスが検出されるとどうなるかとかは未検証だけど、時間があるときにやってみたい。

参考ページ

以下のページがとても参考になりました。ありがとうございます。

Linux Mintに日本語入力を追加する手順

導入したOSのバージョン

Linux Mint 19 Tara

設定ウィンドウを開く

設定ウィンドウを開く
左下の[メニュー]から[設定->入力]を選択する。

日本語をインストールする

日本語をインストールする
選択欄が表示されるので[日本語]をインストールする。

インストールパッケージ一覧が表示されるのでインストールする。

インストールパッケージ一覧
インストールされるパッケージの一覧が表示されるので[OK]をクリックする。インストールする際に、パスワードの入力が求められるので入力する。

入力方法の変更

入力方法の変更
入力方法で[IBus]が選択できるようになっているので、IBusに変更する。

Linux Mintを再起動する

設定を反映するにはLinuxを再起動する必要があるので、再起動する。

タスクバーからMozcを選択

タスクバーからMozcを選択
再起動後、右下のタスクバーで入力モードを切り替えることができる。[日本語-Mozc]が選択できるようになっているので、選択する。
これにより日本語入力が可能になる。

Windows Subsystem for Linux(WSL)上のUbuntuでファイルパーミッションを設定できるようにする

概要

Windows Subsystem for Linux(WSL)上のUbuntuでホームディレクトリを変更する」の手順で/mnt/cをホームディレクトリにすると、作成したファイルがすべて777パーミッションで作成され、chmodが効かない現象が発生する。これは、デフォルトでは/mnt/cがメタデータを保持できないファイルシステムでマウントされており、Linuxのファイルパーミッションが保持できない状態になっているためである。

この問題は、Windows10 RS4というバージョンから改良されており、Cドライブをdevfsというファイルシステムのメタデータありモードでマウントすることによって解決することができるようになっているとのこと。詳細はこちらの記事が詳しく説明してくれている。

手順についてはこちらが参考になりました。
両ページに感謝いたします。

Cドライブのマウント形式を変更する

以下の手順でWindowsのCドライブをdevfsファイルシステムのメタデータ有効化をした状態でマウントができる。

WindowsのファイルシステムにはLinuxのメタデータが存在しないため、パーミッションを設定することができませんでした。しかし、build 17063のリリースによってそのメタデータを扱えるようになりました。メタデータを有効にするには、次のようにmetadataオプションを付けてドライブをマウントします。

1
2
sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o metadata

設定の恒久化

「build 17093」から上記の設定が恒久化できるみたい。

WSLの設定ファイル/etc/wsl.confを編集します。ファイルが存在しない場合は作成してください
[automount]セクションのoptionsにmetadataを追加します。必要な最小限の設定は次のようになります。

1
2
[automount]
options = "metadata"

すでにoptionsがある場合は「,」区切りでその前か後に追記します。

1
options = "metadata,case=off"

新規作成するファイルおよびフォルダのデフォルトパーミッションを変更

上記の手順で、chmodによるファイルパーミッションが変更できるようになるが、新規作成されるフォルダのパーミッションが777で作成されてしまう。
ディレクトリは755ファイルは644で作成されるように設定する。

方法としては、シェルログイン時に割り込んで実行される.profileファイル内で、新規作成ファイルのファイルパーミッション設定を行うumaskコマンドを実行することで実現する。

こちらの手順が参考になりました。感謝します。

.profileファイルにumaskコマンドの追記

.profileファイルをエディタで開く。

1
vim ~/.profile

.profileファイル内に以下のコマンドを追記する。

1
umask 022

【補足】システム全体で新規作成するファイルおよびフォルダのデフォルトパーミッションを変更する

上記の.profileファイルは、ホームディレクトリ以下にあるため、別のユーザーでシェルを立ち上げるとumaskコマンドが実行されない。
システム全体でumaskコマンドを実行するには、/etc/profileファイルにコマンドを追記することで、シェルにログインした際に追記したコマンドを実行してくれるらしい。まだ未検証なので補足程度に。

参考ページ

WSLからマウントしたWindowsのドライブでchmodしたい

RS4におけるWindows Subsystem for Linuxの改良点 drvfsのメタデータ対応

WSL(Windows Subsystem for Linux)の初期パーミッション設定

気になる技術メモ

はじめに

個人的に気になっている技術を忘れないようにメモしておく

気になっている技術

Unity

この前に入門用の書籍もらってから気になっているゲームエンジン。その書籍みてると、GUIのウィンドウでポチポチして2Dまたは3Dのゲームが作れるっぽかった。中学生の時にRPGツクール2000でゲーム作ってた時のこと思い出す。ゲーム作って遊んでみたいな。

Hexo

Node.jsで動作するブログフレームワーク。コマンドをいくつか叩くだけでMarkdownから記事を生成して、テンプレートにはめ込み、ブログが完成する。超楽そう。Markdownは前から興味があり、メモを取るのに活用しようかなぁと思っていたので、それを利用してブログ書けるのは一石二鳥な感じがしてる。
調査中に知ったGithub Pagesで爆速でブログが立てれるためそれをいつかしてみたいな。

Python

プログラミング言語。汎用性が高いようで、様々なシーンで使用されていると耳にする。よく聞く分野では、組み込み系、Web系、人工知能、解析、ゲームなんかも作れるとかなんとか。思想が合っているような気がしているのと、汎用性が高いので覚えると色々なものを作れるようになることから、ぜひ習得してみたいと思った。

flask

PythonのWebフレームワーク。公式曰く、「マイクロフレームワーク」というのらしく、コアの機能はシンプルで少なく、拡張性に富んでいるという設計らしい。
個人的にはフレームワークというものに触れてきたことが少なく、Pythonも気になっているプログラミング言語であることから、何か簡単なWebサービス作ってみたいなぁと思った。

Julia

プログラミング言語。これはPython関係のニュースを眺めているときに発見した言語なんだけど、Pythonは実行速度が遅いといわれている。それに対しこのJuliaという言語は、Cの速度で動くPythonのように汎用的に使える言語が欲しいってことでJuliaを作ったみたい。まだ日本では有名ではない言語ではありそうだけど、Pythonのライバルとか言われてるっぽいのでとても興味がある。開発者がなぜJuliaを作ったかは、こちら(原文英語)こちら(有志による和訳)をごらんください。

Firebase

クラウド上に色々作ってバックエンドを実装しなくても済むよ!って感じのツール群(らしい)。先輩に教えてもらった。まだ調べてる途中。いつか使ってみたい。

React

JSのライブラリ?動的に作成されるデータと、HTMLをマッピングして、動的にDOMをいい感じにしてくれるもの?先輩に教えてもらった。まだ調べてる途中。

OctoberCMS

https://octobercms.com

CentOS 7でWi-fiに接続する手順メモ

概要

家に余ってたノートPCでサーバー構築を学習しているとき、Wi-fiでネットワークに接続することを試みた。その時の手順を忘れないようにメモしておく。

検証したOS

CentOS Linux 7.3

NICのデバイス名の確認

TYPEがwifiのデバイスが無線NICである、
その名前を確認する。

1
nmcli d

NICの有効状態の確認

1
mmcli radio wifi

ネットワークマネージャーがwi-fiを使用できるか確認

wi-fiに接続するには、ネットワークマネージャーのwi-fi用プラグインが
必要な模様。以下のコマンドで確認すること。

今回の環境では、プラグインが最初からインストールされていたため、そのまま手順を進めた。

1
yum list installed | grep NetworkManager-wifi

周辺のwi-fiアクセスポイントの確認

1
nmcli dev wifi list

wi-fiアクセスポイントに接続

以下のコマンドでアクセスポイントに接続する。こちらのページを参考にした。ありがとうございます。

1
nmcli device wifi connect (アクセスポイントのSSID名) password (アクセスポイントのパスワード)

接続情報の確認

下記コマンドで出力される設定値一覧にONBOOT=yesとなっているか確認すること。
ONBOOTがyesになっていないと、起動時に自動的に接続されない。

1
less /etc/sysconfig/network-scripts/ifcfg-auhome_adT3nd

参考ページ

下記ページを参考にさせていただきました。ありがとうございます。

Gitリポジトリ内で別のリポジトリを管理する

概要

Gitリポジトリで管理しているディレクトリの中で、別のリポジトリを取り込んで管理したい場合があった。親のリポジトリをcloneした後に、各リポジトリをcloneするのは面倒なので、何か一発で必要なリポジトリを取得できる機能がないか調べてみた。

すると、git submoduleという機能を見つけたので使ってみた。

サブモジュールを親のリポジトリ内に追加する

以下のコマンドを実行する。

1
git submodule add [リポジトリ名] [リポジトリを追加したいディレクトリパス]

【重要】git submoduleの注意点

git submoduleでややこしいところは、親のリポジトリとサブモジュールは連動しないということである。

こちらの記事がわかりやすかったです。感謝します。

clone後にサブモジュールを取得する

1
2
3
git clone parent-repository
git submodule init
git submodule update

【未検証】サブモジュールをすべて最新版に更新する

1
git submodule foreach git pull origin master

参考ページ

Git submodule の基礎

Windows Subsystem for Linux(WSL)上のUbuntuでホームディレクトリを変更する

概要

Windows Subsystem for Linux(以下WSL)でUbuntuをインストールしたんだけど、Ubuntu内のmdファイルをWindowsのatomエディタで参照したかった。けれど、標準で作成されるホームディレクトリはWindowsから参照する方法がわからなかったので、ホームディレクトリを変更する手順をとった。

こちらの記事を参考にさせてもらいました。ありがとうございます。

実行したOSのバージョン

Ubuntu 18.04.1 LTS

ホームディレクトリの変更手順

Ubuntuのインストール

WSLを有効化し、Ubuntuをインストールする。インストールする手順は、記事の本流から外れてしまうので割愛する。

新しいホームディレクトリを作成する

WindowsのCドライブが/mnt/cで参照できるため、以下のコマンドで新しいホームディレクトリを作成する。

1
/mnt/c/linux-home/username

ホームディレクトリの変更

/etc/passwdにユーザーのホームディレクトリのパスが記されているので、エディタ等で変更する。編集にはroot権限が必要なので注意すること。

1
2
3
4
5
vi /etc/passwd

username:x:1000:1000:,,,:/home/username:/bin/bash
↓(変更する)
username:x:1000:1000:,,,:/mnt/c/linux-home/username:/bin/bash

設定ファイルの移行

標準のホームディレクトリには、.bashrc.viminfoなどの設定ファイルが存在するので、新しいホームディレクトリにすべて移動する。

1
mv -v ~/.[^\.]* /mnt/c/linux-home/username/

Ubuntuのシェルを再起動し、ホームディレクトリが変更されているか確認

Ubuntuのシェルをいったん終了したあと再度起動し、ホームディレクトリが/mnt/c/linux-home/usernameに変更されていることを確認する。

参考

【WSL】ホームディレクトリ変更手順