冒险解谜游戏中文网 ChinaAVG

标题: TGA图片字库制作 [打印本页]

作者: rinat    时间: 2011-7-4 17:53
标题: TGA图片字库制作
我很想加入这个行业,而且有足够的时间、耐心。最近我拿个小游戏学学,先分析了一下。显示文字是TGA图片字库,已经得到这个字库了,现在该到制作新字库TGA了。网上搜了一下,找到了Bitmap工具,这个工具确实很不错。
/ m' y7 _. \% N6 U6 q+ V3 f, O我想知道的是,能不能原字库图片的宽度和字母的各类参数不变的情况下,再加新的字符?首先新加字符然后得到字符参数还是按预设的参数来新加字符?是PS来实现?(我估计PS定坐标很麻烦)7 L/ U; N1 K, p4 Y
那位热情的大侠请教一下小弟。谢谢~
作者: 魔鸢    时间: 2011-7-4 18:20
TGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~
作者: 魔鸢    时间: 2011-7-4 18:21
如果你有兴趣可以进考核群跟大家一起发展啊[s:101]
作者: rinat    时间: 2011-7-4 18:35
魔鸢 发表于 2011-7-4 18:20
7 V$ I: {1 y  _% D+ ?8 z: tTGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~
; k- u" y- `# q
搞错方向?我只是想首先把字库和定义准备好。不管是美工还是技术、翻译,都是汉化工作的内容吧~多嘴了
作者: rinat    时间: 2011-7-4 18:36
魔鸢 发表于 2011-7-4 18:21 / l* \+ f; r6 t
如果你有兴趣可以进考核群跟大家一起发展啊
/ q. E' [. O# @9 \
能否提供个群号?谢谢
作者: 沉睡的绵羊    时间: 2011-7-5 09:06
https://www.chinaavg.com/thread-28475-1-1.html" h5 u. X; e2 R8 x- x2 I
这是招人简章。4 k- K( q8 L& s; C+ v  M3 ^8 Y
楼上的,你的想法很好。我是技术 鈂緦 , QQ 号码是 11203768 , 欢迎一起交流。
1 M1 @) ]* H2 ?. [! I& n你说的想法非常好,不过TGA的文件格式你得非常熟悉才能用软件用。
作者: caesarzx    时间: 2011-7-5 10:02
要命,民间汉化成行业了。
作者: rinat    时间: 2011-7-5 10:14
caesarzx 发表于 2011-7-5 10:02
7 J( m+ u& l6 L  c- B1 z  m要命,民间汉化成行业了。
, l' O( f; H0 g& v5 Y9 `
恩,就是贡献性的民间行业,呵呵~
作者: rinat    时间: 2011-7-5 10:16
沉睡的绵羊 发表于 2011-7-5 09:06
: D. [3 j$ E2 Z* ~( }https://www.chinaavg.com/thread-28475-1-1.html
, p0 g. P, E  K+ N: \# X( q这是招人简章。; x: X9 D0 d8 D) S: W
楼上的,你的想法很好。我是技术 鈂緦 , ...

9 m7 A! }! j1 @% x9 L$ V果然是,这个光操纵PS就不行了,修改原TGA遇到了些小问题,要得自己好好研究TGA了。
作者: canmover    时间: 2011-7-5 12:12
回复 rinat 的帖子
# {9 e3 c3 h; L0 S% V, R! ~! \- N9 A+ T- a' l& i8 C4 ?/ N
重新做一个新的不行吗?
3 V' d5 U! I8 _( e8 S5 Z在原图片上添加字符,理论上是可以的,但应该不会有专门的软件,因为这个功能基本没人会用到。除非自己写一个,否则只有PS了。
作者: solidji    时间: 2011-7-5 14:52
本帖最后由 solidji 于 2011-7-5 14:52 编辑 ; w! X1 H* O- k" x) ?

5 O0 `0 A/ L+ }: t9 L; N重新做一张更方便
+ e. |5 z2 e4 w* S( x' }如果非要加在后面,也可以自己实现
! K; c' \2 R5 g  F5 N我给你提供个思路。我们先假设原来的字库你已经找到,并且是纹理图片字库2 n1 I7 H7 w& e* }1 Y5 v
首先, E% Z) g0 J9 l3 k2 i
CreateVertexBuffer(sizeof(CnFontVertex)*6*8192, D3DUSAGE_DYNAMIC, FVF, D3DPOOL_SYSTEMMEM, ppVertexBuffer,pSharedHandle);//创建一个包含8192个字符的足够大的字库缓存
4 N# Z: _+ [. m8 Q0 W/ X7 F                g_pFontVertexBuffer = *ppVertexBuffer;
: X1 d" ^. J% {% _  o& c                g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);
) w7 o, ?7 K7 _* f7 E. Y0 X, m* F                g_pFontVertexBuffer->Unlock();4 P1 n$ _- P: W* V. g0 E4 q

3 v: R4 x2 t3 QCString font = _T(".\\font.bmp");//这个是自己要添加的新的字库
- B( ], O1 J- K                        D3DXCreateTextureFromFileEx(
' k' t$ a$ F6 g: ?' U4 ~                        m_device,
. i: Q+ \6 X: N                        font,. a  _4 S6 \; ]9 E" z% e
                        D3DX_DEFAULT,
+ K, J! d" E, }# v6 @; n% s                        D3DX_DEFAULT,% S  @; P, m- P7 W) b
                        D3DX_DEFAULT,
' T" A* O6 Q+ P                        0,
% _) I7 f9 y" N; G. M' z+ J$ T% L                        D3DFMT_A1R5G5B5,
- M# a8 v6 [% r9 b# _, I! N' u                        D3DPOOL_MANAGED,
  b+ b; F% M2 B0 U5 h# x  E                        D3DX_FILTER_TRIANGLE,
# v, l. n  _/ G9 i% Q# H                        D3DX_FILTER_TRIANGLE,
& K* I, {6 e* U; R& S                        D3DCOLOR_RGBA(0, 0, 0, 255),2 n& m. K. ^7 ~% p9 @' \1 G# W
                        NULL,, `1 k/ G) D% D4 K. o2 o
                        NULL,
8 }1 \/ C$ }, G1 l# P/ Q" x                        &Tex);
+ h. x; d* J' t$ t5 b( _" n
( S3 j% ~; A9 Q9 w' j  [3 U4 T+ @IDirect3DTexture9* in = Tex->Lock(0, pDesc.Size, &pbData, D3DLOCK_READONLY);1 V# O6 g3 b/ _0 A1 _7 k& q
把Tex里的数据lock到pbData
8 A  g5 C1 a3 V. q: B; f! A% B然后把pbData里的数据copy到mem接在原本的字库后面" k1 c' m4 K/ x
g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);
, B3 }7 W1 `- b: g% ymemcpy(pbData,mem,len);
- ?/ o( \: [9 W) k3 l- }g_pFontVertexBuffer->Unlock();
6 _2 |3 m, H. s  H; t8 G- i/ G! H& ]. B
最后保存成TGA
( X9 e5 K+ ^) w7 b; P, x- g5 r% ID3DXSaveTextureToFileA(“new字库.tga”, D3DXIFF_TGA, ppVertexBuffer, NULL);( k" }1 Y7 k3 F% u
. N* n' E( z4 b* Q
这个代码我没调试随手写的,表达下思路而已,不可照搬
作者: firendless    时间: 2011-7-5 16:33
魔鸢 发表于 2011-7-4 18:20 : ^, f* L% I" j+ A: I; e% d
TGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~
) I" J7 D" f) f. s4 ~
生成字库这种东西交给美工嘛?看来美工需要去学编码,尤其是了解图像相关API,然后去写代码,生成包含需要的字符的图片了...
作者: firendless    时间: 2011-7-5 16:39
回复 rinat 的帖子: o5 m; k0 X" f9 t8 x

  e" i* W2 Q. `9 o7 Y- ]4 B  R( ehttp://www.game798.com/html/2007-03/3147.htm
' b# N; C% P; v/ L  k1 C) B4 T) @/ Z
" y9 |/ ]: P7 [# W希望对你有用,一个TGA库.其实百度一下.挺多的.只要能将生成的像素位图转换为带通道的TGA就可以了,至于压缩或者非压缩,看你的游戏了,反正这种库都支持.
5 b" {0 M8 Z$ `) K8 M! y1 q5 c% N/ ]
! z9 l7 C+ `% s还有就是,如果你要用现成的软件修理字库图,首先你的新的文字量要少,比如几个或者几十个,那么工作量可以接受,如果你要把一个A码的TGA字库扩充到U码,那么手动...我觉得不显示,至少我这种等级的闲人做不来..
+ }# F# f4 x. |( ^" e/ m+ Z7 }; v0 ~0 [1 u- e( [) T
总结一下,个人感觉,字库的话.还是自己写个小软件,来的快.因为你不是想还是使用原来的方式进行字库读取么。3 [* D8 V6 L5 S* ]/ k
" u) n. Q/ |4 @# M- e
或者还有2条路,inject,劫持掉他的显示方式,直接用你的绘图方式来输出文字,007大仙很熟悉,你可以PM或者QQ或者怎么怎嘛他.
7 h& L1 I# n  n7 |7 F- m0 y. Y0 t$ w! \& d8 f% R
最后一条路就是放弃.




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2