कस्टम सामग्री प्रोसेसर का उपयोग करके उन्नत जापानी प्रदर्शन

पेज अद्यतन :
पेज निर्माण की तारीख :

जापानी प्रदर्शन के बारे में

मोनोगेम में टेक्स्ट ड्राइंग स्प्राइटफॉन्ट के साथ-साथ एक्सएनए का उपयोग करती है। स्प्रिंफॉन्ट के लिए, अल्फान्यूमेरिक वर्ण और फ़ॉन्ट स्टाइल विवरण प्रदर्शित करते हुए देखें, क्योंकि यह XNA के समान है।

यदि आप SpriteFont का उपयोग करते हैं, तो आपको पहले से उपयोग किए जाने वाले पात्रों को निर्दिष्ट करना होगा। यदि यह केवल अल्फान्यूमेरिक प्रतीक है, तो इसे चरित्र विनिर्देश के रूप में लगभग कोई लागत के साथ किया जा सकता है और समय का निर्माण किया जा सकता है क्योंकि यह लगभग 100 वर्ण है, लेकिन जब जापानी की बात आती है, तो यह हजारों पात्र बन जाता है, इसलिए निर्माण समय बहुत लंबा हो जाता है। यदि आप केवल वर्णों का उपयोग करने के लिए निर्दिष्ट करते हैं, तो निर्माण समय को कुछ हद तक छोटा किया जा सकता है, लेकिन रिवर्स में उपयोग किए जाने वाले चरित्र को निर्दिष्ट करना परेशानी है, और यदि उपयोग किए जाने वाले चरित्र में परिवर्तन होता है तो यह और भी परेशानी हो जाती है।

इस समस्या के जवाब में, "निनारी जीडी"साइट को एक्सएनए में ड्राइंग जापानी बनाने के लिए और अधिक सुचारू रूप से अनुकूलित किया गया है (वैसे, साइट-रन युइची आईटीओ - एमएसएफटी एक्सएनए फ्रेमवर्क डेवलपर्स में से एक है)। इससे पात्रों को उपयोग करने, समय का निर्माण करने, पात्रों को सजाने आदि को कम करने के लिए निर्दिष्ट करना आसान हो जाता है। अधिक जानकारी के लिए, कृपया लिंक का उल्लेख करें।

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

हालांकि, पृष्ठ में प्रस्तुत "WPF फ़ॉन्ट प्रोसेसर" XNA के लिए है और इसका उपयोग मोनोगेम में नहीं किया जा सकता है। इसलिए मैं इसे मोनोगेम में पोर्ट करना चाहता हूं।

WPF फ़ॉन्ट प्रोसेसर डाउनलोड करें

निम्नलिखित साइटें खोलें:

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

दो लिंक पर नीचे स्क्रॉल करें, और उस प्रोजेक्ट को डाउनलोड करने के लिए ऊपर दिए गए लिंक पर क्लिक करें जिसमें सॉर्ट कोड होता है। निचला केवल डीएलएल है, इसलिए आपको इसे डाउनलोड करने की जरूरत नहीं है।

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

कृपया डाउनलोड की गई फ़ाइल निकालें ताकि आप सामग्री को पुनः प्राप्त कर सकें।

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

डब्ल्यूपीएफ फॉन्ट प्रोसेसर प्रोजेक्ट बनाएं

मैं एक WPF फ़ॉन्ट प्रोसेसर डीएलएल बनाना चाहता हूं जो "किसी भी सीपीयू" के साथ काम करता है, लेकिन किसी कारण से जब मैं एक्सएनए फ्रेमवर्क की "कंटेंट पाइपलाइन एक्सटेंशन लाइब्रेरी" के साथ एक परियोजना बनाता हूं, तो मैं इसे केवल x86 में बना सकता हूं, इसलिए मैं इसे यहां एक नियमित कक्षा पुस्तकालय से बनाऊंगा।

クラス ライブラリの作成

जब आप कोई प्रोजेक्ट बनाते हैं, तो आपको "Class1.cs" की आवश्यकता नहीं होती है, इसलिए इसे हटा दें।

「Class1.cs」の削除

इसके बाद, एक संदर्भ जोड़ें।

参照の追加

क्योंकि आप WPF में पाठ आकर्षित करते हैं, इसलिए आपको WPF से संबंधित संदर्भ की आवश्यकता होती है। सबसे पहले, "प्रेजेंटेशनकोर" "फ्रेमवर्क" से देखें।

「PresentationCore」にチェック

इसके बाद, "विंडोजबेस" की जांच करें। अब संदर्भ प्रबंधक को फिर से पुष्टि करने और खोलने के लिए ओके बटन दबाएं।

「WindowsBase」にチェック

बाईं ओर ब्राउज़ चुनें और नीचे ब्राउज़ बटन पर क्लिक करें।

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

निम्नलिखित फ़ोल्डर पथ खोलें:

  • C:\ कार्यक्रम फ़ाइलें (x86) \ MSBuild \ MonoGame \ v3.0 \ उपकरण \

वहां से, निम्नलिखित दो डीएलएल जोड़ें:

  • मोनोगेम.फ्रेमवर्क.डीएलएल
  • मोनोगेम.फ्रेमवर्क.Content.Pipeline.dll

2つの DLL を追加

सुनिश्चित करें कि यह चेक किया गया है और ओके बटन पर क्लिक करें।

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

जोड़े गए संदर्भों की समीक्षा करें।

追加された参照を確認

आपके द्वारा वर्तमान में संपादन की जा रही परियोजना में डाउनलोड की गई परियोजना से "WpfFontPipeline" फ़ोल्डर से स्रोत कोड जोड़ें।

ソースコードを追加

राज्य आप जोड़ा।

追加した状態

सत्यापित करें कि बिल्ड कॉन्फ़िगरेशन "रिलीज" और "कोई सीपीयू" है।

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

यह देखने के लिए एक निर्माण करें कि क्या इसे सफलतापूर्वक बनाया गया था।

ビルド結果

डीएलएल बनाया गया है।

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

एक खेल परियोजना बनाएं

मोनोगेम के लिए एक परियोजना बनाएं। इससे कोई फर्क नहीं पड़ता कि यह कौन सी प्लेटफॉर्म है।

MonoGame のプロジェクトを作成

आप सिर्फ सामग्री फ़ोल्डर में बनाया DLL रखें। इससे कोई फर्क नहीं पड़ता कि डीएलएल कहां है, लेकिन उस मामले में आपको एक रिश्तेदार या पूर्ण मार्ग की आवश्यकता होगी, इसलिए मैं इसे अभी के लिए यहां छोड़ दूंगा।

 DLL を Content フォルダに配置

चयनित सामग्री के साथ Content.mgcb और ओपन संदर्भ खोलें।

यदि आप इसे खोलने के लिए "Content.mmcb" पर डबल-क्लिक करते हैं, तो स्टार्ट मेनू से "मोनोगेम पाइपलाइन" शुरू करें।

References を開く

टेक्स्ट बॉक्स में, आपके द्वारा अभी बनाए गए डीएलएल का फ़ाइल नाम, या Content.mgcb से या पूर्ण पथ के सापेक्ष पथ टाइप करें।

इसे स्थापित करने के बाद, डीएलएल अभी भी प्रतिबिंबित नहीं होता है, इसलिए एक बार जब आप परियोजना को बचाते हैं, तो मोनोगेम पाइपलाइन से बाहर निकलें और इसे फिर से खोलें।

DLL のファイル名を入力

एक स्प्राइट फ़ॉन्ट बनाता है। मेनू से "संपादित करें" > जोड़ें → नया आइटम।

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

इसे जोड़ने के लिए वस्तुओं के बीच से "SpriteFont विवरण" का चयन करें। (संयोग से, SpriteFont जोड़ने के बाद, मैंने स्प्रिइटफॉन्ट फ़ाइल खोली ताकि रन टाइम में देखना आसान हो सके और फ़ॉन्ट का नाम और आकार बदल गया।

「SpriteFont Description」を選択

अगर आप अपने द्वारा जोड़े गए स्प्रिंफॉन्ट का चयन करते हैं, तो आप देखेंगे कि डब्ल्यूपीएफ फ़ॉन्ट प्रोसेसर प्रोसेसर से उपलब्ध है।

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

चूंकि प्रत्येक पैरामीटर सेट किया जा सकता है, इस बार मैंने इसे समय के लिए आंकड़े में दिखाए गए रूप में सेट करने की कोशिश की। दुर्भाग्य से, आप मोनोगेम पाइपलाइन के वर्तमान संस्करण में रंग नहीं बदल सकते हैं।

各パラメータ設定

बनाने की कोशिश करें। 6860 वर्णों का निर्माण किया गया था क्योंकि इसमें जेआईएस स्तर 2 तक शामिल था। फिर भी, समय के बारे में नौ सेकंड है, तो आप देख सकते है कि यह बहुत तेजी से है ।

ビルド完了

अब, हम इस स्प्रिंफॉन्ट का उपयोग करके ड्राइंग कर रहे हैं, और कोड बिल्कुल XNA के समान है। आप "डिस्प्ले अल्फान्यूमेरिक वर्ण" में पेश किए गए कोड का उपयोग करके टेक्स्ट खींच सकते हैं। बेशक, जापानी भी संभव है।

मैं केवल वह कोड डालना चाहता हूं जिसे मैंने एक बार जोड़ा था।

क्षेत्र का परिभाषा हिस्सा। "SpriteFont" जोड़ा गया है ।

GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;

SpriteFont font;

लोडकंटेंट विधि में फ़ॉन्ट डेटा लोड करना और बनाना।

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");
}

ड्रा विधि में जापानी के साथ ड्राइंग।

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);
}

जब निष्पादित किया जाता है, तो पाठ खींचा जाता है। यह समझने के लिए थोड़ा मुश्किल है, लेकिन पत्र सीमाओं और अंदर नीले ग्रेडेशन है ।

जापानी को इस तरह आकर्षित करना आसान हो गया, और सजावट के साथ चरित्र को आकर्षित करना संभव हो गया।

テキストの描画結果

अंत में, आप मोनोगेम पाइपलाइन पर पाठ सजावट का रंग नहीं बदल सकते हैं, लेकिन आप सीधे फ़ाइल खोल सकते हैं और इसे संशोधित कर सकते हैं।

एक बार जब आप परियोजना को सहेज और बंद कर देते हैं, तो .mccb फ़ाइल को टेक्स्ट फाइल के रूप में खोलें।

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

यदि आप नीचे स्क्रॉल करते हैं, तो लक्ष्य पैरामीटर में रंग जानकारी है, इसलिए कृपया इसे सीधे संपादित करें।

色情報を直接編集

पाठ को सहेजने के बाद, मोनोगेम पाइपलाइन को फिर से खोलें और इसे बनाएं। आप देख सकते हैं कि जब आप इसे चलाते हैं तो रंग बदल गया है।

色変更したテキスト