- 投稿日:2019-07-27T23:43:28+09:00
Manjaro i3 Editionインストールからカスタマイズまでのメモ【随時更新】
Cinnamonがばぐった
アップデートでCinnamonがバグってしまわれました
アプレットやデスクレットを使おうとするとCinnamonがクラッシュしてしまうんです...。一旦、全部(homeも)消して、i3 Editionを入れてやろうと思ってます
また、環境を整えるためのメモ書きとして残します環境
Windows10 + Manjaro Linuxのデュアルブート
OS : Manjaro 18.0.4 Illyria Kernel : x86_64 Linux 4.19.60-1-MANJARO大事なデータの避難
とりあえず列挙
ドットファイル
- .bashrc
- .zshrc
- .vimrc
- .Xmodmap
- .ssh
ドキュメント
- 卒研
- レポート
Githubリポジトリ
pushしておく
画像
シェルスクリプト
パーティション情報のメモ
VSCode
VSCode拡張Setting Syncを用いてファイルをGithub gistへアップロードする。
Setting Syncなら環境作り直すのも超楽。
内訳はこんな感じ。
- Setting File
- Keybinding File
- Launch File
- Snippets Folder
- VSCode Extensions & Extensions Configurations
- Workspaces Folder
忘れてたら怖いけど、まあこれくらいでしょう
後は無くても自力で設定しなおせるレベルどうでもいい細かいものまでコピーしちゃって、圧縮しておけばよかったと後悔。
Manjaro i3 Editionのダウンロード
ここからダウンロード
Live USBの作成
いったんWindowsへ。後でLinuxのパーティションを消す作業もするので。
FAT32でフォーマットしてから書き込み。1回目は失敗したけど2回目は成功した。
Linuxのパーティションを消す
こんな感じだったので。
確認しつつ、sda5~sda8を消す。ここはWindowsでの作業。
消したいのを選んで、ボリュームの削除。
消したらこんな感じになった
Live USBから起動
私の環境ではF2でBIOS入ってSave & ExitからBoot Overrideの中のUSB Flash Diskを選択
NVIDIA GPU積んでるならdriverはnonfreeにしておかないといけないかも
- tz = Asia/Tokyo
- keytable = jp
- lang = ja_JP
- driver = nonfree
Manjaro i3 Editionのインストール
画像貼っておきますが、長くなるので畳んでおきます
インストール作業
Wi-Fi
右下のアイコンからWi-Fiアクセスポイントを選んで接続しておく。
インストーラーの起動
Manjaro Helloから
インストーラーを起動
を選択ロケーション
キーボード
パーティションの作成
/boot/efi
まずは/boot/efi
の作成
100MiB
ほどで十分。
ファイルシステムはFAT32
マウントポイントを/boot/efi
にする
フラグはboot
とesp
にチェックをつけるlinux swap
4096MiB
で十分。
ファイルシステムはlinuxswap
フラグはswap
にチェックをつけるroot
ここは大きめにとって80GiB
ほど割り当てた
ファイルシステムはext4
マウントポイントを/
にする
フラグはなしhome
残り全部を割り当てて90GiB
ほど
ファイルシステムはext4
マウントポイントを/home
にする
フラグはなし作成したパーティション
ユーザ情報
管理者アカウントと同じパスワードを使用するにチェック入れておく
要約
しばらく放置
再起動
Pacmanのミラーサーバーの変更
少し時間かかる
$ sudo pacman-mirrors --fasttrackアップデート
pacmanのコマンド叩く
$ sudo pacman -Syyu右下のパッケージマネージャからアップデートもできるので好きな方で。
homeのサブディレクトリを英語にする
Manjaro Fluxbox 15.12の日本語ディレクトリ名を英語名に戻した
僕もコマンドがなかったので参考サイト同様にやった。
$ sudo pacman -S xdg-user-dirs-gtk $ LANG=C xdg-user-dirs-gtk-update再起動する
Google Chrome
ブラウザはこいつ。
Googleアカウントに紐づけて全部同期できるのが強すぎる
vivaldiに乗り換え検討中。
chromeからvivaldiにメインブラウザを移行しました$ yay google-chrome-stablei3のSuper + F2をChromeにする
$ vim .i3/configコメントアウトして、Chromeに書き換える
config# Start Appications # bindsym $mod+F2 exec palemoon bindsym $mod+F2 exec google-chrome-stableプロキシ
学校で使おうと思ったらプロキシの設定をしていなかった...。
Proxyman
プロキシの設定を自動で設定してくれるやつです。
himanshub16/ProxyMan設定
まずは設定。
$ sh proxyman set適用
設定でつけたプロファイルの名前でloadする
$ sh proxyman load PROFILE_NAME解除
$ sh proxyman unsetChrome用 Proxy SwitchySharp
システムにプロキシ通してもChromeで有効にならない...ので拡張機能でプロキシ通します。
ネットワーク設定
Advanced Network Configuration
というGUIツールが用意されているnihongo入力の設定
mada nihongo utenai
# sudo pacman -S fcitx-im fcitx-configtool fcitx-mozc fcitx-gtk2 fcitx-gtk3 fcitx-qt5~/.xprofileexport LANG="ja_JP.UTF-8" export XMODIFIERS="@im=fcitx" export XMODIFIER="@im=fcitx" export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export DefaultIMModule=fcitx自動で起動するようにする
~/.i3/config# Autostart applications exec --no-startup-id fcitx再起動すれば日本語が打てるようになる
日本語フォントの適用
adobe-source-han-sans-jp-fontsを使います
$ sudo pacman -S adobe-source-han-sans-jp-fontsファイル書き換えでやる方法がわからなかったので、CUIの設定ツールから。
- Ctrl + Super + b
- 4 Appeearance
- 3 Set font
- Source Han Sans JP Normalを選ぶ
再起動する
キーレイアウト
ホームポジションを崩さないタイピングがしたくて3週間Colemak配列を触ってみた
こんな記事書いて、今はColemak配列
じゃなくてEucalyn配列
っていうのを使ってます。
設定も記事に記載してますが、こちらにも。キーコードと現在割り当てられているキーの情報を表示
$ xmodmap -pke | less変更前の状態(~/.Xmodmap_old)と変更後の状態(~/.Xmodmap)を記載するファイルを作成し、
ファイルに以下のように書き込む。~/.Xmodmap!Eucalyn keycode 24 = q Q q Q keycode 25 = w W w W keycode 26 = comma less comma less keycode 27 = period greater period greater keycode 28 = semicolon plus semicolon plus keycode 29 = m M m M keycode 30 = r R r R keycode 31 = d D d D keycode 32 = y Y y Y keycode 33 = p P p P ...適用させる。
$ xmodmap ~/.Xmodmap再起動しても設定は維持されます。
focusの切り替え
通常は
Super + j focus left Super + k focus down Super + l focus up Super + ; focus rightとなっていて、Vimよりも左に一つずれて配置されています。
というのも、Super + h split horizontallyが割り当てられているからです。
Vimの配置で使いたいので、変えます。
~/.i3/configbindsym $mod+j focus down bindsym $mod+k focus up bindsym $mod+h focus left bindsym $mod+l focus right bindsym $mod+semicolon split h;exec notify-send 'tile horizontally' bindsym $mod+Shift+j move down bindsym $mod+Shift+k move up bindsym $mod+Shift+h move left bindsym $mod+Shift+l move right bindsym $mod+Ctrl+Shift+h exec xdg-open /usr/share/doc/manjaro/i3_help.pdfVimの設定
【Vim初心者】Vimを整えたいんだが、何からすればええんや?
Vimでファイル編集するなら設定しておいて使いやすくしておこう。
色がヘンテコ
標準でターミナルは
rxvt-unicode
が入ってます
このターミナルに色が設定されているのだと思いますが、Vimにカラースキームを設定したら色が変...。terminator
いっそのことターミナルを変えよう。
ってことでterminator
を入れる$ sudo pacman -S terminator~/.i3/config# start a terminal bindsym $mod+Return exec terminator最後にShift + Super + c
環境変数の
terminal
を見てるっぽいので、そちらを変えてもいけるはず。terminatorの赤い枠の主張が激しい
terminatorを起動して、右クリックから
設定
を開く。
ターミナルタイトルバーの背景の赤を変更する
もしくは、プロファイルからタイトルバー表示
のチェックを外すタイトルバーなくすとスッキリしたので私はこれ。
かっこいいターミナル
お前らのターミナルはダサい
これを読んで気が付かされた。よく見たらダサかった...。まずは
bash
からzsh
に切り替える。Ubuntuのシェルをzshに変更する
お手軽変更!$ chsh -s $(which zsh)起動したら初期設定のウィザードが表示されると思うけど、
.zshrcを自分で書き換えるのでblankで作成。Powerlevel9k
Powerlevel9kによる素晴らしい
.zshrc
をお借りする
Show Off Your Config
感謝しかない。これを借りました。
tonylambiris/dotfilesかっこよすぎる!!!!
ターミナルの起動が遅い
目に見える遅さ。うーん。
Guake入れて表示、非表示切り替えるようにする。Guake
$ sudo pacman guake自動でGuakeが起動するように設定。
~/.i3/configexec --no-startup-id guake起動後にポップアップが表示されるので、Guakeの設定から
起動時にポップアップ通知を表示する
のチェックを外しておく。
また、GTKのテーマも設定する。
i3に合わせるなら、Adapta-Nokto-Eta-Maia
です。Guake入れても、透明化が有効化されない
Comptonよりも前に起動してしまうのがだめなんだと思う。
起動時に同時に起動せずにおいておいて、使いたいときに起動させる感じにしようかな。起動を遅らせる
無理やりだけど、これでも目標は達成できた。
exec --no-startup-id sleep 5s; guaketerminatorをGuakeっぽくする
F12で表示を切り替えたりできるようにすればよいじゃん。
と思ったのですが、
フルスクリーンの切り替えはできるけど、表示の切り替えができなかった。
起動時にBoot Logの表示
Linuxにするならこれはやらないといかん。
$ sudo vim /etc/default/grubGRUB_CMDLINE_LINUX_DEFAULTからquietを削除
grubGRUB_CMDLINE_LINUX_DEFAULT="resume=~"$ sudo update-grubGrubテーマ
Githubからダウンロードする
展開
unzipコマンドなかった...ので入れてから。
$ sudo pacman -S unzip $ unzip grub2-themes-master $ sudo ./install -tめっちゃかっこいい!!
複数のディスプレイを使う
i3のCLI Configure toolでディスプレイ設定しようとすると、
5 Connect/disconnect monitor
にバグがあるので使えません...。
(カーソル入力できなかったり、そのままEnterでも進まない)中身は
xrandr
なので、コマンドを直接叩きます。接続されているディスプレイの確認
$ xrandreDP1 : ノートパソコンについてるディスプレイ
DP1 : DisplayPortに接続されているディスプレイ
って感じに表示されるDP1に出力(コマンドのDP1を環境に応じて変える)
$ xrandr --output DP1 --autoeDP1の上にDP1を表示する場合
$ xrandr --output DP1 --above eDP1といった感じ。
ディスプレイをオフにする場合
ディスプレイの接続を切ったときに、自動的にオフにならない(?)ので、これがいる。$ xrandr --output DP1 --off左下の数字はワークスペースの番号だったんですね。
Super + 数字
でワークスペースの切り替えができます。
(なんかダサくない...?色?フォントかな...?)また、有効になっているタイルやウィンドウを
Ctrl + Super + 数字
でそのワークスペースに移動させることもできます。Shift + Super + qで指がつる
i3 Window Manager を使ってみて分かったおすすめ設定集
Alt+F4がベストかは諸説あるかもしれませんが、デフォルトのウィンドウを閉じるキーバインドはMod+Shift+Qと、手がつりそうになるキーバインドのため、デフォルトとは別で使いやすいものを設定した方がいいような気がしています。
でも、まだ
Alt + F4
のほうが押しやすい気がしますが、ちょっと遠い...。いい組み合わせがほしい。bindsym Mod1+F4 kill設定ファイルの再読込
Super + Shift + c
音が出ない
Youtubeで動画を見ようとしたら音が出なかった...。
PulseAudioのインストール
$ sudo pacman -S pulseaudio再起動
右下のアイコンから操作できない
音は鳴ったのに調節できない...。
アイコンを右クリックしPreferences
ChannelsからAlsa DeviceをHDA Intel PCH
に変更。ミキサー
アイコンを右クリックし
Open Mixer
からミキサーが開く
F6を押してサウンドカードHDA Intel PCH
を選択pavucontrol
PulseAudioのフロントエンド GUI ミキサー
$ sudo pacman -S pavucontroldmenuで選んだbackgrondとterminalの選択を取り消したい
Dmenu how to change if an app runs in background or runs in terminal?
~/.config/dmenu-recent
にbackground
とterminal
という
ファイルがあるので、vimで開いて消せばOKdmenu
https://qiita.com/gyu-don/items/d61b03e0222a7f1ce9f7
i3-dmenu-desktopに変えるrofiで置き換えると思う。
conky
プリインストールされてるのは通常のconkyなので、luaやnvidiaサポートのついたものを入れなおす。
$ sudo pacman -S conky-lua-nv $ conky -vconky -v でluaの一覧が表示されること、その中にcairoが入ってることを確認する。
基本的にこれが必要になってくる。表示内容
i3barをconkyで表示させる
https://uwabami.github.io/cc-env/Debiani3.htmlconky-manager
簡単にconkyウィジェットを追加できる
Conky manager with i3wm
ファイルを直接編集して、own_window_type overrideに書き換えないと、表示位置を変更することができない。
ウィジェットに影がついたままになってしまうのが謎。
compton.confにshadow-excludeに追加する?
~/.config/compton.confshadow-exclude = { "i:e:Conky", "override_redirect", }これで再起しても治らなかったけど、なんか
一度Super + tでconkyを無効にしてから
Ctrl + Super + tで有効に戻せば治る?自分で追加する
かっこいいのがいっぱいある。
Linux Mint 18.3 : Conky をインストール・自動起動・変数リスト
conkyrcを実行すればOK
自動起動はシェルスクリプトにまとめると楽。$ conky -b -c FILENAME.conkyrc影がついてしまうので、つかないように設定しておく。
自分でconkyrcを書くのもあり。
Conkyの設定は簡単だ
Linux Mint 18.3 : Conky の Lua スクリプトの書き方 Part1右上の文字化けしてるやつ
Linux - Manjaro - 18.0 - i3wm - 基本操作 - conky 設定
フォントを書き換えるか、いっそのこと消してしまいます。
または、起動スクリプト内のコマンドの前に
LC_ALL=C
をつけて
localeを変えることで対策もできる。壁紙の設定
feh
を使う方法がいっぱい書いてある。
nitrogen
っていうGUIのツールもある。時間で変わるようにするとかは
nitrogen
は無理っぽい。ログイン画面の壁紙
LightDMというデスクトップマネージャーを入れることにする。
設定もしやすい。悩む...。
どれを配置しようかな...。
今こんな感じに、とりあえず配置してみて眺めてます。
i3 barの色がダサい
i3のテーマ設定するやつがある
Pythonで設定するみたい。
設定したらターミナルもブラウザも起動できなくなり、Manjaro再インストールしました
よくわからないままやるとこうなります。
記事にまとめててよかった。入れ直す決断が早かったです。これじゃなくて、下のconfigの設定を書き換えて設定する方法がある。
pipが使えない
$ python --version Python 3.7.3 $ pip --version zsh: command not found: pippipを入れる。
UbuntuでPythonの環境構築(pipがデフォルトでなかったとき)$ curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python3~/.i3/configを直接いじる方法
以下、参考サイトからconfigをお借りします。
i3 barの色とウィンドウの縁の色が変わる。
どっちもかっこよき。CHANGING THE COLOURS OF THE BAR IN I3
COMPLETE DESKTOP THEMING – COMBUSTION
Compton
ターミナルとかの透明度を変更できるようになる。
画面遷移のときにフェードがかかるような設定にもできるみたい!!すっげぇ!
compton.conf
をお借りします。Super + Ctrl + tでcomptonの起動
Super + tでcomptonの終了
が既に用意されています。terminatorの透過
設定、プロファイル、背景から
背景を透過にチェック。私は0.60くらい。comptonが起動してないと有効にならない。
Polybar
GTK+のAdapta-Noktoが気に入りすぎてPolybarテーマを作った
めっちゃすごい(語彙力)
表示がくずれちゃうのがなぜなのか...。
なぜなのかはまた調べておくとして、とりあえずサンプルを。$ sudo pacman -S polybar$ install -Dm644 /usr/share/doc/polybar/config $HOME/.config/polybar/config $ vim .config/polybar/launch.shlaunch.sh#!/usr/bin/env bash # Terminate already running bar instances killall -q polybar # Wait until the processes have been shut down while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done polybar example & echo "Bars launched..."$ chmod +x $HOME/.config/polybar/launch.sh~/.i3/configexec_always --no-startup-id $HOME/.config/polybar/launch.sh # 以下をコメントアウト bar { i3bar_command i3bar ... }自分の環境では、再起動してもmoduleが表示されません。
起動後に$ polybar exampleだとちゃんと表示されます。どうしたものか...。
i3blocks
rofi
ランチャー
$ sudo pacman -S rofiKDE Connect
やった順に書いてたら流れが脱線気味。
もう少しちゃんとまとめますが、まずはメモ。
- 投稿日:2019-07-27T19:29:38+09:00
Dynabook(中古)を買ったので、Linux Mint 19.1を入れてみた
機種情報(コマンドの一部分切り取りです)
~$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
stepping : 9
microcode : 0x21
cpu MHz : 1634.364
cache size : 3072 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts md_clear flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds
bogomips : 5188.69
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:以下、3コア分
~$ cat /proc/meminfo
MemTotal: 8059788 kB
MemFree: 514904 kB
MemAvailable: 5939260 kB
Buffers: 591504 kB
Cached: 4323472 kB
SwapCached: 0 kB~$ sudo dmidecode -t baseboard
dmidecode 3.1
Getting SMBIOS data from sysfs.
SMBIOS 2.5 present.Handle 0x0002, DMI type 2, 14 bytes
Base Board Information
Manufacturer: TOSHIBA
Product Name: dynabook R732/F
Version: Version A0
Serial Number: C0CZ40NP
Asset Tag: 0000000000
Features:
Board is a hosting board
Location In Chassis: Center
Chassis Handle: 0x0003
Type: MotherboardHandle 0x000E, DMI type 10, 14 bytes
On Board Device 1 Information
Type: Other
Status: Enabled
Description: USB
On Board Device 2 Information
Type: Video
Status: Enabled
Description: VIDEO
On Board Device 3 Information
Type: Ethernet
Status: Enabled
Description: ETHERNET
On Board Device 4 Information
Type: Sound
Status: Enabled
Description: SOUND
On Board Device 5 Information
Type: Other
Status: Enabled
Description: WIRELESS LAN~$
購入時よりの変更
MEM&HDD換装
元々のHDDはmSATAのSSD(128GB)でWindows10でした。
私はWindows10の使用経験が乏しいので軽量Linux DEを入れる事にしたので、mSATAの256GBを購入、換装しました。
また、メモリが2GB(1GB+1GB)だったので、こちらも増設しました。
現在は4GB+4GBの8GBで運用しています。Linux Mint 19.1
Mintは3つの種類があるのですが、今回はXfceを選びました。選んだ理由はなんとなくです。w
3者比較ページなどキータにありますので、気になる方はぐぐってね。
なんとなく…ではありますが、Cinnamonは既にデスクトップで体験済みで、そのデスクトップも今はMATEです。残るはXfceなので…と言う事情もあります。導入その他
ハードウェアの換装作業は裏をみれば一目瞭然な位。
ネジ2本でメモリ蓋が空き、その下に1つ隠れたネジと見えてるネジの2本でHDDの蓋が空きます。
当初HDDは2.5'SSDを購入したのですが、ここでミステイクはmSATAだった点、良く見てから買えばよかった。orz
SSDはまたPC組む時にでも使います
換装自体は特記なし、良くある換装記事の通りです。向き等慎重に行えば別段壊す様な事はないはずです。OSの導入もMintなので特記なしですが、UEFIにチャレンジしてみたのですが、敢え無く挫折。(涙)
難しい…何が悪かったのか、何れまたチャレンジしてみたいです。
通常BIOSにして導入して事無くGRUBは動きました。トラブル
導入後の目立ったトラブルはありません。日本語環境も何もかも、普通に動いています。
今この記事もノートで書いています。(一部デスクトップで書いています)今後の予定
簡易な計測機器をつなぎ、記録用機材にしたいと考えています。
別記事で書いた、中華ロジアナや、同時に購入したラズパイZERO WHなど、これら機器を接続して使う予定です。
また、独自のハードウェア(指紋認証)等がMintから設定できないか?しゃぶり尽くせる部分はトライしてみたいです。
- 投稿日:2019-07-27T16:33:53+09:00
我流VRMMOゲーム制作法(要点まとめ)
VRMMOゲームが作りたい!
私はVRMMOゲームを制作しています。
現在は仕様を練っている所です。今回の記事が、私と同様VRMMOゲームを作ろうとする人の役に立つ事を願います。
制作環境
まず、ゲーム制作環境ですが、Unityにて開発、steamへアップロードを想定しています。
これは、OpenVR SDKやsteamVR pluginを初めとした外部技術導入の容易さからです。以下に私の使用する外部技術を挙げます。
OpenVR SDK:UnityゲームをVR対応にする為に用います。情報が少ないです。
steamVR Plugin:ゲームをVR対応にする為に用います。こちらはカメラや各種コントローラ入力を扱います。
steamworks SDK,API:課金やアップロードなどを扱います。クライアント・自分のサーバ・steam WEB APIサーバでやり取りします。
随時記事を更新作成します。
ログイン
次に、ログイン機能についてです。
ログインにおいてはクライアント、サーバ間のやり取りが必要となります。
参考までに、クライアントから、IDとパスワード、アバター情報をサーバに送信します。
VRM-FBX-JSONは相互変換可能です。アバター情報をJSON形式化します。
クライアント:Unity及びPHPを用いてテキストデータ及びJSON形式データをHTTPにて送信
サーバ:nginxにてテキストデータを取得、PHPを介してテキストデータをMySQLへ格納
2.1 PHPにてアバターデータを取得、PHPを介してJSON形式データをMySQLへ格納3.サーバ内でデータを照合します。ハッシュ化された値が正しいか確認。暗号化はダメです。復号されてしまうので。
4.データが正しい場合、PHPを介してサーバからクライアントへ照合完了を伝え、ログイン完了となります。
情報照合方法は改めて検討します。
また、細かな手続きについては都度記事を更新作成します。
アバター生成
JsonUtilityを用いて、MySQLから取り出したJSONをアバターに復元します。
90fpsの維持
1.クライアントは、Unity,C++を用いて、常時アバターの位置情報とアクション内容情報をJSON形式でUDPにてサーバに送信します。
同時に、サーバから情報を受け取った場合、空間情報を全て更新します。
2.サーバは、クライアントから受け取ったJSON情報を元に、各々、位置、アクション情報を更新します。
その後、更新したJSON情報をサーバ間で同期します。
最後に、同期された情報をクライアントへUDPにてJSON情報を送信します。
3.クライアントは受け取ったJSONデータを元に空間を再構成します。
これを1秒間に180回行います。UDP通信なので半分の通信は失敗する想定です。
細かな手続きは随時記事を作成更新します。
実験してみないと分からない事が多いです。
最後に
VRMMOゲームのシステムについて考えてみました。
一緒に作りたいという方は連絡下さい。作りましょう。
ご意見のある方がいらっしゃいましたら、アドバイスを下さい。
分からない事が多い為、情報提供頂けると助かります。
よろしくお願いします。
- 投稿日:2019-07-27T16:33:53+09:00
VRMMO:要点
VRMMOゲームが作りたい!
私はVRMMOゲームを制作しています。
現在は仕様を練っている所です。今回の記事が、私と同様VRMMOゲームを作ろうとする人の役に立つ事を願います。
制作環境
まず、ゲーム制作環境ですが、Unityにて開発、steamへアップロードを想定しています。
これは、OpenVR SDKやsteamVR pluginを初めとした外部技術導入の容易さからです。以下に私の使用する外部技術を挙げます。
OpenVR SDK:UnityゲームをVR対応にする為に用います。情報が少ないです。
steamVR Plugin:ゲームをVR対応にする為に用います。こちらはカメラや各種コントローラ入力を扱います。
steamworks SDK,API:課金やアップロードなどを扱います。クライアント・自分のサーバ・steam WEB APIサーバでやり取りします。
随時記事を更新作成します。
ログイン
次に、ログイン機能についてです。
ログインにおいてはクライアント、サーバ間のやり取りが必要となります。
参考までに、クライアントから、IDとパスワード、アバター情報をサーバに送信します。
VRM-FBX-JSONは相互変換可能です。アバター情報をJSON形式化します。
クライアント:Unity及びPHPを用いてテキストデータ及びJSON形式データをHTTPにて送信
サーバ:nginxにてテキストデータを取得、PHPを介してテキストデータをMySQLへ格納
2.1 PHPにてアバターデータを取得、PHPを介してJSON形式データをMySQLへ格納3.サーバ内でデータを照合します。ハッシュ化された値が正しいか確認。暗号化はダメです。復号されてしまうので。
4.データが正しい場合、PHPを介してサーバからクライアントへ照合完了を伝え、ログイン完了となります。
情報照合方法は改めて検討します。
また、細かな手続きについては都度記事を更新作成します。
アバター生成
JsonUtilityを用いて、MySQLから取り出したJSONをアバターに復元します。
90fpsの維持
1.クライアントは、Unity,C++を用いて、常時アバターの位置情報とアクション内容情報をJSON形式でUDPにてサーバに送信します。
同時に、サーバから情報を受け取った場合、空間情報を全て更新します。
2.サーバは、クライアントから受け取ったJSON情報を元に、各々、位置、アクション情報を更新します。
その後、更新したJSON情報をサーバ間で同期します。
最後に、同期された情報をクライアントへUDPにてJSON情報を送信します。
3.クライアントは受け取ったJSONデータを元に空間を再構成します。
これを1秒間に180回行います。UDP通信なので半分の通信は失敗する想定です。
細かな手続きは随時記事を作成更新します。
実験してみないと分からない事が多いです。
最後に
VRMMOゲームのシステムについて考えてみました。
一緒に作りたいという方は連絡下さい。作りましょう。
ご意見のある方がいらっしゃいましたら、アドバイスを下さい。
分からない事が多い為、情報提供頂けると助かります。
よろしくお願いします。
- 投稿日:2019-07-27T16:33:53+09:00
VRMMOゲーム制作における要点をまとめました
VRMMOゲームが作りたい!
私はVRMMOゲームを制作しています。
現在は仕様を練っている所です。今回の記事が、私と同様VRMMOゲームを作ろうとする人の役に立つ事を願います。
制作環境
まず、ゲーム制作環境ですが、Unityにて開発、steamへアップロードを想定しています。
これは、OpenVR SDKやsteamVR pluginを初めとした外部技術導入の容易さからです。以下に私の使用する外部技術を挙げます。
OpenVR SDK:UnityゲームをVR対応にする為に用います。情報が少ないです。
steamVR Plugin:ゲームをVR対応にする為に用います。こちらはカメラや各種コントローラ入力を扱います。
steamworks SDK,API:課金やアップロードなどを扱います。クライアント・自分のサーバ・steam WEB APIサーバでやり取りします。
随時記事を更新作成します。
ログイン
次に、ログイン機能についてです。
ログインにおいてはクライアント、サーバ間のやり取りが必要となります。
参考までに、クライアントから、IDとパスワード、アバター情報をサーバに送信します。
VRM-FBX-JSONは相互変換可能です。アバター情報をJSON形式化します。
クライアント:Unity及びPHPを用いてテキストデータ及びJSON形式データをHTTPにて送信
サーバ:nginxにてテキストデータを取得、PHPを介してテキストデータをMySQLへ格納
2.1 PHPにてアバターデータを取得、PHPを介してJSON形式データをMySQLへ格納3.サーバ内でデータを照合します。ハッシュ化された値が正しいか確認。暗号化はダメです。復号されてしまうので。
4.データが正しい場合、PHPを介してサーバからクライアントへ照合完了を伝え、ログイン完了となります。
情報照合方法は改めて検討します。
また、細かな手続きについては都度記事を更新作成します。
アバター生成
JsonUtilityを用いて、MySQLから取り出したJSONをアバターに復元します。
90fpsの維持
1.クライアントは、Unity,C++を用いて、常時アバターの位置情報とアクション内容情報をJSON形式でUDPにてサーバに送信します。
同時に、サーバから情報を受け取った場合、空間情報を全て更新します。
2.サーバは、クライアントから受け取ったJSON情報を元に、各々、位置、アクション情報を更新します。
その後、更新したJSON情報をサーバ間で同期します。
最後に、同期された情報をクライアントへUDPにてJSON情報を送信します。
3.クライアントは受け取ったJSONデータを元に空間を再構成します。
これを1秒間に180回行います。UDP通信なので半分の通信は失敗する想定です。
細かな手続きは随時記事を作成更新します。
実験してみないと分からない事が多いです。
最後に
VRMMOゲームのシステムについて考えてみました。
一緒に作りたいという方は連絡下さい。作りましょう。
ご意見のある方がいらっしゃいましたら、アドバイスを下さい。
分からない事が多い為、情報提供頂けると助かります。
よろしくお願いします。
- 投稿日:2019-07-27T16:33:53+09:00
我流VRMMOゲーム制作法(要点)
VRMMOゲームが作りたい!
私はVRMMOゲームを制作しています。
現在は仕様を練っている所です。今回の記事が、私と同様VRMMOゲームを作ろうとする人の役に立つ事を願います。
制作環境
まず、ゲーム制作環境ですが、Unityにて開発、steamへアップロードを想定しています。
これは、OpenVR SDKやsteamVR pluginを初めとした外部技術導入の容易さからです。以下に私の使用する外部技術を挙げます。
OpenVR SDK:UnityゲームをVR対応にする為に用います。情報が少ないです。
steamVR Plugin:ゲームをVR対応にする為に用います。こちらはカメラや各種コントローラ入力を扱います。
steamworks SDK,API:課金やアップロードなどを扱います。クライアント・自分のサーバ・steam WEB APIサーバでやり取りします。
随時記事を更新作成します。
ログイン
次に、ログイン機能についてです。
ログインにおいてはクライアント、サーバ間のやり取りが必要となります。
参考までに、クライアントから、IDとパスワード、アバター情報をサーバに送信します。
VRM-FBX-JSONは相互変換可能です。アバター情報をJSON形式化します。
クライアント:Unity及びPHPを用いてテキストデータ及びJSON形式データをHTTPにて送信
サーバ:nginxにてテキストデータを取得、PHPを介してテキストデータをMySQLへ格納
2.1 PHPにてアバターデータを取得、PHPを介してJSON形式データをMySQLへ格納3.サーバ内でデータを照合します。ハッシュ化された値が正しいか確認。暗号化はダメです。復号されてしまうので。
4.データが正しい場合、PHPを介してサーバからクライアントへ照合完了を伝え、ログイン完了となります。
情報照合方法は改めて検討します。
また、細かな手続きについては都度記事を更新作成します。
アバター生成
JsonUtilityを用いて、MySQLから取り出したJSONをアバターに復元します。
90fpsの維持
1.クライアントは、Unity,C++を用いて、常時アバターの位置情報とアクション内容情報をJSON形式でUDPにてサーバに送信します。
同時に、サーバから情報を受け取った場合、空間情報を全て更新します。
2.サーバは、クライアントから受け取ったJSON情報を元に、各々、位置、アクション情報を更新します。
その後、更新したJSON情報をサーバ間で同期します。
最後に、同期された情報をクライアントへUDPにてJSON情報を送信します。
3.クライアントは受け取ったJSONデータを元に空間を再構成します。
これを1秒間に180回行います。UDP通信なので半分の通信は失敗する想定です。
細かな手続きは随時記事を作成更新します。
実験してみないと分からない事が多いです。
最後に
VRMMOゲームのシステムについて考えてみました。
一緒に作りたいという方は連絡下さい。作りましょう。
ご意見のある方がいらっしゃいましたら、アドバイスを下さい。
分からない事が多い為、情報提供頂けると助かります。
よろしくお願いします。
- 投稿日:2019-07-27T16:33:53+09:00
VRMMOゲーム開発:要点
VRMMOゲームが作りたい!
私はVRMMOゲームを制作しています。
現在は仕様を練っている所です。今回の記事が、私と同様VRMMOゲームを作ろうとする人の役に立つ事を願います。
制作環境
まず、ゲーム制作環境ですが、Unityにて開発、steamへアップロードを想定しています。
これは、OpenVR SDKやsteamVR pluginを初めとした外部技術導入の容易さからです。以下に私の使用する外部技術を挙げます。
OpenVR SDK:UnityゲームをVR対応にする為に用います。情報が少ないです。
steamVR Plugin:ゲームをVR対応にする為に用います。こちらはカメラや各種コントローラ入力を扱います。
steamworks SDK,API:課金やアップロードなどを扱います。クライアント・自分のサーバ・steam WEB APIサーバでやり取りします。
随時記事を更新作成します。
ログイン
次に、ログイン機能についてです。
ログインにおいてはクライアント、サーバ間のやり取りが必要となります。
参考までに、クライアントから、IDとパスワード、アバター情報をサーバに送信します。
VRM-FBX-JSONは相互変換可能です。アバター情報をJSON形式化します。
クライアント:Unity及びPHPを用いてテキストデータ及びJSON形式データをHTTPにて送信
サーバ:nginxにてテキストデータを取得、PHPを介してテキストデータをMySQLへ格納
2.1 PHPにてアバターデータを取得、PHPを介してJSON形式データをMySQLへ格納3.サーバ内でデータを照合します。ハッシュ化された値が正しいか確認。暗号化はダメです。復号されてしまうので。
4.データが正しい場合、PHPを介してサーバからクライアントへ照合完了を伝え、ログイン完了となります。
情報照合方法は改めて検討します。
また、細かな手続きについては都度記事を更新作成します。
アバター生成
JsonUtilityを用いて、MySQLから取り出したJSONをアバターに復元します。
90fpsの維持
1.クライアントは、Unity,C++を用いて、常時アバターの位置情報とアクション内容情報をJSON形式でUDPにてサーバに送信します。
同時に、サーバから情報を受け取った場合、空間情報を全て更新します。
2.サーバは、クライアントから受け取ったJSON情報を元に、各々、位置、アクション情報を更新します。
その後、更新したJSON情報をサーバ間で同期します。
最後に、同期された情報をクライアントへUDPにてJSON情報を送信します。
3.クライアントは受け取ったJSONデータを元に空間を再構成します。
これを1秒間に180回行います。UDP通信なので半分の通信は失敗する想定です。
細かな手続きは随時記事を作成更新します。
実験してみないと分からない事が多いです。
最後に
VRMMOゲームのシステムについて考えてみました。
一緒に作りたいという方は連絡下さい。作りましょう。
ご意見のある方がいらっしゃいましたら、アドバイスを下さい。
分からない事が多い為、情報提供頂けると助かります。
よろしくお願いします。
- 投稿日:2019-07-27T15:33:21+09:00
メモ: OpenGL入りなアプリケーションをリモートで実行する(クライアント側での表示なし)
やりたいこと
やりたいことはリモートサーバーにSSHでログインして,レンダリング含んだシミュレーションの実行するということ.OpenGLを使うアプリケーションを使いたい場合,エラーが出てきて困っていた.
X11 Forwardingなどを利用して,クライアント側でOpenGLアプリケーションが表示できるようにする手法は出てくるのだが,Windows Subsystem for Linuxを使っているため,OpenGLのバージョンをそろえたりすることが難しいであろうことが容易に想像できる上に,結果の動画だけscpなりで引っ張ってこれれば十分なためより簡素な方法を探していた.原因
SSHすると出力先がクライアント側のディスプレイになるらしく,
DISPLAY
という変数を書き換えてやったらいけた.
whoで立ち上がっているセッションを確認し,一番上にあった,:1
というアドレスに以下のようにDISPLAY
変数を書き換える.export DISPLAY=:1https://unix.stackexchange.com/questions/406891/run-x-application-remotely-run-gui-on-remote-host
原理
https://sites.google.com/site/teyasn001/ubuntu-12-10/huan-jing-bian-shudisplay
を見ると,ディスプレイの表示は,アプリケーションがDISPLAY変数で定義されたサーバーに実行を要求するという,ク
ライアントサーバー方式を使っているらしい.このような仕組みを取ることで柔軟に画面が出力できるようになっているようだ.
変数を書き換える前はクライアント側のディスプレイが出力先になっており,クライアント側にOpenGLの対応物がないと,エラーが出るということになっていたのだろう.なお
DISPLAY
のシンタックスはDISPLAY=(ホスト):(ディスプレイ).(スクリーン)である.
- 投稿日:2019-07-27T13:23:42+09:00
Linuxのディレクトリをまとめる
ど基礎なので
多分Linuxの基礎の基礎。
階層構造が大事なのに把握してないのは不味いなと思い。/
ルートディレクトリ。階層の一番上。
rm -rf / するとヤバいってギャグを良くみる。/bin
バイナリのディレクトリ。
システム構成に必要なもの。/boot
起動に必要なもの。
/dev
デバイス操作用のファイルを格納。
/etc
システム設定用のファイル。
サーバーの設定で良くさわる。/home
ホームディレクトリ。
プログラミングやってると良くここに戻る。
~でも同じ場所を表す。/lib
/bin,/sbinに必要な共有ライブラリ。
/lost+found
破損ファイルを格納。
/misc
雑多なファイル。
/mnt
一時的なパーティションのためのマウントポイント。
長いので
続きは別投稿に書きます。
- 投稿日:2019-07-27T10:35:35+09:00
新人開発エンジニアに知っておいてほしいLinux知識
はじめに
3か月ほど社内講師を務めており、
面談から帰ってきた新人エンジニアさんから多かった質問として
「Linuxを使うって言われたんですけど、どう勉強したらいいですか?」
「開発でLinuxって使うんですか?」
というものがありました。「そういえば初めは自分もそうだったなぁ」と思い出しました。
確かに研修ではJava、JSP、HTML、JavaScript、SQLなどは触りましたが、
突然「Linux使うので少し勉強してください」と言われてもチンプンカンプンですよね。ということで!!
かなり初歩的ではありますが!!筆者の経験・主観で、
・どんな場面でLinuxコマンドを使うのか
・知っておいた方がいいコマンド
・知っておいた方がいいショートカット
を書きなぐっていきます!どんな場面で開発エンジニアがLinuxコマンドを使用するの?
コマンドを叩いて何かを開発するという事は基本的にはありません。
(もし仮にあったとしても新人に求められることはないはずです)開発したアプリケーションをリモートサーバにデプロイするため
研修ではあくまでローカル環境に仮想サーバを立て、
そこにjarやwarを配置してWEBアプリを動かしていたと思います。
なぜなら一人でひとつのWEBアプリを作っており、他の人が触る必要がなかったからです。しかし現場ではチーム開発を行います。
開発(コーディング)・UTはローカル環境で行うとしても、
それ以降のIT環境・ST環境・本番環境はそれぞれ独立したリモートサーバにjarやwarを配置する必要があります。
(今はクラウドサーバの現場も増えてきていますが、物理サーバ(Linux)を抱えて運用している現場もまだまだ多いです)その各環境に配置するためにTeratermなどを用いて、Linuxコマンドを使用することがあります。
※筆者の場合はデプロイ用のシェルが用意されていることがほとんどでした。障害調査のログを確認するため
保守現場に入ると障害対応という作業が求められます。
障害というのはいわゆる不具合・バグのことで、
本番環境で障害が発生すると監視チームから連絡が入り、そこからログ取得/調査/対応を行うことが求められます。このケースでもTeratermなどで本番環境へ接続し、ログ配置場所まで移動やログを確認するためにLinuxコマンドを使用します。
よく使うコマンドたち
ではここからよく使うであろうコマンドを書いていきます。
「参画前に知っておけば大丈夫なコマンドはこれくらいかな?」くらいの感覚で列挙しています。筆者的にまず初めは
「ディレクトリを移動して、ディレクトリの中身を確認して、対象ファイルの中身を確認する」
ができるようになれればいいかなとは思います。
その場合に使用するコマンドはcd
、ls
、more
の3つですね。cd
cd
はディレクトリを移動するために使用するコマンドです。
Windowsでエクスプローラーを開いて移動したいフォルダをダブルクリックするとそのフォルダが開けますよね。それとほぼ同義です。
使い方は以下の通りです。cd 移動先パス
絶対パスと相対パス
ここで絶対パスと相対パスについて触れておこうと思います。
研修などでも少なからず聞いたことのあるワードだと思いますが、cd
コマンドを使用するためには移動先パスを入力する必要があります。
そのパスの表現方法として二種類あると思っていただければ大丈夫です。絶対パス
ルートディレクトリ(最上位のディレクトリ)からの目的地までの道筋を示したものを絶対パスと呼びます。
Linuxではルートディレクトリを/
で表現するので、/
から始まるパスは絶対パスとなります。cd /aaa/bbb
相対パス
カレントディレクトリ(今自分がいるディレクトリ)から目的地までの道筋を示したものを相対パスと呼びます。
Linuxではカレントディレクトリの一つ上のディレクトリは..
で表現できます。cd aaa/bbb # 自分が /ccc にいるとしたら、 cd /ccc/aaa/bbb と同義です絶対パスの例と違うところは移動先パスの先頭に
/
があるかないかだけですが、
上記は自分がいるディレクトリからの相対パスとなります。
/
一文字で意味が異なるので気を付けましょう!ls
ls
は自分がいるディレクトリの中身を一覧で表示したり、対象ファイルの情報を表示するコマンドです。
Windowsでエクスプローラーを開いて移動したいフォルダをダブルクリックするとそのフォルダの中身が表示されますよね。それと一緒です。
使い方はこんな感じ。ls -ltrこれを実行するとディレクトリの中身がばーっと表示されます。それだけです。
-ltr
の部分はオプションと呼ばれる機能です。オプションってなんだ?
Linuxでは命令を行うためにコマンドを実行します。
実はそのコマンドには不随機能があり、それらを呼び出すために使用するものをオプションと呼びます。書き方は
コマンド -オプション
となります。(コマンドの後の半角スペースが重要です)ls -l ls -t ls -r3つの
ls
コマンドが並んでいますが、それぞれ実行結果が微妙に異なります。
それがオプション(不随機能)の効力です。今は「オプションていう便利機能があるんだな」ぐらいでよいと思います。
慣れてきたらオプションは各コマンドごとに用意されているので、ぜひ調べてみてください!more
more
はテキストファイルを1画面ずつ表示させるコマンドです。
「1画面ずつ」というのは、長いファイルの場合は1画面で表示しきれない場合があります。
そんなときのために1画面分で一旦表示を停止してくれるのがmore
です。
次のページを表示したい場合はspace
を押してください。
Windowsで.txtファイルとかをダブルクリックするとメモ帳やサクラエディタで中身が表示されますよね。それと同じイメージです。
書き方は以下の通り。more ファイル名ファイル名とありますが、カレントディレクトリ直下のファイルしか見れないわけではありません。
絶対パス、相対パスで指定可能です。cd /aaa # /aaa へ移動 more error.log # カレントディレクトリ直下のerror.logを表示more /aaa/error.log # /aaa直下のerror.logを表示
2つ例を挙げましたが、どちらも実行結果は一緒です。
これでファイル閲覧もできるようになりましたね!ちょっとしたまとめ
…ここまで
cd
、ls
、more
を紹介してきました。
実はこの3つが使えるようになれば「障害調査のログを確認する」ことは可能です。ここで紹介したコマンドはごくごく一部です。
他にもたくさんコマンドが存在するので、慣れてきたら色々使ってみましょう!!
- grep(文字列検索)
- cat(ファイル表示、連結表示)
- less(ファイル表示)
- tail(ファイル表示)
- mv(移動)
- cp(コピー)
- touch(ファイル作成)
- mkdir(ディレクトリ作成)
- chmod(ファイル、ディレクトリの権限編集)
- chown(オーナ変更)
- su(ユーザ切り替え)
- vi(viエディタ起動)
知っておくといいショートカット
ここからは知っておくと便利なショートカットを載せていきます。
間違いなく作業効率は上がるのでぜひ使っていきましょう。↑↓(コマンド履歴)
↑
で1つ前のコマンドを表示することができ、↓
で1つ後のコマンドを表示させることができます。
実行したいコマンドが表示できたらEnter
で実行です。シンプルかつ簡単ですね!「2回前に打ったコマンドをまた使いたい!!」
あるあるです。そんな時は↑
を2回押してみてください。Alt + C(コピー)、Alt + V(ペースト)
そのまんまコピペのショートカットです。
大体Ctrl
+C
orV
のイメージだと思うのですが、LinuxではAlt
になるのでご注意ください。因みにTeratermでは右クリックでクリップボードのペーストになります。
Ctrl + C(処理の強制終了)
コンソールで実行している処理をとっさに終了させたい時は
Ctrl
+C
を実行してみてください。「何気なく
more
コマンドを実行したら数万行あった…!とっとと終わらせたい…!」
こんな時はCtrl
+C
を使用しましょう。Ctrl + A(行先頭に移動)、Ctrl + E(行最後に移動)
サクラエディタでいうところの
Home
やEnd
です。行頭や行の最後にカーソルを移動できます。
LinuxはCUIなのでキーボードを触ったりマウスを触ったりするだけで作業効率が落ちたりします。カーソル移動もできるだけキーボードで済ませましょう!!
最後に
しがない開発エンジニアによるLinux記事でした。
最後までお付き合いいただきありがとうございます!どのくらいの量にするか迷いましたが、
「これも載せた方がいい!」
「ここ間違えてる!」
等の指摘があったらコメントをお願いいたします!ではまたどこかで!!
- 投稿日:2019-07-27T01:04:09+09:00
Linuxのファイルパーミッションのxは何故xか
最近会社で聞かれて即答できなかったことをまとめてみました。
Linuxのファイルパーミッションは"ls"コマンドで確認できます。readは"r"、writeは"w"、executableは"x"です。
こんな説明したところ、executableは何故"e"ではなく"x"なのかと聞かれました。
即答できませんでした。そこで、調べてみた結果をまとめてみました。
英語では"ex~"を"X"と略記する
英語では、しばしば"ex~"を"x"と略記します。
Webster、Wikipediaなどの"x"を読むと、"ex-"や"trans-"や"cross-"の略語として使われることがわかります。
"Christ-"や"crys(tal)"の略語としても使われます。しかしこれらの略語をコンピュータ分野で見ることは少なそうです。
"ex-"を"X"と略記するケースを一般分野で挙げるなら、サイズを表すXL(eXtra Large)が思い浮かびます。
同様にexecutableの"ex-"を"x"と略記することから来ていると考えるのが自然だと思います。
実例
コンピュータ分野の実例を挙げてみます。なお、個人的に馴染みのある言葉に限定しています。そのため、ここに挙がっていないものもあります。
"X"と略記する"ex-"の例
- IPX/SPX - Internetwork Packet Exchange/Sequenced Packet Exchange
- MMX - Multimedia Extensions
- MX - Mail Exchanger
- NXビット - Non Execute bit
- OCX - OLE Control Extension
- PXE - Preboot Execution Environment
- XE - (例えば Oracle Database) Express Edition
- XGA - Extended Graphics Array
- XHTML - Extensible HTML
- XML - Extensible Markup Language
- XOR - Exclusive OR
- XP - Extreme Programming
ここに挙がっている単語でも"E"と略記するケースもあります。"ESSID", "EUC", "EV証明書"など。"Extended"ばかりなのは偶然?
"X"と略記する"cross"の例
- XSS - Cross-Site Scripting
この略語は初期にはCSSとも略されていました。しかし、Cascading Style Sheetsの略と紛らわしいため、XSSと呼ばれることが多くなった経緯があります。
同分野の"Cross Site Request Forgery"の略語は、"XSRF"よりも"CSRF"が主流です。"sea-surf"という読み方で読まれることがあるところなど、明らかに"C"が主流といえるでしょう。"XSS"も、紛らわしい用語がなければ"CSS"のままだったのではないでしょうか。
"X"と略記する"trans-"の例
- XLATE - Translate
この略語には、実はあまり馴染みがありません。調べてみると面白かったので書いておきます。
RPGというプログラム言語があります。名前くらいは知っていました。しかし馴染みは全くありません。
このプログラミング言語にXLATEという関数があります。これがどうやらTransferを省略したもののようです。英語のIBMサイトを見ると疑いようがないでしょう。しかし、この省略は想像していませんでした。
XFER - PC-9800シリーズのスペースキーの右隣のキー
ヤフオクに出品されていた画像を見ると、"XFER"が鮮明に映っています。
Wikipediaには"CROSS reFERence key"の略とあります。通信用語の基礎知識には"Transfer"の略とあります。どちらが正しいのでしょうか。とはいえ、どちらにしても"cross"や"trans-"の略であるようです。
まとめ
"ex-"の略として使われるケースが圧倒的に多いようです。
説明できないような知らないことを調べてみると、色々と知識が広がって面白いです。