第3章:専門用語解説
ゲームシステム関連用語
基本システム用語
- Source Engine(ソースエンジン):
- Garry’s Modが基盤としているValve社のゲームエンジン
- 物理演算、グラフィック、サウンド、ネットワークなどの機能を提供
- Half-Life 2、Counter-Strike: Source、Team Fortress 2なども同じエンジンを使用
- VPhysics(Vフィジックス):
- Source Engineの物理演算システム
- Havok Physics Engineをベースに開発された高度な物理シミュレーション
- 剛体(Rigid Body)や変形可能物体(Deformable Body)の挙動を計算
- QPhysics(Qフィジックス):
- より単純な物理計算システム(Quakeエンジンに由来)
- プレイヤーやNPCのHull(衝突判定用の形状)の移動に使用
- 計算負荷が低く、高速な処理が可能
- Entity(エンティティ):
- ゲーム内に存在するあらゆるオブジェクトの基本単位
- プレイヤー、NPC、武器、プロップ(物体)など全てがエンティティ
- 固有のID、位置、向き、物理特性などの属性を持つ
- Prop(プロップ):
- 装飾や建築に使用される物理オブジェクト
- 「prop_physics」(物理演算あり)と「prop_static」(物理演算なし)の2種類が基本
- マップ上に配置したり、スポーンメニューから生成したりできる
- Ragdoll(ラグドール):
- 物理演算で動く人形のようなモデル
- 関節で接続された複数の物理オブジェクトで構成
- キャラクターが死亡した際の自然な倒れ方を表現
- Constraint(コンストレイント):
- 物体同士を接続する制約
- Weld(溶接)、Rope(ロープ)、Axis(軸)、Ballsocket(ボールソケット)など
- Tool Gunを使って作成可能
- NPC(Non-Player Character):
- コンピュータ制御のキャラクター
- 敵対的なもの(Combine Soldier、Zombieなど)と友好的なもの(Citizens、Vortigauntなど)
- AI(人工知能)によって行動が制御される
- SWEP(Scripted Weapon):
- Luaスクリプトで作成されたカスタム武器
- 独自の機能、モデル、サウンドなどを持つ
- アドオンとして配布・導入可能
- SENT(Scripted Entity):
- Luaスクリプトで作成されたカスタムエンティティ
- 特殊な機能を持つオブジェクトやギミック
- 独自の挙動やインタラクションを定義可能
ネットワーク関連用語
- Dedicated Server(専用サーバー):
- ゲームプレイに参加せず、サーバー機能のみを提供するコンピュータ
- 24時間稼働させることが可能
- より安定したマルチプレイヤー環境を提供
- Listen Server(リッスンサーバー):
- ホストプレイヤーのコンピュータ上で動作するサーバー
- ホストもゲームに参加する
- 専用サーバーよりも設定が簡単だが、ホストの接続状態に依存
- Ping(ピング):
- クライアントとサーバー間の通信遅延(ミリ秒単位)
- 低いほど反応が速く、高いほどラグが発生
- 地理的距離やネットワーク状態に影響される
- Tickrate(ティックレート):
- サーバーが1秒間に状態を更新する回数
- 標準は66tick、高性能サーバーでは128tickなど
- 高いほど正確だが、サーバー負荷とネットワーク帯域も増加
- FastDL(ファストダウンロード):
- クライアントがサーバーからファイルを高速ダウンロードするシステム
- HTTPプロトコルを使用し、ゲームプロトコルよりも効率的
- カスタムコンテンツを使用するサーバーでよく設定される
- Workshop DL(ワークショップダウンロード):
- Steam Workshopを通じてアドオンを自動ダウンロードする機能
- サーバー参加時に必要なアドオンを自動的に取得
- Collection(コレクション)を使って複数のアドオンをまとめて管理
- Addon(アドオン):
- ゲームに追加機能を提供するカスタムコンテンツ
- モデル、テクスチャ、スクリプト、サウンドなどを含む
- Steam Workshopやその他のウェブサイトから入手可能
- Gamemode(ゲームモード):
- ゲームのルールやシステムを定義するスクリプト
- Sandbox、Prop Hunt、TTTなど
- 独自のHUD、スポーンシステム、勝利条件などを持つ
物理演算関連用語
物理特性
- Mass(質量):
- オブジェクトの重さを表す値
- 大きいほど動かしにくく、他のオブジェクトへの影響も大きい
- Weight Tool(重量ツール)で調整可能
- Friction(摩擦):
- 表面同士が滑る際の抵抗
- 高いほど滑りにくく、低いほど滑りやすい
- Material Tool(材質ツール)で間接的に調整可能
- Elasticity(弾性):
- 衝突時のエネルギー保存率
- 高いほど跳ね返りが大きく、低いほど衝撃を吸収
- 材質によって異なる値を持つ
- Drag(抵抗):
- 空気や水中での移動抵抗
- 形状や速度によって変化
- 特に飛行物体や水中物体に影響
- Buoyancy(浮力):
- 液体中でのオブジェクトの浮く力
- 物体の体積と密度に依存
- 水中での挙動に影響
物理制約(Constraints)
- Weld(溶接):
- 2つのオブジェクトを完全に固定
- 相対的な位置と角度が変化しない
- 最も単純で安定した接続方法
- Axis(軸):
- 1つの軸を中心に回転可能な接続
- ドアやホイールなどの回転部品に使用
- 回転軸の位置と方向を指定可能
- Ballsocket(ボールソケット):
- あらゆる方向に回転可能な接続
- 肩や股関節のような多方向の動きを実現
- 回転の制限角度を設定可能
- Rope(ロープ):
- 2点間を柔軟に接続
- 長さ、剛性、材質などを調整可能
- 物理演算による自然な動きを表現
- Elastic(エラスティック):
- バネのような伸縮する接続
- 伸縮の強さ(剛性)を調整可能
- サスペンションなどの機構に使用
- Hydraulic(油圧):
- 長さを制御可能な接続
- 速度や強さを調整可能
- ピストンやリフトなどの機構に使用
- Motor(モーター):
- 回転運動を生み出す接続
- 速度、トルク、方向を制御可能
- 車輪やプロペラなどの駆動に使用
- Pulley(滑車):
- 2つのオブジェクトを滑車システムで接続
- 複雑な動力伝達システムを構築可能
- クレーンやリフトなどの機構に使用
- Keepupright(直立維持):
- オブジェクトを特定の向きに保つ力を加える
- 強さと角度を調整可能
- 自立する構造物や人形などに使用
- Slider(スライダー):
- 1方向のみの移動を許可する接続
- 移動範囲や摩擦を調整可能
- 引き出しやスライドドアなどに使用
物理ツール
- Physics Gun(物理銃):
- オブジェクトを掴んで移動・回転させるツール
- 青い光線が特徴
- Reload(中クリック)で固定/解除
- Gravity Gun(重力銃):
- オブジェクトを引き寄せたり押したりするツール
- オレンジ色の光線が特徴
- Half-Life 2由来の象徴的な武器
- Tool Gun(ツール銃):
- 様々なツールを切り替えて使用できる多機能ツール
- 物理制約の作成や特殊効果の適用に使用
- マウスホイールでツール切り替え
- Weight Tool(重量ツール):
- オブジェクトの質量を調整するツール
- 浮かせたり、重くしたりが可能
- 物理構造のバランス調整に使用
- No Collide Tool(衝突無効ツール):
- 2つのオブジェクト間の衝突判定を無効化
- 複雑な構造物の干渉を防止
- パフォーマンス向上にも寄与
- Advanced Duplicator(高度複製ツール):
- 複雑な構造物を保存・複製するツール
- 物理制約を含めた完全な構造を保存
- ファイルとして共有可能
MOD開発関連用語
Lua言語基本用語
- Lua:
- Garry’s Modのスクリプトに使用されるプログラミング言語
- 軽量で埋め込み可能な設計
- 動的型付け、自動メモリ管理などの特徴
- GLua:
- Garry’s Mod用に拡張されたLua
- Source Engine機能へのアクセスを提供
- クライアント/サーバー構造に対応
- Hook(フック):
- ゲームイベントに反応する関数
hook.Add("イベント名", "識別子", 関数)
の形式で登録- 例:
PlayerSpawn
、Think
、HUDPaint
など
- Function(関数):
- 特定の処理をまとめたコードブロック
- 引数を受け取り、結果を返すことが可能
- 再利用可能なコードの基本単位
- Variable(変数):
- データを格納する名前付きの場所
- ローカル変数(
local x = 10
)とグローバル変数(x = 10
) - スコープ(有効範囲)の概念が重要
- Table(テーブル):
- Luaの主要なデータ構造
- キーと値のペアを格納
- 配列、辞書、オブジェクトなど多目的に使用
- Metatable(メタテーブル):
- テーブルの振る舞いをカスタマイズする特殊なテーブル
- 演算子のオーバーロードや継承などを実現
- オブジェクト指向プログラミングの基盤
- Coroutine(コルーチン):
- 実行を一時停止・再開できる関数
- 非同期処理や複雑な制御フローに使用
coroutine.create
、coroutine.resume
、coroutine.yield
などの関数で操作
Garry’s Mod API用語
- Entity(エンティティ)API:
- ゲーム内オブジェクトを操作するための関数群
Entity()
、player.GetAll()
、ents.Create()
など- エンティティのプロパティやメソッドにアクセス
- Player(プレイヤー)API:
- プレイヤーエンティティを操作する関数群
Player:SetHealth()
、Player:Give()
、Player:Kill()
など- プレイヤーの状態や行動を制御
- Net Library(ネットライブラリ):
- クライアント・サーバー間の通信を処理
net.Start()
、net.WriteString()
、net.SendToServer()
など- データの送受信を安全に行う
- File System(ファイルシステム)API:
- ファイルの読み書きを行う関数群
file.Read()
、file.Write()
、file.Find()
など- データの永続化やリソース管理に使用
- Render(レンダリング)API:
- 2D/3D描画を行う関数群
render.DrawLine()
、render.DrawSprite()
、cam.Start3D()
など- カスタムHUDやエフェクトの作成に使用
- Sound(サウンド)API:
- 音声を再生・制御する関数群
sound.Play()
、Entity:EmitSound()
、surface.PlaySound()
など- 効果音やBGMの管理に使用
- Material(マテリアル)API:
- テクスチャや材質を操作する関数群
Material()
、Entity:SetMaterial()
、IMaterial:SetTexture()
など- 視覚効果のカスタマイズに使用
- Panel(パネル)API:
- GUIコンポーネントを作成・操作する関数群
vgui.Create()
、Panel:SetSize()
、Panel:Paint()
など- カスタムメニューやインターフェースの構築に使用
MOD開発環境用語
- Workshop(ワークショップ):
- Steamのコンテンツ共有プラットフォーム
- アドオンの公開・ダウンロード・評価が可能
- バージョン管理や更新通知機能を提供
- Addon(アドオン):
- ゲームに追加機能を提供するパッケージ
- lua/、models/、materials/などのフォルダ構造
- addon.json や info.txt で情報を定義
- Gamemode(ゲームモード):
- ゲームのルールやシステムを定義するアドオン
- gamemode/フォルダに特定の構造で配置
- init.lua、shared.lua、cl_init.luaなどの基本ファイル
- Shared(共有)コード:
- クライアントとサーバーの両方で実行されるコード
- 両方で必要な定義や関数を含む
- shared.luaファイルや
if SERVER then ... elseif CLIENT then ...
構文で区別
- Clientside(クライアントサイド):
- プレイヤーのコンピュータ上でのみ実行されるコード
- HUD、エフェクト、サウンドなどの表示関連
- cl_init.luaやcl_*.luaファイルに記述
- Serverside(サーバーサイド):
- サーバー上でのみ実行されるコード
- ゲームロジック、データ管理、セキュリティ関連
- init.luaやsv_*.luaファイルに記述
- AddCSLuaFile():
- クライアントにLuaファイルを送信するための関数
- サーバーサイドで呼び出し、クライアントでの実行を可能に
- 共有コードやクライアントコードに必要
- ConVar(コンソール変数):
- ゲーム設定を保存・変更するための変数
CreateConVar()
で作成、GetConVar():GetInt()
などで取得- サーバー設定やクライアント設定のカスタマイズに使用
- ConCommand(コンソールコマンド):
- コンソールから実行可能なコマンド
concommand.Add()
で登録- デバッグや特殊機能の呼び出しに使用
- Derma(ダーマ):
- Garry’s ModのGUIフレームワーク
- ボタン、パネル、スライダーなどのコンポーネント
- カスタムメニューやインターフェースの作成に使用
コミュニティ関連用語
サーバー管理用語
- Admin(管理者):
- サーバーの管理権限を持つプレイヤー
- ルール違反者の対応やサーバー設定の変更が可能
- ULX/ULibなどの管理ツールで権限を付与
- ULX/ULib:
- 人気の高い管理ツールセット
- 権限システム、コマンド、GUIなどを提供
- 細かな権限設定や管理機能を実装
- FAdmin:
- Garry’s Modに標準搭載の管理ツール
- 基本的な管理機能を提供
- F3キーでメニューを開く
- Ban(バン):
- サーバーへのアクセスを禁止する処罰
- 期間付きバンと永久バンがある
- SteamID、IPアドレスなどで識別
- Kick(キック):
- プレイヤーをサーバーから強制的に切断
- バンよりも軽い処罰
- 再接続は可能
- Whitelist(ホワイトリスト):
- 特定のプレイヤーのみアクセスを許可するリスト
- プライベートサーバーやイベント用サーバーで使用
- SteamIDで管理
- RCON(Remote Console):
- サーバーをリモートから管理するためのプロトコル
- パスワードで保護された特権コマンド
- サーバー設定の変更やコマンド実行が可能
- Config(設定ファイル):
- サーバーの動作を定義するファイル
- server.cfg、autoexec.cfgなど
- コンソール変数やコマンドを記述
コミュニティ文化用語
- RDM(Random Death Match):
- ロールプレイサーバーなどでの無差別攻撃行為
- 多くのサーバーでルール違反とされる
- 「理由なく他プレイヤーを攻撃する行為」を指す
- RP(Role Play):
- 特定の役割や設定に基づいて行動するプレイスタイル
- DarkRPなどのゲームモードで一般的
- 職業、社会的地位、キャラクター性などを演じる
- Prop Surfing/Climbing(プロップサーフィン/クライミング):
- プロップを使って高所に登る技術
- 一部のサーバーでは禁止されている
- 物理演算の特性を利用した移動方法
- Prop Blocking/Killing(プロップブロッキング/キリング):
- プロップを使って他プレイヤーを妨害/攻撃する行為
- 多くのサーバーでルール違反とされる
- 物理演算の衝撃でダメージを与える
- Mic Spam(マイクスパム):
- マイクを使った過度な音声出力
- 音楽の連続再生や大声での妨害など
- サーバールールで禁止されることが多い
- Gmod Machinima(Gmodマシニマ):
- Garry’s Modを使った映像作品
- YouTubeなどで人気のコンテンツ形式
- アニメーションやコメディ、ドラマなど様々なジャンル
- Posing(ポージング):
- キャラクターモデルやラグドールを特定のポーズに配置する技術
- スクリーンショットやマシニマ制作に使用
- Ragdoll Mover、Easy Precision Toolなどのツールを使用
- Sandbox Building(サンドボックス建築):
- 自由な創作活動としての建築
- 建物、乗り物、機械など様々な作品
- コミュニティ内で共有・評価される
上級者向け専門用語
Wiremod関連用語
- Wire(ワイヤー):
- Wiremodの基本要素、コンポーネント間の接続
- 入力と出力を持ち、データを伝送
- 色分けされ、異なる種類のデータを表現
- Gate(ゲート):
- 入力信号を処理して出力を生成する論理素子
- AND、OR、XORなどの論理演算
- 算術演算、比較、変換などの機能も提供
- Expression 2(E2):
- プログラム可能な高度なチップ
- 独自のスクリプト言語で複雑な処理を記述
- 変数、条件分岐、ループなどをサポート
- CPU/GPU:
- プログラム可能なコンピュータチップ
- メモリ、入出力ポートを持つ
- アセンブリ言語に似た命令セットで動作
- I/O(Input/Output):
- 入力デバイス(ボタン、センサーなど)
- 出力デバイス(ディスプレイ、モーターなど)
- システムとの情報のやり取りを担当
- Ranger:
- 距離を測定するセンサー
- レーザービームのような検出線を使用
- 物体検出や距離測定に使用
- Gyroscope(ジャイロスコープ):
- 角度や回転を検出するセンサー
- 飛行機や車両の姿勢制御に使用
- ピッチ、ヨー、ロールの値を出力
- Hydraulic Controller(油圧コントローラー):
- 油圧装置を制御するコンポーネント
- 伸縮の速度や位置を精密に制御
- アナログ入力に対応
- Thruster Controller(スラスターコントローラー):
- スラスター(推進装置)を制御するコンポーネント
- 推力の強さと方向を制御
- 飛行機や宇宙船の制御に使用
- PID Controller(PIDコントローラー):
- 比例・積分・微分制御を行うコンポーネント
- 安定した制御システムを構築
- モーター速度、位置制御などに使用
高度な物理演算用語
- Constraint System(制約システム):
- 物体間の関係を定義するシステム
- 物理的な接続や制限を表現
- 複雑な機械や構造物の基盤
- Ragdoll Physics(ラグドール物理):
- 関節を持つ人形のような物理挙動
- 複数の剛体と制約で構成
- キャラクターの自然な動きを表現
- Soft Body Physics(ソフトボディ物理):
- 変形する柔らかい物体のシミュレーション
- 布、ゼリー状の物体などに使用
- Source Engineでは限定的にサポート
- Collision Mesh(衝突メッシュ):
- 物理演算用の簡略化された形状
- 視覚的なモデルとは別に定義
- 計算効率と精度のバランスを取る
- Physics Material(物理材質):
- 物体の物理的特性を定義
- 摩擦係数、弾性、密度などのパラメータ
- 異なる材質の相互作用を決定
- Joint Limits(関節制限):
- 関節の動きの範囲を制限するパラメータ
- 最小角度と最大角度を設定
- 自然な動きや機械的な制約を表現
- Center of Mass(質量中心):
- 物体の質量が集中する仮想的な点
- 回転や物理挙動の基準点
- 非対称な物体の挙動に大きく影響
- Inertia Tensor(慣性テンソル):
- 物体の回転に対する抵抗を表す数学的概念
- 形状と質量分布に依存
- 複雑な回転運動の計算に使用
- Physics Optimization(物理最適化):
- 物理演算の効率を向上させる技術
- 計算負荷の削減と安定性の向上
- LOD(Level of Detail)、スリープ状態などの手法
- Physics Explosion(物理爆発):
- 物理演算が不安定になり暴走する現象
- 高速な衝突や複雑な制約構造で発生
- サーバーのクラッシュやラグの原因になることも
パフォーマンス最適化用語
- FPS(Frames Per Second):
- 1秒間に描画されるフレーム数
- 高いほど滑らかな映像
- 60FPS以上が理想的
- Tick(ティック):
- ゲームの状態更新の最小単位
- サーバーとクライアントの同期に使用
- 標準は66tick/秒
- Lag(ラグ):
- ゲームの遅延や不具合の総称
- ネットワーク遅延、低FPS、物理演算の不安定性など
- プレイ体験を大きく左右する要因
- Optimization(最適化):
- パフォーマンスを向上させるための調整
- コード効率化、リソース管理、設定調整など
- 快適なプレイ環境を実現するための技術
- LOD(Level of Detail):
- 距離に応じて詳細度を変える技術
- 遠くのオブジェクトは簡略化
- 描画負荷を削減する効果
- Draw Distance(描画距離):
- オブジェクトが描画される最大距離
- 遠くのオブジェクトはフェードアウト
- 設定で調整可能
- Prop Count(プロップ数):
- マップ上に存在するプロップの総数
- 多すぎるとパフォーマンスが低下
- サーバーで制限されることが多い
- Entity Limit(エンティティ制限):
- サーバーが処理できるエンティティの最大数
- デフォルトは約4000
- 超過するとクラッシュやラグの原因に
- Garbage Collection(ガベージコレクション):
- 不要になったメモリを自動的に解放する処理
- Luaの機能の一つ
- 大量に発生するとフレームレート低下の原因に
- Memory Leak(メモリリーク):
- プログラムがメモリを解放せずに蓄積する問題
- 長時間の使用でパフォーマンスが徐々に低下
- 再起動で一時的に解消
まとめ
Garry’s Modの専門用語は多岐にわたり、ゲームシステム、物理演算、MOD開発、コミュニティ文化、上級者向けの技術など様々な分野をカバーしています。これらの用語を理解することで、より深くゲームを楽しむことができるだけでなく、コミュニティとのコミュニケーションもスムーズになります。
初心者は基本的な用語から徐々に学び、経験を積むにつれて高度な概念も理解していくことをお勧めします。Garry’s Modの魅力の一つは、単純な遊びから高度な技術的挑戦まで、様々なレベルで楽しめる点にあります。
この専門用語集が、あなたのGarry’s Modでの冒険をより豊かなものにする一助となれば幸いです。
コメント