🚀 UnrealCodeAnalyzer
UnrealCodeAnalyzerは、Unreal Engineとカスタムコードベースを分析するための多機能ツールチェーンです。このツールは、コード検索、APIドキュメント生成、サブシステム分析など、強力な分析ツールを提供します。
🚀 クイックスタート
UnrealCodeAnalyzerを使用するには、まずインストールと初期設定を行い、その後基本的な分析を実行することができます。以下に手順を示します。
- インストール
- 設定の初期化(オプション)
- 基本的な分析の実行
例:
node index.js --analyze-classes AActor,APawn
✨ 主な機能
- 自動解析:Unreal EngineからカスタムC++コードベースまでの全スタック分析をサポートします。
- スマート検索:Tree-sitterパーサーを統合し、正確なコード構造分析と検索機能を提供します。
- ドキュメント生成:ソースコードのコメントから情報を抽出し、詳細なAPIドキュメントを自動生成します。
- パターンマッチング:正規表現検索、構文ハイライト、複雑なファイルマッチングルールをサポートします。
- サブシステム分析:Unreal Engineの核心サブシステムを全面的に分析します。
📦 インストール
- プロジェクトリポジトリをクローンします:
git clone https://github.com/yourusername/unreal-code-analyzer.git
cd unreal-code-analyzer
- 依存関係をインストールします:
npm install
- 設定を初期化します(オプション):
config.json
ファイルを作成して、コードベースのパスやその他のオプションを指定します。
💻 使用例
基本的な使用法
分析器ツール
Unreal Engineまたはカスタムコードベースを分析するには、以下のようにします。
const analyzer = new UnrealCodeAnalyzer({
codebasePath: '/path/to/unreal/engine',
verbose: true,
modules: ['Physics', 'Rendering']
});
ドキュメント生成ツール
APIドキュメントを自動生成するには、以下のようにします。
const docGenerator = new DocumentationGenerator(analyzer);
docGenerator.generate('/path/to/output/docs');
ソースコード解析ツール
ソースコードを構文解析するには、以下のようにします。
const parser = new CodeParser();
parser.parseFile('/path/to/source/file.cpp');
高度な使用法
分析器ツール
クラス分析
const classAnalysis = analyzer.analyzeClass('AMyActor');
コード検索
const searchResults = analyzer.searchCode({
query: 'UE4.*_STRUCT',
options: {
caseSensitive: true,
regex: false
}
});
ドキュメント生成ツール
シンプルな使い方
node docs/generate.js --path /path/to/engine --output ./docs
高度な設定
package.json
に以下の内容を追加します。
{
"scripts": {
"generate-docs": "doc-generator --config config.json"
}
}
サブシステム分析
物理サブシステム分析
const physicsSubsystem = analyzer.analyzeSubsystem('Physics');
ソースコード解析ツール
正規表現を使用した検索
const regexSearch = analyzer.searchWithRegex(/\bUE4_\w+_STRUCT\b/g);
📚 ドキュメント
よくある質問
- Q:カスタムコードベースを指定するにはどうすればいいですか?
- A:
config.json
にcustomCodebasePath
属性を追加するか、初期化時にオプションで渡します。
エラー処理
よくあるエラーと解決策
- コードベースのパスが指定されていない
- 問題:初期化時に
codebasePath
が提供されていません。
- 解決策:
codebasePath
を設定ファイルに追加するか、コンストラクタに直接渡します。
- モジュールが存在しない
- 問題:分析しようとしているクラス、サブシステム、またはモジュールが存在しません。
- 解決策:提供された名前が正しいことを確認するか、ドキュメントの利用可能なオプションを参照します。
パフォーマンスに関する考慮事項
最適化の提案
- マルチスレッドサポート:マルチコアプロセッサを利用して、コード解析と検索操作を高速化します。
- メモリ管理:大規模なプロジェクトの場合、パフォーマンスのボトルネックを回避するために十分なメモリがあることを確認します。
テストガイド
単体テスト
test('Actorクラスを正しく分析する必要があります', () => {
const analyzer = new UnrealCodeAnalyzer({ codebasePath: '/' });
const result = analyzer.analyzeClass('AActor');
expect(result.hierarchy).toContain('AActor');
});
貢献ガイド
コードの貢献方法
- リポジトリをForkする
- 改善を提案する
- Pull Requestを作成する
私たちは、機能拡張、バグ修正、ドキュメント更新など、あらゆる形態の貢献を歓迎します。
プロジェクト構造
unreal-code-analyzer/
├── src/ # ソースコードディレクトリ
│ ├── Analyzer.js # メインの分析器クラス
│ ├── CodeParser.js # 構文解析器
│ └── DocumentationGenerator.js # ドキュメント生成ツール
├── docs/ # ドキュメントとサンプル
├── test/ # 単体テストファイル
└── package.json # プロジェクトの依存関係管理
コマンドラインツール
クイック実行
node src/index.js --help
分析コマンド
node src/index.js --analyze AMyActor,AMyOtherActor
学習リソース
Unreal Engineの内部メカニズムを深く理解するために、以下の学習資料をお勧めします。
- Unreal Engine公式ドキュメント
- UE4チュートリアル集
- ゲーム開発の基礎知識
📄 ライセンス
このプロジェクトはMITライセンスに従います。Forkや貢献を歓迎します。