Display giapponese avanzato con processori di contenuti personalizzati

Pagina aggiornata :
Data di creazione della pagina :

Informazioni sulla visualizzazione giapponese

Disegno di testo in MonoGame utilizza SpriteFont così come XNA. Per SpriteFont, vedere Visualizzazione di caratteri alfanumerici e dettagli dello stile del carattere, in quanto corrisponde a XNA.

Se si utilizza SpriteFont, è necessario specificare i caratteri che si desidera utilizzare in anticipo. Se si tratta solo di simboli alfanumerici, può essere fatto senza alcun costo come specifica di carattere e tempo di costruzione perché è di circa 100 caratteri, ma quando si tratta di giapponese, diventa migliaia di caratteri, quindi il tempo di costruzione diventa estremamente lungo. Se si specificano solo i caratteri da utilizzare, il tempo di compilazione può essere ridotto in una certa misura, ma è problematico specificare il carattere da utilizzare in senso inverso e diventa ancora più problematico se si verifica un cambiamento nel carattere da utilizzare.

In risposta a questo problema, il sito "Ninari GD"è stato personalizzato per rendere il disegno giapponese in XNA più agevole (a proposito, il sito-run Yuichi Ito - MSFT è uno degli sviluppatori di XNA Framework). In questo modo è più semplice specificare i caratteri da utilizzare, ridurre il tempo di compilazione, decorare i caratteri e altro ancora. Per ulteriori informazioni, fare riferimento al link.

WPF フォントプロセッサーで作成されたテキストの描画

Tuttavia, il "processore di tipi di carattere WPF" presentato nella pagina è per XNA e non può essere utilizzato come in MonoGame.However, the "WPF font processor" presented in the page is for XNA and cannot be used as is in MonoGame. Quindi mi piacerebbe portare questo a MonoGame.

Scaricare il processore dei tipi di carattere WPFDownload the WPF Font Processor

Aprire i seguenti siti:

ひにけにGD - 真・簡単(かもしれない)日本語表示

Scorrere verso il basso fino a due collegamenti e fare clic sul collegamento precedente per scaricare il progetto che contiene il codice di ordinamento. Quello inferiore è solo una DLL, quindi non è necessario scaricarlo.

プロジェクトをダウンロード

Estrarre il file scaricato in modo da poter recuperare il contenuto.

ダウンロードされたファイル

Creare un progetto processore di tipi di carattere WPFCreate a WPF Font Processor Project

Vorrei creare una DLL del processore di tipi di carattere WPF che funziona con "Qualsiasi CPU", ma per qualche motivo quando si crea un progetto con la "Content Pipeline Extension Library" di XNA Framework, è possibile creare solo in x86, quindi verrà creato da una libreria di classi regolare qui.

クラス ライブラリの作成

Quando crei un progetto, non hai bisogno di "Class1.cs", quindi eliminalo.

「Class1.cs」の削除

Successivamente, aggiungere un riferimento.

参照の追加

Poiché si disegna testo in WPFWPF, è necessario un riferimento correlato a WPFWPF. In primo luogo, selezionare "PresentationCore" da "Framework".

「PresentationCore」にチェック

Successivamente, selezionare "WindowsBase". Ora premere il pulsante OK per confermare e aprire nuovamente Gestione riferimenti.

「WindowsBase」にチェック

Selezionare Sfoglia a sinistra e fare clic sul pulsante Sfoglia qui sotto.

「参照」ボタンをクリック

Aprire il seguente percorso di cartella:

  • C: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Da lì, aggiungere le seguenti due DLL:

  • MonoGame.Framework.dll
  • MonoGame.Framework.Content.Pipeline.dll

2つの DLL を追加

Assicurarsi che sia selezionata e fare clic sul pulsante OK.

チェックされていることを確認

Esaminare i riferimenti che sono stati aggiunti.

追加された参照を確認

Aggiungere il codice sorgente dalla cartella "WpfFontPipeline" dal progetto scaricato al progetto che si sta modificando.

ソースコードを追加

Stato aggiunto.

追加した状態

Verificare che la configurazione di compilazione sia "Release" e "Any CPU".

ビルド構成が「Release」「Any CPU」になっていることを確認

Eseguire una compilazione per verificare se è stata compilata correttamente.

ビルド結果

Viene creata la DLL.

DLL が作成されていることを確認

Creare un progetto di gioco

Creare un progetto per MonoGame.Create a project for MonoGame. Non importa quale piattaforma sia.

MonoGame のプロジェクトを作成

Inserire la DLL appena creata nella cartella Contenuto. Non importa dove si trova la DLL, ma in questo caso avrete bisogno di un percorso relativo o assoluto, quindi lascio qui per ora.

 DLL を Content フォルダに配置

Aprire Content.mgcb e aprire Riferimenti con contenuto selezionato.

Se si fa doppio clic su "Content.mmcb" per non aprirlo, avviare "MonoGame Pipeline" dal menu Start.

References を開く

Nella casella di testo digitare il nome file della DLL appena creata o il percorso relativo o assoluto dal file Content.mgcb.

Dopo averlo configurato, la DLL ancora non riflette, in modo che una volta salvato il progetto, uscire monoGame Pipeline e riaprirlo.

DLL のファイル名を入力

Crea un tipo di carattere sprite. Dal menu, selezionare "Modifica" >Aggiungi/Nuova voce.

スプライトフォントを作成

Selezionare "Descrizione SpriteFont" tra gli elementi da aggiungere. (Incidentalmente, dopo l'aggiunta di SpriteFont, ho aperto il file SpriteFont per renderlo più facile da vedere in fase di esecuzione e cambiato il nome del carattere e la dimensione.)

「SpriteFont Description」を選択

Se si seleziona il SpriteFont che è stato aggiunto, si noterà che il processore di font WPF è disponibile dal processore.

「WPF フォントプロセッサー」が選択できる

Poiché ogni parametro può essere impostato, questa volta ho provato a impostarlo come mostrato nella figura per il momento. Sfortunatamente, non è possibile modificare il colore nella versione corrente di MonoGame Pipeline.

各パラメータ設定

Prova a costruire. 6860 caratteri sono stati costruiti perché incluso fino al livello JIS 2. Tuttavia, il tempo è di circa nove secondi, quindi si può vedere che è abbastanza veloce.

ビルド完了

Ora, stiamo disegnando usando questo SpriteFont, e il codice è esattamente lo stesso di XNA. È possibile disegnare testo utilizzando il codice introdotto in "Visualizza caratteri alfanumerici" così com'è. Naturalmente, il giapponese è anche possibile.

Vorrei mettere solo il codice che ho aggiunto una volta.

Parte di definizione del campo. "SpriteFont" è stato aggiunto.

GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;

SpriteFont font;

Caricamento e creazione di dati del tipo di carattere nel metodo LoadContent.

protected override void LoadContent()
{
  // Create a new SpriteBatch, which can be used to draw textures.
  spriteBatch = new SpriteBatch(GraphicsDevice);

  // TODO: use this.Content to load your game content here

  // フォントデータの読み込み
  font = Content.Load<SpriteFont>("Font");
}

Disegno con giapponese nel metodo Draw.

protected override void Draw(GameTime gameTime)
{
  GraphicsDevice.Clear(Color.CornflowerBlue);

  // TODO: Add your drawing code here
  spriteBatch.Begin();

  spriteBatch.DrawString(font, "真・簡単(かもしれない)日本語表示",
                    new Vector2(50, 50), Color.White);

  spriteBatch.DrawString(font, @"・OpenTypeフォント対応
・処理速度の高速化
・JIS漢字追加機能
・文字装飾",
              new Vector2(50, 150), Color.White);

  spriteBatch.End();

  base.Draw(gameTime);
}

Quando viene eseguito, viene disegnato il testo. È un po' difficile da capire, ma le lettere hanno bordi e gradazioni blu all'interno.

E 'diventato facile disegnare giapponese come questo, ed è diventato possibile disegnare il personaggio con la decorazione.

テキストの描画結果

Infine, non è possibile modificare il colore della decorazione del testo su monoGame Pipeline, ma è possibile aprire direttamente il file e modificarlo.

Dopo aver salvato e chiuso il progetto, aprire il file .mccb come file di testo.

「.mgcb」ファイルをテキストファイルで開く

Se scorri verso il basso, ci sono informazioni sul colore nel parametro di destinazione, quindi si prega di modificarlo direttamente lì.

色情報を直接編集

Dopo aver salvato il testo, aprire nuovamente monoGame Pipeline e compilarlo. Si può vedere che il colore è cambiato quando lo si esegue.

色変更したテキスト