サイトの天翔記95PK版のフルカラー顔グラキットとほぼ同じ構成・テイストの 天翔記HD版となります。
これらは、「C:\Users\%USERNAME%\Documents\KoeiTecmo\NOBU6HD\GRP」へと上書きする。 個人的に登録している顔グラがある場合は、元のものはバックアップを取っておくこと!!
HD.version.SDKのページでダウンロードファイルの.zip内に含まれる「version.dll」と「HD.version.dll」が必要となります。
これらは、「天翔記ディレクトリへ」へと配置してください。
User.version.SDKのページでダウンロードファイルの.zip内に含まれるSDKに下記ソースを書いてコンパイルする必要があります。
お試しセットとしてNOBU6HD_EDIT_KAO.zipの中に、コンパイル済みのUser.version.dllが入っています。 しかし、別途提供された(あるいは自作した)User.version.dllがあると、dllを上書きすると以前の内容は消えてしまうので、 本筋としては、User.version.SDKをダウンロードし、以下のソースを元に合成して構成し、コンパイルしたUser.version.dllを利用してください User.version.dllも「天翔記ディレクトリへ」へと配置してください。
しかし、別途提供された(あるいは自作した)User.version.dllがあると、dllを上書きすると以前の内容は消えてしまうので、 本筋としては、User.version.SDKをダウンロードし、以下のソースを元に合成して構成し、コンパイルしたUser.version.dllを利用してください
User.version.dllも「天翔記ディレクトリへ」へと配置してください。
// Visual Studio 上で、System.Drawingのアセンブリを、User.version.SDKの参照に加えること!! using System; using System.Linq; using System.Collections.Generic; using System.Text.RegularExpressions; using System.Drawing; public partial class ユーザー天翔記クラス : 天翔記クラス { /// 起動環境設定オブジェクトだけ扱える。 public static void My_ランチャーウィンドウ起動時() { const int MaxW = 1600; const int MaxH = 900; // まずはMAXと仮定 int currentW = MaxW; int currentH = MaxH; //ディスプレイの幅 int ScreenW = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width; //ディスプレイの高さ int ScreenH = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height; // 画面サイズを超えていたら、それよりは少し狭くする if (currentW > (ScreenW - 100)) { currentW = ScreenW - 100; } // 画面サイズを超えていたら、それよりは少し狭くする if (currentH > (ScreenH - 60)) { currentH = ScreenH - 60; } // 天翔記のウィンドウ解像度をダイナミックに決定する 起動環境設定.画面サイズ = new 環境解像度型(currentW, currentH); // 天翔記のゲーム起動モードをウィンドウモードにする。 起動環境設定.ウィンドウモード = 列挙.起動環境設定.ウィンドウモード.ウィンドウ; } /// これ以降は原則的には全て扱える。 public static void My_ゲームウィンドウ起動時() { } public static string My_データファイル読込直前(string 元ファイル名) { return ""; } public static string My_BGM再生直前(int BGM番号, int BGMシーン番号, string 元ファイル名) { return ""; } public static string My_MOVIE再生直前(int MOVIE番号, string 元ファイル名) { return ""; } public static void My_シナリオ選択直後(string シナリオファイル名) { } private static void 顔入替() { // 全ての武将に対して… foreach (var b in 武将.配列) { /* 朝廷で外交すれば、すぐに顔番号が確認できる if (b.名字 == "山科") { デバッグ出力($"名前:{b.名前}"); デバッグ出力($"差し替え顔番号:{b.差換顔番号}"); デバッグ出力($"列伝番号:{b.列伝番号}"); b.差換顔番号 = 1363; b.列伝番号 = 1363; } */ //---------------------------------------------------------- // すでにその人物の顔画像が差し替えられているなら、何もしない if (b.差換顔番号 != 0) { // 次の人 continue; } // 天翔記に元々存在する武将であれば… if (0 <= b.列伝番号 && b.列伝番号 < 1300) { // 列伝番号に対応させて取込み画像を1300人分用意したので、それへと差換える、といった場合の記述 b.差換顔番号 = 列挙.武将.差換顔番号.取込1 + b.列伝番号 + 1; } //---------------------------------------------------------- // 姫100の顔 const int 汎用姫の顔開始番号 = 2804; const int 汎用姫の顔終了番号 = 2903; const int 追加画像の姫開始番号 = 1501; if (汎用姫の顔開始番号 <= b.列伝番号 && b.列伝番号 <= 汎用姫の顔終了番号) { int 差分 = b.列伝番号 - 汎用姫の顔開始番号; b.差換顔番号 = 列挙.武将.差換顔番号.取込1 + 差分 + 追加画像の姫開始番号; } //---------------------------------------------------------- // 商人・朝廷・披露・農民の人達 const int イベント人の顔開始番号 = 1333; const int イベント人の顔終了番号 = 1363; if (イベント人の顔開始番号 <= b.列伝番号 && b.列伝番号 <= イベント人の顔終了番号) { int 差分 = b.列伝番号 - イベント人の顔開始番号; b.差換顔番号 = 列挙.武将.差換顔番号.取込1 + 差分 + イベント人の顔開始番号; } } } public static string My_噴出メッセージ直前(string 元メッセージ, 噴出メッセージパラメタ型 パラメタ) { 顔入替(); return ""; } public static void My_戦略_軍団ターン変更時(int 軍団番号) { } public static void My_戦争開始時(int 城番号, 戦争開始パラメタ型 パラメタ) { } public static void My_戦争参加勢力決定直後() { } public static void My_戦争_残りターン変更時(int 残りターン数) { } public static void My_戦争終了時() { } }
「披露」でゲストの顔が、最初のセリフの間、元の顔グラが表示されてしまう。